Schleife (sm4 – asm)
Gibt eine Schleife an, die durchläuft, bis eine Unterbrechungsanweisung gefunden wird.
loop |
---|
Bemerkungen
die -Schleife kann unbegrenzt durchlaufen werden, obwohl die gesamte Ausführung des Shaders gezwungen werden kann, zu beenden, nachdem einige Anweisungen ausgeführt wurden.
Flusssteuerungsblöcke können bis zu 64 Tiefe pro Unterroutine und Standard verschachtelt werden. Der HLSL-Compiler generiert keine Unterroutinen, die diesen Grenzwert überschreiten. Das Verhalten von Ablaufsteuerungsanweisungen, die über 64 Ebenen tief pro Unterroutine hinausgehen, ist undefiniert.
Das Tokenformat enthält zur Vereinfachung den Offset der entsprechenden Endloop-Anweisung im Shader.
Im folgenden Beispiel wird gezeigt, wie die Schleifenanweisung verwendet wird.
loop
// example of termination condition
if_nz r0.x
break
endif
...
endloop
Diese Anweisung gilt für die folgenden Shaderphasen:
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 |
Zugehörige Themen