setp_comp - ps
述語レジスタを設定します。
構文
setp_comp dst、src0、src1 |
---|
この場合、
_compは、2 つのソース レジスタ間のチャネルごとの比較です。 次のいずれかを指定できます。
構文 比較 _Gt より大きい _中尉 より小さい _Ge 以上 _ル 以下 _Eq 等しい _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 の対応するチャネル間の比較操作のブール値の結果を保存します (ソース修飾子 swizzles が解決された後)。
ソース レジスタを使用すると、任意のコンポーネントスウィズルを指定できます。
宛先レジスタでは、任意の書き込みマスクを使用できます。
dst レジスタは述語レジスタである必要があります。
述語レジスタの適用
述語レジスタが setp_comp で初期化されたら、それを使用してコンポーネントごとの命令を制御できます。 構文を次に示します。
([!]p0[.swizzle]) instruction dest, src0, ...
この場合、
- [!]は省略可能なブール値 NOT です
- p0 は述語レジスタです
- [.swizzle] は、述語レジスタを使用して命令をマスクする前に述語レジスタの内容に適用するオプションの swizzle です。 使用可能なスワイズルは、.xyzw (指定されていない場合は既定値)、レプリケート swizzle: .x/.r、.y/.g、.z/.b、.a/.w です。
- 命令は、任意の aritmetic またはテクスチャ命令です。 静的または動的フロー制御命令にすることはできません。
- 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 命令の場合にも適用できます。 これらのフロー制御命令では、述語レジスタを使用する場合、命令スロット数は増加しません。
関連トピック