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 - ps、callnz pred - ps和breakp - ps指示,也可以套用述詞暫存器。 這些流程式控制制指令在使用述詞暫存器時,指令位置計數不會有任何增加。
相關主題