ld_raw (sm5 - asm)

Lettura casuale di componenti da 1 a 4 32 bit da un buffer non elaborato.

ld_raw dest[.mask], srcByteOffset[.select_component], src0[.swizzle]
Elemento Descrizione
Dest
[in] Indirizzo del risultato dell'operazione.
srcByteOffset
[in] Specifica l'offset da cui leggere.
src0
[in] Componente da leggere.

Commenti

src0 deve essere:

  • Qualsiasi fase shader: SRV (t#)ld st
  • Compute shader o pixel shader: UAV (u#)
  • Compute shader: memoria condivisa del gruppo di thread (g#)

srcByteOffset specifica il valore di base a 32 bit in memoria per una finestra di 4 valori sequenziali a 32 bit in cui i dati possono essere letti, a seconda dello swizzle e della maschera su altri parametri.

I dati letti dal buffer non elaborato sono equivalenti allo pseudocode seguente: dove è presente l'offset, l'indirizzo, il puntatore al contenuto del buffer, l'stride dell'origine e i dati archiviati in modo lineare.

                    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);

Gli indirizzi non associati in u#/t# di qualsiasi componente a 32 bit specificato restituisce 0 per tale componente.

Gli indirizzi non associati su g# (i limiti di quel determinato g#, anziché tutti i valori di memoria condivisa) per qualsiasi componente a 32 bit specificato restituisce un risultato non definito.

cs_4_0 e cs_4_1 supportano questa istruzione per UAV e SRV.

Questa istruzione si applica alle fasi dello shader seguenti:

Vertice Scafo Dominio Geometria Pixel Calcolo
X X X X X X

Poiché le UAV sono disponibili in tutte le fasi dello shader per Direct3D 11.1, questa istruzione si applica a tutte le fasi dello shader per gli UAV per il runtime Direct3D 11.1, disponibile a partire da Windows 8.

Vertice Scafo Dominio Geometria Pixel Calcolo
X X X X X X

Modello di shader minimo

Questa istruzione è supportata nei modelli shader seguenti:

Modello di shader Supportato
Modello shader 5
Modello shader 4.1 no
Modello shader 4 no
Modello shader 3 (DirectX HLSL) no
Modello shader 2 (DirectX HLSL) no
Modello shader 1 (DirectX HLSL) no

cs_4_0 e cs_4_1 supportano questa istruzione per UAV e SRV.

Shader Model 5 Assembly (DirectX HLSL)