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.