Freigeben über


Schleife – im Vergleich

Starten Sie eine Schleife... Endloop-Block .

Syntax

Schleife aL, i #

 

Hierbei gilt:

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

Anweisungen zum Vertex-Shader