atomic_and (sm5 - asm)

Atomic bitweise AND in Den Arbeitsspeicher.

atomic_and dest, dstAddress[.swizzle], src0[.select_component]
Element BESCHREIBUNG
Dest
[in] Die Komponenten für AND mit src0. Dieser Wert muss eine ungeordnete Zugriffsansicht (UAV) (u#) sein. Im Compute-Shader kann es sich auch um freigegebenen Arbeitsspeicher der Threadgruppe (g#) handeln.
dstAddress
[in] Die Speicheradresse.
src0
[in] Die Komponenten für AND mit dest.

Hinweise

Dieser Vorgang führt eine einzelne komponente 32-Bit bitweise AND des Operanden src0 in dest bei 32-Bit pro Komponentenadresse dstAddress aus, die atomar ausgeführt wird.

Die Anzahl der Komponenten aus der Adresse 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. Wenn sie eingegeben wird, muss sie als UINT/SINT deklariert werden, wobei das gebundene Ressourcenformat R32_UINT/_SINT ist.

Wenn dest g# ist, muss es als unformatiert oder strukturiert deklariert werden.

An den Shader wird nichts zurückgegeben.

Wenn der Shaderaufruf inaktiv ist, z. B. wenn das Pixel früher bei seiner Ausführung verworfen wurde oder ein Pixel-/Sample-Aufruf 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 außerhalb der Grenzen für u# bewirkt, dass nichts in den Arbeitsspeicher geschrieben wird, außer wenn das 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.

Die Adressierung außerhalb der Grenzen für g# (die Grenzen dieses bestimmten g#, im Gegensatz zum gesamten freigegebenen Speicher) bewirkt, dass der gesamte Inhalt des gesamten freigegebenen Speichers nicht definiert wird.

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 Shaderphasen 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

Assembly des Shadermodells 5 (DirectX HLSL)