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 |
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour