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 - pscallnz pred - psbreakp - ps 指令。 使用谓词寄存器时,这些流控制指令的指令槽计数没有任何增加。

像素着色器说明