次の方法で共有


call (sm4 - asm)

によってマークされたサブルーチンを呼び出します。ここで、ラベル l# がプログラムに表示されます。

l を呼び出す#
項目 説明
L#
[入力]サブルーチンのラベル。

解説

ret が見つかったら、この呼び出しの後の命令に実行を返します。

トークン形式には、便利な方法として、シェーダー内の対応するラベルのオフセットが含まれています。

次の例は、呼び出し命令を示しています。

                ...
                call l3
                ...
                ret
                label l3
                    ...
                    retc_nz r0.x
                    ...
                ret

制限

  • サブルーチンは、深い 32 を入れ子にすることができます。
  • リターン アドレス スタックは、 実装によって透過的に管理されます。
  • リターン アドレス スタックに既に 32 個のエントリがあり、 呼び出し が発行された場合、呼び出しはスキップされます。
  • 自動パラメーター スタックはありません。 アプリケーションでは、インデックス可能な一時レジスタ配列 (x#[]) を使用して、スタックを手動で実装できます。 ただし、サブルーチン呼び出し戻しアドレスは表示されず、アプリケーションによって行われる手動スタック管理と直交しています。
  • l# パラメーターのインデックス作成は許可されません。
  • 再帰は許可されません。

この命令は、次のシェーダー ステージに適用されます。

頂点シェーダー ジオメトリ シェーダー ピクセル シェーダー
x x x

最小シェーダー モデル

この関数は、次のシェーダー モデルでサポートされています。

シェーダー モデル サポートされています
シェーダー モデル 5 はい
シェーダー モデル 4.1 はい
シェーダー モデル 4 はい
シェーダー モデル 3 (DirectX HLSL) no
シェーダー モデル 2 (DirectX HLSL) no
シェーダー モデル 1 (DirectX HLSL) no

シェーダー モデル 4 アセンブリ (DirectX HLSL)