imm_atomic_imax (sm5 - asm)
Massimo con segno atomico immediato alla memoria. Restituisce il valore in memoria prima dell'operazione massima.
imm_atomic_imax dst0[.single_component_mask], dst1, dstAddress[.swizzle], src0[.select_component] |
---|
Elemento | Descrizione |
---|---|
dst0 |
[in] Contiene il valore da dst1 prima di questa istruzione. |
dst1 |
[in] Visualizzazione di accesso non ordinata (UAV) (u#). Nello shader di calcolo può essere anche la memoria condivisa del gruppo di thread (g#). |
dstAddress |
[in] Indirizzo di memoria. |
src0 |
[in] Valore da confrontare con dstAddress in dstAddress. |
Commenti
Questa istruzione esegue un singolo componente con segno a 32 bit massimo di operando src0 con dst1 a 32 bit per ogni indirizzo del componente dstAddress.
Se dst1 è un u#, può essere stato dichiarato come non elaborato, digitato o strutturato. Se digitato, deve essere dichiarato come UINT/SINT con il formato di risorsa associato R32_UINT/_SINT.
Se dst1 è g#, deve essere dichiarato come non elaborato o strutturato.
Valore nella memoria dst1 prima che max venga restituito a dst0.
Il numero di componenti presi dall'indirizzo è determinato dalla dimensione di dst1.
L'intera operazione viene eseguita atomicamente.
Se la chiamata dello shader è inattiva, ad esempio se il pixel è stato rimosso in precedenza nell'esecuzione o esiste solo una chiamata pixel/sample per servire come helper a un reale pixel/esempio per i derivati, questa istruzione non modifica la memoria dst1 in tutto e il valore restituito non è definito.
L'indirizzamento out of bounds su u# causa la scrittura in memoria di nulla, tranne se l'u# è strutturata e l'offset di byte nello struct (secondo componente dell'indirizzo) causa l'uscita dai limiti di accesso, quindi l'intero contenuto dell'UAV diventa non definito.
Gli indirizzi non definiti in u# o g# causano la restituzione di un risultato non definito al shader in dst0.
Questa istruzione si applica alle fasi dello shader seguenti:
Vertice | Scafo | Dominio | Geometria | Pixel | Calcolo |
---|---|---|---|---|---|
X | X |
Poiché le UAV sono disponibili in tutte le fasi 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 di shader minimo
Questa istruzione è supportata nei modelli shader seguenti:
Modello di shader | Supportato |
---|---|
Modello shader 5 | sì |
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 |