atomic_imax (sm5 – asm)
Atomic signed integer maximum to memory.
atomic_imax dest, dstAddress[.swizzle], src0[.select_component] |
---|
Element | BESCHREIBUNG |
---|---|
Dest |
[in] Die Komponenten, die mit src0 verglichen werden sollen. Dieser Wert muss eine ungeordnete Zugriffssicht (UAV) (u#) sein. Im Compute-Shader kann es sich auch um freigegebenen Threadgruppenspeicher (g#) handeln. |
dstAddress |
[in] Die Speicheradresse. |
src0 |
[in] Die Komponenten, die mit dest verglichen werden sollen. |
Hinweise
Dieser Vorgang führt ein einzelnes 32-Bit-Signiertes Maximum von operand src0 in dest bei 32-Bit pro Komponentenadresse dstAddress aus, das atomar ausgeführt wird.
Die Anzahl der Komponenten, die aus der Adresse entnommen werden, wird durch die Dimensionalität von dest u# oder g# bestimmt.
Wenn dest ein u# ist, kann es als unformatiert, typisiert oder strukturiert deklariert werden. Bei der Eingabe muss sie als UINT/SINT deklariert werden, wobei das gebundene Ressourcenformat R32_UINT/_SINT ist.
Wenn dest g# ist, muss es als roh oder strukturiert deklariert werden.
Es wird nichts an den Shader zurückgegeben.
Wenn der Shaderaufruf inaktiv ist, z. B. wenn das Pixel früher in seiner Ausführung verworfen wurde oder wenn ein Pixel-/Beispielaufruf nur vorhanden ist, um als Hilfsprogramm für ein echtes Pixel/Sample für Ableitungen zu dienen, ändert diese Anweisung den dest-Speicher überhaupt nicht (im Hintergrund).
Die Adressierung von Out-of-Grenzen für u# bewirkt, dass nichts in den Arbeitsspeicher geschrieben wird, außer wenn der u# strukturiert ist und der Byteoffset in die Struktur (zweite Komponente der Adresse) den Zugriff außerhalb der Grenzen verursacht, wird der gesamte Inhalt des UAV undefiniert.
Bei der Adressierung von Außerhalb der Grenzen für g# (die Grenzen dieses bestimmten g#, im Gegensatz zum gesamten freigegebenen Speicher) wird der gesamte Inhalt des gesamten freigegebenen Arbeitsspeichers nicht definiert.
Diese Anweisung gilt für die folgenden Shaderphasen:
Scheitelpunkt | Hull | Domain | Geometrie | Pixel | Compute |
---|---|---|---|---|---|
X | X |
Da UAVs in allen Shaderphasen für Direct3D 11.1 verfügbar sind, gilt diese Anweisung für alle Shaderstufen für die Direct3D 11.1-Runtime, die ab Windows 8 verfügbar ist.
Scheitelpunkt | Hull | Domain | Geometrie | Pixel | Compute |
---|---|---|---|---|---|
X | X | X | X | X | X |
Minimales Shadermodell
Diese Anweisung wird in den folgenden Shadermodellen unterstützt:
Shadermodell | Unterstützt |
---|---|
Shadermodell 5 | ja |
Shadermodell 4.1 | Nein |
Shadermodell 4 | Nein |
Shadermodell 3 (DirectX HLSL) | Nein |
Shadermodell 2 (DirectX HLSL) | Nein |
Shadermodell 1 (DirectX HLSL) | Nein |