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

Shadermodell 4-Assembly (DirectX HLSL)