ld_raw (sm5 – asm)

Leitura de acesso aleatório de componentes de 1 a 4 32 bits de um buffer bruto.

ld_raw dest[.mask], srcByteOffset[.select_component], src0[.swizzle]
Item Descrição
Dest
[in] O endereço do resultado da operação.
srcByteOffset
[in] Especifica o deslocamento do qual ler.
src0
[in] O componente a ser lido.

Comentários

src0 deve ser:

  • Qualquer estágio de sombreador: SRV (t#)ld st
  • Sombreador de computação ou sombreador de pixel: UAV (u#)
  • Sombreador de computação: memória compartilhada do grupo de threads (g#)

srcByteOffset especifica o valor base de 32 bits na memória para uma janela de 4 valores sequenciais de 32 bits nos quais os dados podem ser lidos, dependendo do swizzle e da máscara em outros parâmetros.

Os dados lidos do buffer bruto são equivalentes ao seguinte pseudocódigo: em que temos o deslocamento, o endereço, o ponteiro para o conteúdo do buffer, o passo da origem e os dados armazenados linearmente.

                    BYTE *BufferContents;         // from src0
                    UINT srcByteOffset;           // from srcByteOffset
                    BYTE *ReadLocation;           // value to calculate
                    ReadLocation = BufferContents 
                                + srcByteOffset;

                    UINT32 Temp[4];  // used to make code shorter

                    // apply the source resource swizzle on source data
                    Temp = read_and_swizzle(ReadLocation, srcSwizzle);

                    // write the components to the output based on mask
                    ApplyWriteMask(dstRegister, dstWriteMask, Temp);

O endereçamento fora dos limites em u#/t# de qualquer componente de 32 bits especificado retorna 0 para esse componente.

O endereçamento fora dos limites em g# (os limites desse g#específico, em vez de toda a memória compartilhada) para qualquer componente de 32 bits determinado retorna um resultado indefinido.

cs_4_0 e cs_4_1 dão suporte a esta instrução para UAV e SRV.

Esta instrução se aplica aos seguintes estágios de sombreador:

Vértice Casco Domínio Geometry Pixel Computação
X X X X X X

Como os UAVs estão disponíveis em todos os estágios de sombreador para o Direct3D 11.1, essa instrução se aplica a todos os estágios de sombreador para UAVs para o runtime do Direct3D 11.1, que está disponível a partir de 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

cs_4_0 e cs_4_1 dão suporte a esta instrução para UAV e SRV.

Assembly do Modelo de Sombreador 5 (DirectX HLSL)