callnz pred - vs

述語を使用して、0 以外の場合は を呼び出します。 ラベル インデックスによってマークされた命令の条件付き呼び出しを実行します。 Predication では、ブール値を使用して、命令を実行しないかどうかを判断します。

構文

callnz l#, [!]p0。{x|y|z|w}

 

ここで、

  • l# はラベルであり、呼び出されるサブルーチンの先頭を示す ラベル です。
  • [!]は省略可能な negate 修飾子です。
  • p0 は 述語レジスタです。
  • {x|y|z|w} は、p0 で必要なレプリケート スウィズルです。

注釈

頂点シェーダーのバージョン 1_1 2_0 2_x 2_sw 3_0 3_sw
callnz pred x x x x

 

この命令では、次の処理を行います。

if (specified register component is not zero)
{
    Push address of the next instruction to the return address stack.
    Continue execution from the instruction marked by the label.
}

この命令では、頂点シェーダー命令スロットが 1 つ消費されます。

頂点シェーダーの手順