IMM _ Atomic _ IAdd (SM5-ASM)
Entier atomique immédiat ajouté à la mémoire. Retourne la valeur en mémoire avant l’ajout.
| IMM _ Atomic _ IAdd dst0 [ . _ _ masque de composant unique ] , dst1, dstAddress [ . Swizzle ] , src0 [ . Sélectionner un _ composant] |
|---|
| Élément | Description |
|---|---|
| dst0 |
[dans ] contient la valeur dans dst1 avant l’écriture. |
| dst1 |
Cette valeur doit être un affichage d’accès non ordonné (UAV) # . Dans le nuanceur de calcul, il peut également s’agir d’une mémoire partagée de groupe de threads (g # ). |
| dstAddress |
[dans ] le nAddress de mémoire. |
| src0 |
[dans ] la valeur à ajouter à dst1. |
Notes
Cette instruction exécute un seul composant de l’opérande 32 bits src0 avec dst1 à 32 bits par adresse de composant dstAddress. La signature n’est pas sensible.
Si dst1 est un u # , il a peut-être été déclaré comme brut, typé ou structuré. Si elle est typée, elle doit être déclarée en tant que UINT/Saint-avec le format de ressource lié R32 _ uint/Saint-est _ .
Si dst1 est g # , il doit être déclaré comme RAW ou Structured.
La valeur dans dst1 Memory avant addition est retournée à dst0.
Le nombre de composants pris à partir de l’adresse est déterminé par la dimensionnalité de dst1.
La totalité de l’opération est effectuée atomiquement.
Si l’appel du nuanceur est inactif, par exemple si le pixel a été ignoré plus tôt dans son exécution, ou s’il n’existe qu’un appel d’assistance à un réel pixel/échantillon pour les dérivés, cette instruction ne modifie pas le tout la mémoire dst1 , et la valeur retournée n’est pas définie.
L’adressage hors limites sur u n' # entraîne pas l’écriture dans la mémoire, sauf si u # est structuré et que l’offset d’octet dans le struct (composant « second » de l’adresse) est à l’origine de l’accès hors limites, alors que le contenu entier du UAV devient non dé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 | Forme | Domain | Géométrie | Pixel | Calcul |
|---|---|---|---|---|---|
| X | X |
Étant donné que les UAVs sont disponibles à toutes les étapes de nuanceur pour Direct3D 11,1, cette instruction s’applique à toutes les étapes de nuanceur pour le runtime Direct3D 11,1, disponible à partir de Windows 8.
| Sommet | Forme | Domain | Géométrie | Pixel | Calcul |
|---|---|---|---|---|---|
| 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 |
|---|---|
| Shader, modèle 5 | Oui |
| Modèle de nuanceur 4,1 | non |
| Nuanceur modèle 4 | non |
| Shader Model 3 (DirectX HLSL) | non |
| Shader Model 2 (DirectX HLSL) | non |
| Shader Model 1 (DirectX HLSL) | non |