loop (sm4 - asm)
中断命令が検出されるまで反復処理するループを指定します。
loop |
---|
解説
ループ は無期限に繰り返すことができますが、シェーダーの全体的な実行は、いくつかの命令が実行された後に強制的に終了する可能性があります。
フロー制御ブロックは、サブルーチンとメインごとに最大 64 個の深いネストが可能です。 HLSL コンパイラでは、この制限を超えるサブルーチンは生成されません。 サブルーチンごとに 64 レベルを超える制御フロー命令の動作は未定義です。
トークン形式には、便利な方法として、シェーダーの対応する endloop 命令のオフセットが含まれています。
次の例は、ループ命令の使用方法を示しています。
loop
// example of termination condition
if_nz r0.x
break
endif
...
endloop
この命令は、次のシェーダー ステージに適用されます。
頂点シェーダー | ジオメトリ シェーダー | ピクセル シェーダー |
---|---|---|
x | x | x |
最小シェーダー モデル
この関数は、次のシェーダー モデルでサポートされています。
シェーダー モデル | サポートされています |
---|---|
シェーダー モデル 5 | はい |
シェーダー モデル 4.1 | はい |
シェーダー モデル 4 | はい |
シェーダー モデル 3 (DirectX HLSL) | no |
シェーダー モデル 2 (DirectX HLSL) | no |
シェーダー モデル 1 (DirectX HLSL) | no |
関連トピック