setp_comp - ps
设置谓词寄存器。
语法
setp_comp dst、src0、src1 |
---|
其中:
_comp是两个源寄存器之间的每通道比较。 该参数可以是下列值之一:
语法 比较 _燃气轮机 大于 _lt 小于 _通用 电气 大于或等于 _乐 小于或等于 _情 商 等于 _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] 是一个可选的重排,用于在使用谓词寄存器屏蔽指令之前应用于谓词寄存器的内容。 当未指定任何) 时,可用的重排为 .xyzw (默认值,或者任何复制重排:.x/.r、.y/.g、.z/.b 或 .a/.w。
- 指令是任何特写指令或纹理指令。 这不能是静态或动态流控制指令。
- dest, src0, ...是指令所需的寄存器
假设谓词寄存器已使用 (true、true、false、false) 组件值进行设置,则可以将其应用于以下指令:
(p0) add r1, r2, r3
执行 2 个组件添加。
r1.x = r2.x + r3.x
r1.y = r2.y + r3.y
r1 的 z 和 w 分量不会写入,因为谓词寄存器在组件 z 和 w 中包含 false。
将谓词寄存器应用于算术或纹理指令时,其指令槽计数增加 1。
谓词寄存器也可以应用于 pred - ps、 callnz pred - ps 和 breakp - ps 指令。 使用谓词寄存器时,这些流控制指令的指令槽计数没有任何增加。
相关主题