Condividi tramite


ld2dms (sm4.1 - asm)

Legge i singoli campioni dalle trame a 2 campioni multidimensionali.

ld2dms[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], sampleIndex
Elemento Descrizione
Dest
[in] Indirizzo del risultato dell'operazione.
srcAddress
[in] Le coordinate della trama necessarie per eseguire il campione.
srcResource
[in] Registro delle trame (t#) che deve essere stato dichiarato identificando la trama o il buffer da cui recuperare
sampleIndex
[in] Idends the samples to read from srcResource (scalar operand).

Commenti

Questa istruzione è un'alternativa semplificata all'istruzione di esempio . Recupera i dati dalla trama specificata senza filtri (ad esempio il campionamento dei punti) usando l'intero specificato srcAddress e sampleIndex.

srcAddress fornisce il set di coordinate di trama necessarie per eseguire l'esempio sotto forma di interi senza segno. Se srcAddress non è compreso nell'intervallo[0...( #texels nella dimensione -1)], ld2dms restituisce sempre 0 in tutti i componenti presenti nel formato della risorsa e i valori predefiniti (0,0,0,1,0f/0x00000001) per i componenti mancanti.

sampleIndex non deve essere un valore letterale. Non è necessario specificare il conteggio di più campioni nella risorsa trama e funziona con le visualizzazioni depth o stencil.

Un'applicazione che desidera un controllo più flessibile sul comportamento degli indirizzi out-of-range deve usare invece l'istruzione di esempio , in quanto rispetta il comportamento di wrapping dell'indirizzo,mirror/clamp/border definito come stato del campionatore.

srcAddress.b (post-swizzle) viene ignorato per Texture2Ds. Se il valore non è compreso nell'intervallo di indici di matrice disponibili [0...( array size-1)], quindi ld2dms restituisce sempre 0 in tutti i componenti presenti nel formato della risorsa e i valori predefiniti (0,0,0,1,0f/0x00000001) per i componenti mancanti.

Per le matrici Texture2D, srcAddress.b (post-swizzle) fornisce l'indice della matrice. Oherwise ha lo stesso comportamento di Texture2D.

srcAddress.a (post-swizzle) viene sempre ignorato. Il compilatore HLSL non restituirà mai nulla.

srcResource è un registro delle trame (t#) che deve essere stato dichiarato (22.3.11), identificando la trama da cui recuperare.

Il recupero da t# a cui non è associato alcun valore restituisce 0 per tutti i componenti.

Offset degli indirizzi

Il suffisso facoltativo [_aoffimmi(u,v,w)] (offset dell'indirizzo per intero immediato) indica che le coordinate della trama per i ld2dm devono essere sfalsate da un set di valori costanti interi spazio texel immediati forniti. I valori letterali sono un set di numeri di complemento a 4 bit 2, con intervallo intero [-8,7].

Gli offset vengono aggiunti alle coordinate della trama, nello spazio texel.

Gli offset degli indirizzi non vengono applicati lungo l'asse delle matrici Texture1D/2D.

I componenti _aoffimmi v,w vengono ignorati per Texture1D.

Il componente _aoffimmi w viene ignorato per Texture2Ds.

Poiché le coordinate della trama per ld2dms sono interi senza segno, se l'offset fa sì che l'indirizzo sia inferiore a zero, verrà eseguito il wrapping in un indirizzo di grandi dimensioni e genererà un accesso out of bounds, che come ld restituisce 0 in tutti i componenti presenti nel formato della risorsa e i valori predefiniti (0,0,0,1,0f/0x00000001) per i componenti mancanti.

Numero di esempio

ld2dms è disponibile per l'uso in qualsiasi risorsa. ld2dms opera in modo identico a ld , ad eccezione delle risorse multicampionamento 2D, usando l'operando sampleIndex aggiuntivo (basato su 0) per identificare l'esempio da leggere dalla risorsa.

Il risultato di specificare un sampleIndex che supera il numero di campioni nella risorsa non è definito, ma non può restituire dati al di fuori dello spazio indirizzi del contesto di dispositivo.

Controllo Tipo restituito

Il formato dei dati restituito da ld2dms al registro di destinazione viene determinato nello stesso modo descritto per l'istruzione di esempio . Si basa sul formato associato al parametro srcResource (t#).

Come per l'istruzione di esempio , i valori restituiti per ld2dms sono 4 vettori con valori predefiniti specifici del formato per i componenti non presenti nel formato. Lo swizzle in srcResource determina come eseguire lo scorrimento del risultato di 4 componenti restituito dal caricamento della trama, dopo il quale .mask su dest determina quali componenti nel dest vengono aggiornati.

Quando un valore float a 32 bit viene letto da ld2dms in un registro a 32 bit, i bit non vengono toccati; ovvero i valori denormali rimangono denormali. Questa operazione è diversa dall'istruzione di esempio .

Dettagli vari

Poiché a questa istruzione non è associato alcun filtro, i concetti come la distorsione LOD non si applicano. Di conseguenza non esiste alcun parametro s# del campionatore .

Restrizioni

  • srcResource deve essere un registro t# e non un TextureCube, Texture1D o Texture1DArray. srcResource non può essere un Oggetto ConstantBuffer, che non può essere associato a registri t#.
  • L'indirizzamento relativo in srcResource non è consentito.
  • srcAddress e sampleIndex devono essere un registro temp (r#/x#), costante (cb#) o input (v#).
  • dest deve essere un registro temp (r#/x#) o output (o*#).

Questa istruzione si applica alle fasi dello shader seguenti:

Vertex shader Geometry shader Pixel shader
x x x

Modello minimo shader

Questa funzione è supportata nei modelli di shader seguenti.

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

Assembly del modello shader 4 (DirectX HLSL)