loop – ps
Startet eine Schleife... endloop : ps-Block.
Syntax
| loop aL, i# |
|---|
Hierbei gilt:
- aL ist das Schleifenzählerregister mit der aktuellen Schleifenanzahl.
- i # ist ein Constant Integer Register. Siehe Bemerkungen.
Bemerkungen
| Pixel-Shaderversionen | 1_1 | 1_2 | 1 _ 3 | 1_4 | 2 _ 0 | 2 _ x | 2 _ sw | 3 _ 0 | 3 _ sw |
|---|---|---|---|---|---|---|---|---|---|
| loop | x | x |
- Das Loop Counter Register (aL) enthält die aktuelle Schleifenanzahl und kann für die relative Adressierung im Eingabefarbregister (v) innerhalb des Schleifenblocks verwendet # werden.
- i # .x gibt die Iterationsanzahl an. Der rechtliche Bereich [ beträgt 0, 255 ] . Beachten Sie, dass der Wert von i.x durch diese Anweisung nicht erhöht oder # dekrementiert wird.
- i # .y gibt den Anfangswert des AL-Registers (Loop Counter Register) an. Der rechtliche Bereich [ beträgt 0, 255 ] . Beachten Sie, dass der Wert von i.y durch diese Anweisung nicht erhöht # oder dekrementiert wird.
- i # .z gibt die Schritt-/Schrittgröße an. Der rechtliche Bereich ist [ -128, 127 ] .
- i # .w wird vom Schleifenblock nicht verwendet und muss 0 sein.
- Schleifenblöcke können geschachtelt sein. Weitere Informationen finden Flow Einschränkungen des Steuerelements.
- Bei der Verschachtelung bezieht sich der Wert des Loop Counter Register (aL) auf den unmittelbaren umschließenden Schleifenblock.
- Schleifenblöcke dürfen sich entweder vollständig innerhalb eines * if-Blocks oder vollständig um ihn herum befinden. Es ist kein Umschnallen zulässig.
Beispiel
loop aL, i3
add r1, r0, v2[ aL ]
endloop