dcl_uav_structured (sm5 - asm)

Dichiarare una visualizzazione di accesso non ordinata (UAV) per l'uso da parte di uno shader.

dcl_uav_structured[_glc] dstUAV, structByteStride
Elemento Descrizione
dstUAV
[in] The UAV.
structByteStride
[in] Dimensioni della struttura in byte.

Commenti

dstUAV è un registro u# dichiarato come riferimento a unorderedAccessView di un buffer strutturato con lo stride specificato che deve essere associato allo slot UAV # nell'API.

Il contenuto della struttura non ha alcun tipo; le operazioni eseguite sulla memoria possono interpretare in modo implicito i dati come con un tipo.

structByteStride è la dimensione della struttura in byte nel buffer dichiarato. Il valore deve essere maggiore di zero. structByteStride è di tipo uint e deve essere un multiplo di 4.

Le istruzioni che fanno riferimento a un oggetto u# strutturato accettano un indirizzo 2D, in cui il primo componente seleziona [struct] e il secondo componente seleziona [offset all'interno dello struct, in byte allineati].

Il flag _glc significa "coerente a livello globale". L'assenza di _glc significa che l'UAV viene dichiarato solo come "coerente del gruppo" nello shader di calcolo o "coerente localmente" in una singola chiamata al pixel shader.

Il flag _opc è il contatore che mantiene l'ordine. Indica che se un UAV è associato a slot # (u#), deve essere stato creato con il flag COUNTER. Ciò significa che imm_atomic_alloc o imm_atomic_consume operazioni nello shader modificano un contatore i cui valori possono essere usati nello shader come riferimento permanente a una posizione nell'UAV. I dati non possono essere riordinati dopo che lo shader è finito.

L'assenza del flag di _opc significa che se lo shader usaistruzioni imm_atomic_alloc o imm_atomic_consume e un UAV è associato a slot # (u), deve essere stato creato con il flag APPEND, che fornisce un contatore che non garantisce che l'ordine venga mantenuto dopo la chiamata dello shader.

Se il flag _opc è assente e lo shader non contiene imm_atomic_alloc o istruzioni imm_atomic_consume , è consentito che sia stato creato un UAV associato allo slot # (u) sia stato creato con il flag COUNTER (il contatore passerà inutilizzato da questo shader), nessun flag (nessun contatore), ma non con il flag APPEND.

Nota

cs_4_0 e cs_4_1 supportano dcl_tgsm_structured, ma non dcl_tgsm_raw.

Questa istruzione si applica alle fasi dello shader seguenti:

Vertice Scafo Dominio Geometria Pixel Calcolo
X X

Poiché gli UAV sono disponibili in tutte le fasi dello shader per Direct3D 11.1, questa istruzione si applica a tutte le fasi dello shader per il runtime direct3D 11.1, disponibile a partire da Windows 8.

Vertice Scafo Dominio Geometria Pixel Calcolo
X X X X X X

Modello minimo shader

Questa istruzione è supportata nei modelli di shader seguenti:

Modello di shader Supportato
Modello shader 5
Modello shader 4.1 no
Modello shader 4 no
Modello shader 3 (DirectX HLSL) no
Modello shader 2 (DirectX HLSL) no
Modello shader 1 (DirectX HLSL) no

Nota

Questa istruzione è supportata in cs_4_0 e cs_4_1.

Assembly modello shader 5 (DirectX HLSL)