loop (sm4 - asm)

Gibt eine Schleife an, die iteriert, bis eine Breakanweisung gefunden wird.

loop

Bemerkungen

-Schleife kann unbegrenzt iterieren, obwohl die gesamte Ausführung des Shaders möglicherweise gezwungen wird, zu beenden, nachdem einige Anweisungen ausgeführt wurden.

Flow Steuerblöcke können bis zu 64 Tiefe pro Unterroutine und Main schachteln. Der HLSL-Compiler generiert keine Unterroutinen, die diesen Grenzwert überschreiten. Das Verhalten von Ablaufsteuerungsanweisungen über 64 Ebenen hinaus pro Unterroutine ist nicht definiert.

Das Tokenformat enthält der Einfachheit halber den Offset der entsprechenden Endloopanweisung im Shader.

Im folgenden Beispiel wird die Verwendung der Schleifenanweisung veranschaulicht.

                loop
                    // example of termination condition
                    if_nz r0.x
                        break
                    endif
                    ...
                endloop

Diese Anweisung gilt für die folgenden Shaderstufen:

Vertexshader Geometrie-Shader Pixelshader
x x x

Minimales Shadermodell

Diese Funktion wird in den folgenden Shadermodellen unterstützt.

Shadermodell Unterstützt
Shadermodell 5 ja
Shadermodell 4.1 ja
Shadermodell 4 ja
Shadermodell 3 (DirectX HLSL) nein
Shadermodell 2 (DirectX HLSL) nein
Shadermodell 1 (DirectX HLSL) nein

Shader Model 4-Assembly (DirectX HLSL)