imm_atomic_and (sm5 - asm)
Et au niveau du bit atomique immédiat à la mémoire. Retourne la valeur en mémoire avant and.
imm_atomic_and dst0[.single_component_mask], dst1, dstAddress[.swizzle], src0[.select_component] |
---|
Élément | Description |
---|---|
dst0 |
[in] Contient la valeur de dst1 avant l’AND. |
dst1 |
[in] Vue d’accès non ordonné (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] Mémoire de destination. |
src0 |
Valeur de AND avec dst. |
Notes
Cette instruction exécute un seul composant 32 bits au niveau du bit AND de l’opérande src0 avec dst1 à 32 bits par adresse de composant dstAddress.
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é.
Valeur dans la mémoire dst1 avant que and soit retourné à dst0.
L’ensemble de l’opération est effectué atomiquement.
Le nombre de composants extraits de l’adresse est déterminé par la dimensionnalité de la ressource déclarée à dst1.
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 |