dcl_uav_structured (sm5 - asm)
Déclarez un affichage d’accès non ordonné (UAV) à utiliser par un nuanceur.
dcl_uav_structured[_glc] dstUAV, structByteStride |
---|
Élément | Description |
---|---|
dstUAV |
[in] The UAV. |
structByteStride |
[in] Taille de la structure en octets. |
Notes
dstUAV est un registre u# déclaré en tant que référence à un UnorderedAccessView d’une mémoire tampon structurée avec la foulée spécifiée qui doit être liée à l’emplacement UAV # au niveau de l’API.
Le contenu de la structure n’a pas de type ; les opérations effectuées sur la mémoire peuvent interpréter implicitement les données comme ayant un type.
structByteStride est la taille de la structure en octets dans la mémoire tampon déclarée. Cette valeur doit être supérieure à zéro. structByteStride est de type uint et doit être un multiple de 4.
Les instructions qui référencent un u# structuré prennent une adresse 2D, où le premier composant choisit [struct], et le second composant choisit [décalage dans struct, en octets alignés].
L’indicateur _glc signifie « globalement cohérent ». L’absence de _glc signifie que l’UAV est déclaré uniquement comme « groupe cohérent » dans le nuanceur de calcul, ou « localement cohérent » dans un appel de nuanceur de pixels unique.
L’indicateur _opc est le compteur de conservation de l’ordre. Il indique que si un UAV est lié à slot # (u#), il doit avoir été créé avec l’indicateur COUNTER. Cela signifie que imm_atomic_alloc ou imm_atomic_consume opérations dans le nuanceur manipulent un compteur dont les valeurs peuvent être utilisées dans le nuanceur comme référence permanente à un emplacement dans l’UAV. Les données ne peuvent pas être réorganisées une fois le nuanceur terminé.
L’absence de l’indicateur _opc signifie que si le nuanceur utilisedes instructions imm_atomic_alloc ou imm_atomic_consume et qu’un UAV est lié à slot # (u), il doit avoir été créé avec l’indicateur APPEND, qui fournit un compteur qui ne garantit pas la conservation de l’ordre après l’appel du nuanceur.
Si l’indicateur _opc est absent et que le nuanceur ne contient pas d’instructions de imm_atomic_alloc ou de imm_atomic_consume , un UAV lié à l’emplacement # (u) est autorisé à avoir été créé avec l’indicateur COUNTER (le compteur sera inutilisé par ce nuanceur), aucun indicateur (aucun compteur), mais pas avec l’indicateur APPEND.
Notes
cs_4_0 et cs_4_1 prennent en charge les dcl_tgsm_structured, mais pas les dcl_tgsm_raw.
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 |
Notes
Cette instruction est prise en charge dans cs_4_0 et cs_4_1.