Condividi tramite


imm_atomic_consume (sm5 - asm)

Decrementare in modo atomico il contatore nascosto a 32 bit archiviato con una visualizzazione di accesso non ordinata o Accoda accesso non ordinato (UAV), restituendo il nuovo valore.

imm_atomic_consume dest[.single_component_mask], dstUAV
Elemento Descrizione
Dest
[in] Contiene il valore del contatore originale restituito.
dstUAV
[in] UAV del buffer strutturato con il flag Count o Append.

Commenti

Vedere imm_atomic_alloc per una discussione sulla validità del valore del conteggio restituito a seconda che l'UAV sia Count o Append. Lo stesso vale per imm_atomic_consume.

imm_atomic_consume esegue un decremento atomico del valore del contatore, restituendo il nuovo valore a dest.

Non c'è alcun blocco del conteggio, quindi esegue il wrapping sull'underflow.

Lo stesso shader non può tentare sia imm_atomic_alloc che imm_atomic_consume nello stesso UAV. Inoltre, la GPU non può consentire più chiamate shader di combinare imm_atomic_alloc e imm_atomic_consume nello stesso UAV.

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

Assembly modello shader 5 (DirectX HLSL)