setp_comp по сравнению с
Задайте регистр предиката.
Синтаксис
setp_comp dst, src0, src1 |
---|
Где:
_comp — это сравнение двух исходных регистров по каналам. Может принимать одно из следующих значений:
Синтаксис Сравнение _Gt Больше чем _Lt Меньше чем _Ge Больше или равно _Le Меньше или равно _Эквалайзер Равно _Ne Не равно dst — это регистр предиката , p0.
src0 — это регистр источника.
src1 — это регистр источника.
Комментарии
Версии вершинного шейдера | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
setp_comp | x | x | x | x |
Эта инструкция работает следующим образом:
per channel in destination write mask
{
dst.channel = src0.channel cmp src1.channel
}
Для каждого канала, который может быть записан в соответствии с маской записи назначения, сохраните логический результат операции сравнения между соответствующими каналами src0 и src1 (после разрешения изменений модификатора источника).
Регистры источника позволяют указывать произвольные повороты компонентов.
Регистр назначения допускает произвольные маски записи.
Регистр деста должен быть регистром предиката.
Применение регистра предиката
После инициализации регистра предиката с помощью setp его можно использовать для управления инструкцией для каждого компонента. Ниже приведен синтаксис.
([!]p0[.swizzle]) instruction dest, srcReg, ...
Где:
- [!] является необязательным логическим NOT.
- p0 — это регистр предиката.
- [.swizzle] — это необязательный swizzle, применяемый к содержимому регистра предиката, прежде чем использовать его для маскирования инструкции. Доступные swizzles: .xyzw (по умолчанию, если не указано) или любой реплицируемый swizzle: .x/.r, .y/.g, .z/.b или .a/.w.
- Инструкция — это любая аритметическая инструкция или инструкция текстуры. Это не может быть статическая или динамическая инструкция управления потоком.
- dest, srcReg, ... — это регистры, требуемые инструкцией;
Если регистр предиката настроен со значениями компонентов (true, true, false, false), его можно применить к следующей инструкции:
// given r0 = 0,0,1,1
// given r1 = 1,1,0,0
setp_le p0, r0, r1
(p0) add r2, r3, r4
для выполнения добавления двух компонентов.
r2.x = r3.x + r4.x
r2.y = r3.y + r4.y
Компоненты x и y r2 не будут записываться, так как регистр предиката содержал значение false в компонентах z и w.
При применении регистра предиката к арифметической инструкции или инструкции текстуры число слотов инструкций увеличивается на 1.
Регистр предиката также можно применить к , если pred - vs, callnz pred - vs и breakp - vs инструкции. Эти инструкции управления потоком не имеют увеличения числа слотов инструкций при использовании регистра предиката.
Связанные темы