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 - vscallnz pred - vsbreakp - vs 指令,则还可以将谓词寄存器应用于 。 使用谓词寄存器时,这些流控制指令不会增加指令槽计数。

顶点着色器说明