imm_atomic_and (sm5 - asm)

Sofortige atomweise UND speicherweise. Gibt den Wert im Arbeitsspeicher vor dem AND zurück.

imm_atomic_and dst0[.single_component_mask], dst1, dstAddress[.swizzle], src0[.select_component]
Element BESCHREIBUNG
dst0
[in] Enthält den Wert von dst1 vor dem AND.
dst1
[in] Eine ungeordnete Zugriffsansicht (UAV) (u#). Im Compute-Shader kann dies auch threadgruppen shared memory (g#) sein.
dstAddress
[in] Der Zielspeicher.
src0
Der Wert für AND mit dst.

Bemerkungen

Diese Anweisung führt eine einzelne Komponente 32-Bit-Bit- UND von Operand src0 mit dst1 bei 32-Bit pro Komponentenadresse dstAddress aus.

Wenn dst1 ein u# ist, wurde sie möglicherweise als unformatiert, typisch oder strukturiert deklariert. Wenn sie eingegeben wird, muss sie als UINT/SINT deklariert werden, wobei das gebundene Ressourcenformat R32_UINT/_SINT ist.

Wenn dst1 g# ist, muss sie als unformatiert oder strukturiert deklariert werden.

Der Wert im dst1-Speicher , bevor die AND an dst0 zurückgegeben wird.

Der gesamte Vorgang wird atomisch ausgeführt.

Die Anzahl der Komponenten, die aus der Adresse stammen, wird durch die Dimensionalität der ressource bestimmt, die bei dst1 deklariert ist.

Wenn der Aufruf des Shaders inaktiv ist, z. B. wenn das Pixel früher in seiner Ausführung verworfen wurde oder nur ein Pixel/Beispielaufruf vorhanden ist, um als Hilfsprogramm für ein reales Pixel/Beispiel für Derivate zu dienen, ändert diese Anweisung den dst1-Speicher überhaupt nicht, und der zurückgegebene Wert ist nicht definiert.

Nicht gebundene Adressierung auf u# bewirkt, dass nichts in den Arbeitsspeicher geschrieben wird, außer wenn u# strukturiert ist, und Byteversatz in die Struktur (zweite Komponente der Adresse) verursacht den Zugriff außerhalb der Grenzen, dann wird der gesamte Inhalt des UAV nicht definiert.

Die Adressierung von Grenzen für u# oder g# bewirkt, dass ein nicht definiertes Ergebnis an den Shader in dst0 zurückgegeben wird.

Diese Anweisung gilt für die folgenden Shaderphasen:

Scheitelpunkt Rumpf Domain Geometrie Pixel Compute
X X

Da UAVs auf allen Shaderstufen für Direct3D 11.1 verfügbar sind, gilt diese Anweisung für alle Shaderstufen für die Direct3D 11.1-Laufzeit, die ab Windows 8 verfügbar ist.

Scheitelpunkt Rumpf Domain Geometrie Pixel Compute
X X X X X X

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

Shadermodell 5-Assembly (DirectX HLSL)