setp_comp - vs
设置谓词寄存器。
语法
setp_comp dst、src0、src1 |
---|
其中:
_comp是两个源寄存器之间的每个通道比较。 该参数可以是下列值之一:
语法 比较 _燃气轮机 大于 _lt 小于 _通用 电气 大于或等于 _乐 小于或等于 _情 商 等于 _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 的相应通道之间的比较操作的布尔结果 (。
源寄存器允许指定任意组件重排。
目标寄存器允许任意写入掩码。
dest 寄存器必须是谓词寄存器。
应用谓词寄存器
使用 setp 初始化谓词寄存器后,它可用于控制每个组件的指令。 语法如下:
([!]p0[.swizzle]) instruction dest, srcReg, ...
其中:
- [!]是可选的布尔 NOT
- p0 是谓词寄存器
- [.swizzle] 是一个可选的重排,用于在使用谓词寄存器屏蔽指令之前应用于谓词寄存器的内容。 当没有指定) 时,可用的重排为:.xyzw (默认值,或任何复制重排:.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
执行 2 组件添加。
r2.x = r3.x + r4.x
r2.y = r3.y + r4.y
r2 的 x 和 y 分量将不会写入,因为谓词寄存器在组件 z 和 w 中包含 false。
将谓词寄存器应用于算术或纹理指令会增加其指令槽计数 1。
如果 pred - vs、callnz pred - vs 和 breakp - vs 指令,则还可以将谓词寄存器应用于 。 使用谓词寄存器时,这些流控制指令不会增加指令槽计数。
相关主题