Condividi tramite


enumerazione D3D10_USAGE (d3d10.h)

Identifica l'uso previsto delle risorse durante il rendering. L'utilizzo riflette direttamente se una risorsa è accessibile dalla CPU e/o dalla GPU.

Sintassi

typedef enum D3D10_USAGE {
  D3D10_USAGE_DEFAULT = 0,
  D3D10_USAGE_IMMUTABLE = 1,
  D3D10_USAGE_DYNAMIC = 2,
  D3D10_USAGE_STAGING = 3
} ;

Costanti

 
D3D10_USAGE_DEFAULT
Valore: 0
Risorsa che richiede l'accesso in lettura e scrittura dalla GPU. Questa è probabilmente la scelta di utilizzo più comune.
D3D10_USAGE_IMMUTABLE
Valore: 1
Risorsa che può essere letta solo dalla GPU. Non può essere scritto dalla GPU e non può essere accessibile affatto dalla CPU. Questo tipo di risorsa deve essere inizializzato al momento della creazione, perché non può essere modificato dopo la creazione.
D3D10_USAGE_DYNAMIC
Valore: 2
Risorsa accessibile sia dalla GPU che dalla CPU (solo scrittura). Una risorsa dinamica è una scelta ottimale per una risorsa che verrà aggiornata dalla CPU almeno una volta per fotogramma. Per scrivere in una risorsa dinamica nella CPU, usare un metodo Map . È possibile scrivere in una risorsa dinamica nella GPU usando CopyResource o CopySubresourceRegion.
D3D10_USAGE_STAGING
Valore: 3
Risorsa che supporta il trasferimento dei dati (copia) dalla GPU alla CPU.

Commenti

Un'applicazione identifica il modo in cui una risorsa deve essere usata (il relativo utilizzo) in una descrizione della risorsa. Esistono diverse strutture per la creazione di risorse, tra cui : D3D10_TEXTURE1D_DESC, D3D10_TEXTURE2D_DESC, D3D10_TEXTURE3D_DESC, D3D10_BUFFER_DESC e D3DX10_IMAGE_LOAD_INFO.

Differenze tra Direct3D 9 e Direct3D 10:

In Direct3D 9 specificare il tipo di memoria in cui deve essere creata una risorsa al momento della creazione delle risorse (usando D3DPOOL). È stato compito di un'applicazione decidere quale pool di memoria fornirebbe la migliore combinazione di funzionalità e prestazioni.

In Direct3D 10 un'applicazione non specifica più il tipo di memoria (il pool) in cui creare una risorsa. Specificare invece l'utilizzo previsto della risorsa e lasciare che il runtime (insieme al driver e a un gestore di memoria) scelga il tipo di memoria che otterrà le migliori prestazioni.

 

Restrizioni relative all'utilizzo delle risorse

Ogni utilizzo determina un compromesso tra funzionalità e prestazioni. In generale, l'accesso alle risorse viene eseguito con le API seguenti. Usare la tabella seguente per scegliere l'utilizzo che descrive meglio il modo in cui è necessario accedere alla risorsa dalla CPU e/o dalla GPU. Naturalmente, ci saranno compromessi sulle prestazioni.
Resource Usage Default Dynamic Non modificabile Gestione temporanea
GPU-Read Sì¹ 1, 2
GPU-Write Sì¹ 1, 2
CPU-Read 1, 2
CPU-Write 1, 2
 

Opzioni di associazione risorse

Per ottimizzare le prestazioni, non tutte le opzioni di utilizzo delle risorse possono essere usate come risorse di input o output nella pipeline. Questa tabella identifica queste limitazioni.
La risorsa può essere associata come Default Dynamic Non modificabile Gestione temporanea
Input in una fase Sì". Sì⁴
Output da una fase Sì".
 
  • 3 - Se associato come input e output usando visualizzazioni diverse, ogni visualizzazione deve usare sottorisorse diverse.
  • 4 - La risorsa può essere creata solo con una singola sottorisorsa. La risorsa non può essere una matrice di trame. La risorsa non può essere una catena mipmap.

Requisiti

Requisito Valore
Intestazione d3d10.h

Vedi anche

Enumerazioni delle risorse