imm _ atomic _ oder (sm5 – asm)
Sofortiges atomares bitweises OR in den Arbeitsspeicher. Gibt den Wert im Arbeitsspeicher vor dem OR zurück.
| imm _ atomic _ oder dst0 [ .single component mask , _ _ ] dst1, dstAddress [ .swizzle ] , src0 [ .select _ component] |
|---|
| Element | Beschreibung |
|---|---|
| dst0 |
[in ] Enthält den Wert von dst1 vor dem OR. |
| dst1 |
[in ] Einer ungeordneten Zugriffsansicht (UAV) (u # ). Im Compute-Shader kann es sich auch um freigegebenen Threadgruppenspeicher # (g) handelt. |
| dstAddress |
[in ] Die Speicheradresse. |
| src0 |
Der Wert für OR mit dst1. |
Hinweise
Diese Anweisung führt eine einzelne 32-Bit-Bit-BIT-OR-Komponente des Operanden src0 mit dst1 bei 32-Bit pro Komponentenadresse dstAddress aus.
Wenn dst1 ein u # ist, wurde er möglicherweise als roh, typisiert oder strukturiert deklariert. Wenn sie typisiert ist, muss sie als UINT/SINT deklariert werden, wobei das gebundene Ressourcenformat R32 _ _ UINT/SINT ist.
Wenn dst1 g # ist, muss es als roh oder strukturiert deklariert werden.
Der Wert im dst1-Speicher, bevor or an dst0 zurückgegeben wird.
Der gesamte Vorgang wird atomar ausgeführt.
Die Anzahl der Von der Adresse entnommenen Komponenten wird durch die Dimensionalität der Ressource bestimmt, die bei dst1 deklariert wurde.
Wenn der Shaderaufruf inaktiv ist, z. B. wenn das Pixel zuvor bei der Ausführung verworfen wurde oder ein Pixel-/Beispielaufruf nur als Hilfselement für ein echtes Pixel/Sample für Ableitungen dient, ändert diese Anweisung den dst1-Speicher überhaupt nicht, und der zurückgegebene Wert ist nicht definiert.
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, dann wird der gesamte Inhalt des UAV nicht definiert.
Die Adressierung außerhalb der 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 Shaderstufen:
| Scheitelpunkt | Rumpf | Domain | Geometrie | Pixel | Compute |
|---|---|---|---|---|---|
| X | X |
Da UAVs in allen Shaderstufen 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 | Rumpf | Domain | Geometrie | Pixel | Compute |
|---|---|---|---|---|---|
| X | X | X | X | X | X |
Shader-Mindestmodell
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 |