Share via


for ステートメント

条件式の評価に基づいて、一連のステートメントを繰り返し実行します。

[Attribute] for ( Initializer;条件 付き;Iterator ) { Statement Block; }

パラメーター

属性

ステートメントのコンパイル方法を制御する省略可能なパラメーター。 属性が指定されていない場合、コンパイラは最初にループのロールバージョンの出力を試みます。失敗した場合、またはループがアンロールされた場合に一部の操作が簡単になる場合は、ループの未登録バージョンにフォールバックします。

属性 説明
unroll(x) ループの実行が停止するまで、ループの登録を解除します。 必要に応じて、ループを実行する最大回数を指定できます。 [loop] 属性と互換性がありません。
loop フロー制御を使用してループの各イテレーションを実行するコードを生成します。 [unroll] 属性と互換性がありません。
fastopt コンパイル時間を短縮しますが、より積極的な最適化を生成します。 この属性を使用する場合、コンパイラはループの登録を解除しません。
この属性は、 ブレーク 命令をサポートするシェーダー モデル ターゲットにのみ影響します。 この属性は、シェーダー モデル vs_2_x および シェーダー モデル 3 以降で使用できます。 これは、コンパイラがループをコンパイルするときに シェーダー モデル 4 以降で特に便利です。 コンパイラは既定でループをシミュレートして、ループをアンロールできるかどうかを評価します。 コンパイラでループの登録を解除しない場合は、この属性を使用してコンパイル時間を短縮します。
allow_uav_condition UAV 読み取りの基になるコンピューティング シェーダー ループ終了条件を許可します。 ループには同期組み込みを含めてはいけません。

初期化 子

ループ カウンターの初期値。

条件 付き

条件 。 条件式が true と評価された場合、ステートメント ブロックが実行されます。 式が false に評価されると、ループは終了します。

反復 子

ループ カウンターの値を更新します。

ステートメント ブロック

1 つ以上 の HLSL ステートメント

注釈

[unroll] 属性と [loop] 属性は相互に排他的であり、両方が指定されるとコンパイラ エラーが生成されます。

[unroll] が指定されている場合、[fastopt] 属性と [allow_uav_condition] 属性は無視されます。

こちらもご覧ください

フロー制御