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] 属性は無視されます。