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.

Assembly do Modelo de Sombreador 5 (DirectX HLSL)