retc (sm4 - asm)
Bedingte Rückgabe.
| retc{ _ z|_nz} src0.select-Komponente _ |
|---|
| Element | Beschreibung |
|---|---|
| src0 |
[in Das Register, mit dem die Bedingung getestet werden ] soll. |
Hinweise
Wenn sich diese Anweisung innerhalb einer Unterroutine befindet, kehrt sie nach dem Aufruf bedingt zur Anweisung zurück. Wenn sich diese Anweisung nicht in einer Unterroutine befindet, wird die Programmausführung beendet.
Im folgenden Beispiel wird die Verwendung dieser Anweisung veranschaulicht.
...
call l3
...
ret
label l3
...
retc_nz r0.x // If any bit in r0.x is nonzero, then return
retc_z r1.x // If all bits in r0.x are zero, then return.
...
ret
Beschränkungen
- Retc kann beliebig oft an einer beliebigen Stelle in einem Programm angezeigt werden.
- Die letzte Anweisung in einem Hauptprogramm oder einer Unterroutine kann kein retc _ z oder retc _ nz sein. Stattdessen kann die bedingungslose Wiederholung verwendet werden.
- Das von src0 bereitgestellte 32-Bit-Register wird auf Bitebene getestet. Wenn ein Bit ungleich 0 (null) ist, wird ret _ nz zurückgegeben. Wenn alle Bits 0 (null) sind, wird retc _ z zurückgegeben.
Diese Anweisung gilt für die folgenden Shaderstufen:
| Vertexshader | Geometrie-Shader | Pixelshader |
|---|---|---|
| x | x | x |
Shader-Mindestmodell
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 |