共用方式為


setp_comp - ps

設定述詞暫存器。

Syntax

setp_comp dst、src0、src1

 

其中:

  • _comp是兩個來源暫存器之間的每個通道比較。 可以是下列其中一項:

    Syntax 比較
    _燃氣輪機 大於
    _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
}

針對每個可以根據目的地寫入遮罩所撰寫的通道,在解析來源修飾詞 swizzles 之後,儲存 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

表示執行 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指示,也可以套用述詞暫存器。 這些流程式控制制指令在使用述詞暫存器時,指令位置計數不會有任何增加。

圖元著色器指示