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.

Comentarios

dstUAV es un registro u# declarado como una referencia a un unorderedAccessView de un búfer estructurado con el intervalo especificado que se debe enlazar 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 invocación de sombreador de píxeles único.

La marca _opc es el contador de conservación de pedidos. Indica que si un UAV está enlazado a slot # (u#), se debe haber 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 una vez finalizado el sombreador.

La ausencia de la marca _opc significa que si el sombreador usaimm_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 imm_atomic_alloc ni imm_atomic_consume instrucciones, se permite que se haya creado un UAV enlazado a slot # (u) con la marca COUNTER (el contador pasará sin usar por este sombreador), 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 Compute
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 Compute
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
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.

Ensamblado del modelo de sombreador 5 (DirectX HLSL)