Share via


resinfo (sm4 - asm)

Eseguire una query sulle dimensioni di una determinata risorsa di input.

resinfo[_uint|_rcpFloat] dest[.mask], srcMipLevel.select_component, srcResource[.swizzle]
Elemento Descrizione
Dest
[in] Indirizzo del risultato dell'operazione.
srcMipLevel
[in] Livello mip.
srcResource
[in] Trama di input t# o u# per cui vengono eseguite query sulle dimensioni.

Commenti

srcMipLevel viene letto come scalare intero senza segno, quindi è necessario un selettore di componenti singolo per il registro di origine, se non è un valore immediato scalare.

il massimo riceve [larghezza, altezza, profondità o dimensione matrice, totale-mip-count], selezionato dalla maschera di scrittura.

I valori di larghezza, altezza e profondità restituiti sono per il mip-level selezionato dal parametro srcMipLevel e sono in numero di texel, indipendentemente dalle dimensioni dei dati texel. Per le risorse multisample (texture2D[Array]MS#), la larghezza e l'altezza vengono restituiti anche in texel, non esempi.

Il conteggio totale mip restituito in dest.w non è interessato dal parametro srcMipLevel .

Per UAV (u#), il numero di livelli mip è sempre 1.

Tutti gli aspetti di questa istruzione si basano sulle caratteristiche della visualizzazione delle risorse associate alla risorsa t#/u#, non sulla risorsa di base sottostante.

I valori restituiti sono tutti a virgola mobile, a meno che non venga usato il modificatore _uint, nel qual caso i valori restituiti sono tutti gli interi. Se viene usato il modificatore _rcpFloat, tutti i valori restituiti sono a virgola mobile e la larghezza, l'altezza e la profondità vengono restituiti come reciproca (1,0f/larghezza, 1,0f/altezza, 1,0f/profondità), incluso INF se la larghezza/altezza/profondità sono 0 dal comportamento srcMipLevel . Il modificatore _rcpFloat si applica solo ai valori restituiti di larghezza, altezza e profondità restituiti e non si applica ai valori 0 e quindi non restituiti e non si applica anche alle dimensioni della matrice.

Il swizzle su srcResource consente di scrivere arbitrariamente i valori restituiti prima di essere scritti nella destinazione.

Se srcResource è un texture1D, la larghezza viene restituita in dest.x e dest.yz è impostata su 0.

Se srcResource è un oggetto Texture1DArray, la larghezza viene restituita in dest.x, la dimensione della matrice viene restituita in dest.y e dest.z è impostata su 0.

Se srcResource è un texture2D, la larghezza e l'altezza vengono restituiti in dest.xy e dest.z è impostata su 0.

Se srcResource è un oggetto Texture2DArray, la larghezza e l'altezza vengono restituiti in dest.xy e le dimensioni della matrice vengono restituite in dest.z.

Se srcResource è un texture3D, la larghezza, l'altezza e la profondità vengono restituite in dest.xyz.

Se srcResource è un TextureCube, la larghezza e l'altezza delle singole dimensioni del viso del cubo vengono restituite in dest.xy e dest.z è impostata su 0.

Se srcResource è un TextureCubeArray, la larghezza e l'altezza delle singole dimensioni del viso del cubo vengono restituite in dest.xy. dest.z è impostato su un valore non definito.

Se il blocco mip per risorsa è stato specificato in srcResource, la resinafo restituisce sempre il numero totale di mipmap nella visualizzazione per il conteggio mip, indipendentemente dal blocco. Tuttavia, se le dimensioni di un determinato miplevel sono richieste da resinfo e la miplevel è stata bloccata (ad esempio, un blocco di 2,2 significa che mips 0 e 1 sono state bloccate), le dimensioni restituite non sono definito. Alcune implementazioni restituiranno il comportamento out of bounds specificato per resinfo quando la miplevel è fuori intervallo. Altre implementazioni restituiranno le dimensioni del mip come se non fosse stato bloccato.

Restrizioni

  • srcResource deve essere un registro t# o u# che non è un buffer, ma è una trama*.
  • L'indirizzamento relativo di srcResource non è consentito.
  • srcMipLevel deve usare un singolo selettore di componenti se non è immediato.
  • Recupero da t# o u# che non ha alcun limite a esso restituisce 0 per larghezza, altezza, profondità o arraysize e conteggio totale mip. Il modificatore _rcpFloat è ancora onorato in questo caso, quindi restituisce INF per i valori restituiti applicabili.
  • Se srcMipLevel non è compreso nell'intervallo del numero di miplevel disponibili nella risorsa, il comportamento per la restituzione delle dimensioni (dest.xyz) è identico a quello di una risorsa t# o u# non in uscita. Il numero totale di mip viene ancora restituito in dest.w per questo caso.

Questa istruzione si applica alle fasi dello shader seguenti:

Vertex shader Geometry shader Pixel shader
x x x

Modello di shader minimo

Questa funzione è supportata nei modelli shader seguenti.

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

Shader Model 4 Assembly (DirectX HLSL)