dcl_uav_structured (sm5 - asm)
Declare una vista de acceso desordenada (UAV) para que la use un sombreador.
| dcl_uav_structured[_glc] dstUAV, structByteStride |
|---|
| Elemento | Descripción |
|---|---|
| dstUAV |
[in] El UAV. |
| structByteStride |
[in] Tamaño de la estructura en bytes. |
Observaciones
dstUAV es un registro u# declarado como referencia a un unorderedAccessView de un búfer estructurado con el paso especificado que debe enlazarse a la ranura UAV # en la API.
El contenido de la estructura no tiene ningún tipo; Las operaciones realizadas en la memoria pueden interpretar implícitamente los datos como tener un tipo.
structByteStride es el tamaño de la estructura en bytes en el búfer que se declara. Este valor debe ser mayor que cero. structByteStride es de tipo uint y debe ser un múltiplo de 4.
Las instrucciones que hacen referencia a un u# estructurado toman una dirección 2D, donde el primer componente elige [struct] y el segundo componente elige [desplazamiento dentro de la estructura, en bytes alineados].
La marca _glc significa "coherente globalmente". La ausencia de _glc significa que el UAV se declara solo como "grupo coherente" en el sombreador de proceso o "coherente localmente" en una sola invocación de sombreador de píxeles.
La marca _opc es el contador de conservación de pedidos. Indica que si un UAV está enlazado a slot # (u#), debe haberse creado con la marca COUNTER. Esto significa que imm_atomic_alloc o imm_atomic_consume operaciones en el sombreador manipulan un contador cuyos valores se pueden usar en el sombreador como referencia permanente a una ubicación en el UAV. Los datos no se pueden reordenar después de que el sombreador haya terminado.
La ausencia de la marca de _opc significa que si el sombreador usa imm_atomic_alloc o imm_atomic_consume instrucciones y un UAV está enlazado a slot # (u), debe haberse creado con la marca APPEND, que proporciona un contador que no garantiza que el orden se conserve después de la invocación del sombreador.
Si la marca de _opc no está presente y el sombreador no contiene instrucciones imm_atomic_alloc o imm_atomic_consume , se permite que se haya creado un UAV enlazado a slot # (u) con la marca COUNTER (este sombreador no usará el contador), no hay ninguna marca (sin contador), pero no con la marca APPEND.
Nota
cs_4_0 y cs_4_1 admiten dcl_tgsm_structured, pero no dcl_tgsm_raw.
Esta instrucción se aplica a las siguientes fases del sombreador:
| Vértice | Casco | Domain | Geometría | Píxel | Proceso |
|---|---|---|---|---|---|
| X | x |
Dado que las UAV están disponibles en todas las fases del sombreador para Direct3D 11.1, esta instrucción se aplica a todas las fases del sombreador para el entorno de ejecución de Direct3D 11.1, que está disponible a partir de Windows 8.
| Vértice | Casco | Domain | Geometría | Píxel | Proceso |
|---|---|---|---|---|---|
| X | X | x | X | x | x |
Modelo de sombreador mínimo
Esta instrucción se admite en los siguientes modelos de sombreador:
| Modelo de sombreador | Compatible |
|---|---|
| Modelo de sombreador 5 | sí |
| Modelo de sombreador 4.1 | No |
| Modelo de sombreador 4 | No |
| Modelo de sombreador 3 (DirectX HLSL) | No |
| Modelo de sombreador 2 (DirectX HLSL) | No |
| Modelo de sombreador 1 (DirectX HLSL) | no |
Nota:
Esta instrucción se admite en cs_4_0 y cs_4_1.