setp_comp — ps
Задайте регистр предиката.
Синтаксис
setp_comp dst, src0, src1 |
---|
Где:
_comp — это сравнение двух исходных регистров по каналу. Может принимать одно из следующих значений:
Синтаксис Сравнение _Gt Больше чем _Lt Меньше чем _Ge Больше или равно _Le Меньше или равно _Эквалайзер Равно _Ne Не равно dst — это регистр предиката , p0.
src0 — это регистр источника.
src1 является исходным регистром.
Комментарии
Версии шейдера пикселей | 1_1 | 1_2 | 1_3 | 1_4 | 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 (после разрешения сверток модификатора источника).
Регистры источника позволяют указывать произвольные повороты компонентов.
Регистр назначения допускает произвольные маски записи.
Регистр dst должен быть регистром предиката.
Применение регистра предиката
После инициализации регистра предиката с помощью setp_comp его можно использовать для управления инструкцией для каждого компонента. Ниже приведен синтаксис.
([!]p0[.swizzle]) instruction dest, src0, ...
Где:
- [!] является необязательным логическим NOT.
- p0 — это регистр предиката.
- [.swizzle] — это необязательный swizzle, применяемый к содержимому регистра предиката, прежде чем использовать его для маскирования инструкции. Доступные swizzles: .xyzw (по умолчанию, если не указано) или любой реплицируемый swizzle: .x/.r, .y/.g, .z/.b или .a/.w.
- Инструкция — это любая аритметическая или текстурная инструкция. Это не может быть статическая или динамическая инструкция управления потоком.
- dest, src0, ... регистры, требуемые инструкцией;
Если регистр предиката настроен со значениями компонентов (true, true, false, false), его можно применить к следующей инструкции:
(p0) add r1, r2, r3
, чтобы выполнить добавление двух компонентов.
r1.x = r2.x + r3.x
r1.y = r2.y + r3.y
Компоненты z и w r1 не будут записаны, так как регистр предиката содержит значение false в компонентах z и w.
Применение регистра предиката к арифметической инструкции или инструкции текстуры увеличивает количество слотов инструкций на 1.
Регистр предиката также можно применить к инструкциям , если pred - ps, callnz pred - ps и breakp - ps инструкции. Эти инструкции управления потоком не имеют увеличения количества слотов инструкций при использовании регистра предиката.
Связанные темы