loop - vs
ループを開始します...endloop ブロック。
構文
ループ aL、i# |
---|
この場合、
- aL は、現在のループ数を保持するループ カウンター レジスタ です。
- i# は 定数整数レジスタです。 「解説」を参照してください。
解説
頂点シェーダーのバージョン | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
loop | x | x | x | x | x |
- ループ カウンター レジスタ (aL) は現在のループ数を保持し、ループ ブロック内の定数整数レジスタ (c#) または出力レジスタ (o#) への相対アドレス指定に使用できます。
- i#.x は反復回数を指定します。 有効範囲は [0, 255] です。 この命令は、i#.x の値をインクリメントまたはデクリメントしないことに注意してください。
- i#.y は 、ループ カウンター レジスタ (aL) レジスタの初期値を指定します。 有効範囲は [0, 255] です。 この命令は、i#.y の値をインクリメントまたはデクリメントしないことに注意してください。
- i#.z では、ステップ/ストライド サイズを指定します。 有効範囲は [-128, 127] です。
- i#.w は使用されず、0 に設定する必要があります。
- ループ ブロックは入れ子にすることができます。 フロー制御の入れ子の制限に関するページを参照してください。
- 入れ子にすると、 ループ カウンター レジスタ (aL) の値は、直前の囲みループ ブロックを参照します。
- ループ ブロックは、if* ブロック内に完全に配置することも、完全に囲んでもかまいません。 またがりは許可されません。
例
loop aL, i3
add r1, r0, c2[aL]
endloop
関連トピック