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 |