dcl _ uav _ structured (sm5 - asm)

Deklarieren Sie eine ungeordnete Zugriffsansicht (UAV) für die Verwendung durch einen Shader.

dcl _ uav _ structured [ _ glc ] dstUAV, structByteStride
Element Beschreibung
dstUAV
[im ] UAV.
structByteStride
[in ] Die Größe der Struktur in Bytes.

Hinweise

dstUAV ist ein U-Register, das als Verweis auf eine UnorderedAccessView eines strukturierten Puffers mit dem angegebenen Stride deklariert ist, der an den UAV-Slot in der API gebunden werden # # muss.

Der Inhalt der -Struktur hat keinen Typ. Vorgänge, die für den Arbeitsspeicher ausgeführt werden, interpretieren die Daten möglicherweise implizit so, als ob sie einen Typ haben.

structByteStride ist die Größe der Struktur in Bytes im puffer, der deklariert wird. Dieser Wert muss größer als 0 sein. structByteStride ist vom Typ uint und muss ein Vielfaches von 4 sein.

Anweisungen, die auf ein strukturiertes u verweisen, nehmen eine 2D-Adresse an, wobei die erste Komponente die Struktur auswählt und die zweite Komponente offset innerhalb der Struktur in ausgerichteten Bytes # [ ] [ auswählt. ]

Das _ glc-Flag bedeutet für "global zusammenhängende". Das Fehlen von glc bedeutet, dass die UAV im Compute-Shader nur als "gruppenreigent" oder bei einem Aufruf eines Einzelnen Pixel-Shaders _ als "lokal zusammenhängend" deklariert wird.

Das _ opc-Flag ist der Zähler für die Beibehaltung der Reihenfolge. Gibt an, dass ein UAV mit dem COUNTER-Flag erstellt worden sein muss, wenn er an den Slot # (u) # gebunden ist. Dies bedeutet, dass imm _ atomic _ alloc- oder imm _ _ atomic-Vorgänge im Shader einen Zähler bearbeiten, dessen Werte im Shader als permanenter Verweis auf eine Position im UAV verwendet werden können. Daten können nicht neu angeordnet werden, nachdem der Shader beendet wurde.

Das Fehlen des opc-Flags bedeutet, dass, wenn der _ Shader imm atomic _ _ alloc- oder imm _ atomic _ consume-Anweisungen verwendet und ein UAV an den Slot (u) gebunden ist, mit dem APPEND-Flag erstellt worden sein muss, das einen Zähler bietet, der nicht garantiert, dass die Reihenfolge nach dem # Shaderaufruf beibehalten wird.

Wenn das opc-Flag nicht vorhanden ist und der Shader keine Anweisungen für _ imm _ atomic _ alloc oder imm _ atomic _ consume enthält, darf ein UAV, das an slot (u) gebunden ist, mit dem COUNTER-Flag erstellt worden sein (der Indikator wird von diesem Shader nicht verwendet), kein Flag (kein Indikator), aber nicht mit dem # APPEND-Flag.

Hinweis

cs _ 4 _ 0 und cs _ 4 _ 1 unterstützt dcl _ tgsm _ structured, aber nicht dcl _ tgsm _ raw.

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.

Scheitelpunkt Rumpf 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

Hinweis

Diese Anweisung wird in cs _ 4 _ 0 und cs _ 4 _ 1 unterstützt.

Shader Model 5-Assembly (DirectX HLSL)