Share via


imm_atomic_iadd (sm5 - asm)

Ajout immédiat d’entier atomique à la mémoire. Retourne la valeur en mémoire avant l’ajout.

imm_atomic_iadd dst0[.single_component_mask], dst1, dstAddress[.swizzle], src0[.select_component]
Élément Description
dst0
[in] Contient la valeur dans dst1 avant l’écriture.
dst1
Cette valeur doit être une vue d’accès non ordonnée (UAV) (u#). Dans le nuanceur de calcul, il peut également s’agir de la mémoire partagée du groupe de threads (g#).
dstAddress
[in] Naddress de la mémoire.
src0
[in] Valeur à ajouter à dst1.

Notes

Cette instruction effectue l’ajout d’un seul composant entier 32 bits de l’opérande src0 avec dst1 à 32 bits par adresse de composant dstAddress. Il n’est pas sensible à la signature.

Si dst1 est un u#, il a peut-être été déclaré comme brut, typé ou structuré. S’il est typé, il doit être déclaré comme UINT/SINT avec le format de ressource lié R32_UINT/_SINT.

Si dst1 a la valeur g#, il doit être déclaré comme brut ou structuré.

La valeur dans la mémoire dst1 avant l’ajout est retournée à dst0.

Le nombre de composants extraits de l’adresse est déterminé par la dimensionnalité de dst1.

L’ensemble de l’opération est effectué atomiquement.

Si l’appel du nuanceur est inactif, par exemple si le pixel a été ignoré plus tôt dans son exécution, ou si un appel de pixel/d’exemple n’existe que pour servir d’assistance à un pixel/échantillon réel pour les dérivés, cette instruction ne modifie pas du tout la mémoire dst1 , et la valeur retournée n’est pas définie.

L’adressage hors limites sur u# n’entraîne rien d’écrit en mémoire, sauf si l’u# est structuré et que le décalage d’octets dans le struct (deuxième composant de l’adresse) provoque l’accès hors limites, alors tout le contenu de l’UAV devient indéfini.

L’adressage hors limites sur u# ou g# entraîne le retour d’un résultat non défini au nuanceur dans dst0.

Cette instruction s’applique aux étapes suivantes du nuanceur :

Sommet Coque Domain Géométrie Pixel Compute
X X

Étant donné que les UAV sont disponibles à toutes les étapes du nuanceur pour Direct3D 11.1, cette instruction s’applique à toutes les étapes du nuanceur pour le runtime Direct3D 11.1, disponible à partir de Windows 8.

Sommet Coque Domain Géométrie Pixel Compute
X X X X X X

Modèle de nuanceur minimal

Cette instruction est prise en charge dans les modèles de nuanceur suivants :

Modèle de nuanceur Prise en charge
Modèle de nuanceur 5 Oui
Modèle de nuanceur 4.1 non
Modèle de nuanceur 4 non
Modèle de nuanceur 3 (DirectX HLSL) non
Shader Model 2 (DirectX HLSL) non
Modèle de nuanceur 1 (DirectX HLSL) non

Shader Model 5 Assembly (DirectX HLSL)