dcl_uav_structured (sm5 – asm)
Declare uma exibição de acesso não ordenada (UAV) para uso por um sombreador.
dcl_uav_structured[_glc] dstUAV, structByteStride |
---|
Item | Descrição |
---|---|
dstUAV |
[in] O UAV. |
structByteStride |
[in] O tamanho da estrutura em bytes. |
Comentários
dstUAV é um registro u# declarado como uma referência a unorderedAccessView de um buffer estruturado com o passo especificado que deve estar associado ao slot UAV # na API.
O conteúdo da estrutura não tem nenhum tipo; as operações executadas na memória podem interpretar implicitamente os dados como tendo um tipo.
structByteStride é o tamanho da estrutura em bytes no buffer que está sendo declarado. Esse valor deve ser maior que zero. structByteStride é do tipo uint e deve ser um múltiplo de 4.
As instruções que fazem referência a um u# estruturado levam um endereço 2D, em que o primeiro componente escolhe [struct], e o segundo componente escolhe [deslocamento dentro do struct, em bytes alinhados].
A bandeira _glc significa "globalmente coerente". A ausência de _glc significa que o UAV está sendo declarado apenas como "coerente de grupo" no sombreador de computação ou "localmente coerente" em uma invocação de sombreador de pixel único.
O sinalizador _opc é o contador de preservação de ordem. Ele indica que, se um UAV estiver associado ao slot # (u#), ele deverá ter sido criado com o sinalizador COUNTER. Isso significa que imm_atomic_alloc ou imm_atomic_consume operações no sombreador manipulam um contador cujos valores podem ser usados no sombreador como uma referência permanente a um local no UAV. Os dados não podem ser reordenados depois que o sombreador terminar.
A ausência do sinalizador _opc significa que, se o sombreador usarinstruções imm_atomic_alloc ou imm_atomic_consume e um UAV estiver associado ao slot #(u), ele deverá ter sido criado com o sinalizador APPEND, que fornece um contador que não garante que a ordem seja preservada após a invocação do sombreador.
Se o sinalizador _opc estiver ausente e o sombreador não contiver instruções imm_atomic_alloc ou imm_atomic_consume , um UAV associado ao slot # (u) terá permissão para ter sido criado com o sinalizador COUNTER (o contador não será usado por esse sombreador), nenhum sinalizador (sem contador), mas não com o sinalizador APPEND.
Observação
cs_4_0 e cs_4_1 dão suporte a dcl_tgsm_structured, mas não dcl_tgsm_raw.
Esta instrução se aplica aos seguintes estágios de sombreador:
Vértice | Casco | Domínio | Geometry | Pixel | Computação |
---|---|---|---|---|---|
X | X |
Como os UAVs estão disponíveis em todos os estágios de sombreador para Direct3D 11.1, essa instrução se aplica a todos os estágios de sombreador para o runtime do Direct3D 11.1, que está disponível a partir do Windows 8.
Vértice | Casco | Domínio | Geometry | Pixel | Computação |
---|---|---|---|---|---|
X | X | X | X | X | X |
Modelo de sombreador mínimo
Esta instrução tem suporte nos seguintes modelos de sombreador:
Modelo de Sombreador | Com suporte |
---|---|
Modelo de sombreador 5 | sim |
Modelo de sombreador 4.1 | não |
Modelo de sombreador 4 | não |
Modelo de Sombreador 3 (DirectX HLSL) | não |
Modelo de Sombreador 2 (DirectX HLSL) | não |
Modelo de Sombreador 1 (DirectX HLSL) | não |
Observação
Esta instrução tem suporte em cs_4_0 e cs_4_1.