Schleife – im Vergleich
Starten Sie eine Schleife... Endloop-Block .
Syntax
Schleife aL, i # |
---|
Hierbei gilt:
- aL ist das Schleifenzählerregister mit der aktuellen Schleifenanzahl.
- i# ist ein ganzzahliges Konstantenregister. Siehe Bemerkungen.
Bemerkungen
Vertex-Shaderversionen | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
loop | x | x | x | x | x |
- Das Schleifenzählerregister (Loop Counter Register , aL) enthält die aktuelle Schleifenanzahl und kann für die relative Adressierung in konstanten ganzzahligen Registern (c#) oder Ausgaberegistern (o#) innerhalb des Schleifenblocks verwendet werden.
- i#.x gibt die Iterationsanzahl an. Der rechtliche Bereich ist [0, 255]. Beachten Sie, dass diese Anweisung den Wert von i#.x nicht erhöht oder verringert.
- i#.y gibt den Anfangswert des AL-Registers ( Loop Counter Register ) an. Der rechtliche Bereich ist [0, 255]. Beachten Sie, dass diese Anweisung den Wert von i#.y nicht erhöht oder verringert.
- i#.z gibt die Schritt-/Schrittgröße an. Der rechtliche Bereich ist [-128, 127].
- i#.w wird nicht verwendet und muss auf 0 festgelegt werden.
- Schleifenblöcke können geschachtelt sein. Weitere Informationen finden Sie unter Schachtelungsgrenzwerte für die Flusssteuerung.
- Wenn geschachtelt, bezieht sich der Wert des Schleifenzählerregisters (aL) auf den unmittelbar eingeschlossenen Schleifenblock.
- Schleifenblöcke dürfen sich entweder vollständig in einem if*-Block befinden oder ihn vollständig umgeben. Es ist kein Straddling zulässig.
Beispiel
loop aL, i3
add r1, r0, c2[aL]
endloop
Zugehörige Themen