enumerazione D3D12_HEAP_TYPE (d3d12.h)
Specifica il tipo di heap. Quando residente, gli heap risiedono in un determinato pool di memoria fisica con determinate proprietà della cache della CPU.
Sintassi
typedef enum D3D12_HEAP_TYPE {
D3D12_HEAP_TYPE_DEFAULT = 1,
D3D12_HEAP_TYPE_UPLOAD = 2,
D3D12_HEAP_TYPE_READBACK = 3,
D3D12_HEAP_TYPE_CUSTOM = 4,
D3D12_HEAP_TYPE_GPU_UPLOAD
} ;
Costanti
D3D12_HEAP_TYPE_DEFAULT Valore: 1 Specifica l'heap predefinito. Questo tipo di heap presenta la maggior parte della larghezza di banda per la GPU, ma non può fornire l'accesso alla CPU. La GPU può leggere e scrivere nella memoria da questo pool e le barriere di transizione delle risorse possono essere modificate. La maggior parte degli heap e delle risorse dovrebbe trovarsi qui e viene in genere popolata tramite risorse negli heap di caricamento. |
D3D12_HEAP_TYPE_UPLOAD Valore: 2 Specifica un heap utilizzato per il caricamento. Questo tipo di heap ha accesso alla CPU ottimizzato per il caricamento nella GPU, ma non verifica la quantità massima di larghezza di banda per la GPU. Questo tipo di heap è ideale per i dati CPU-write-once, GPU-read-once; ma gpu-read-once è più rigoroso del necessario. GPU-read-once-or-from-cache è un caso d'uso accettabile per i dati; ma tali utilizzi sono difficili da valutare a causa di diverse progettazioni e dimensioni della cache GPU. In caso di dubbio, attenersi alla definizione gpu-read-once o profilare la differenza in molte GPU tra la copia dei dati in un heap _DEFAULT e la lettura dei dati da un heap _UPLOAD. Le risorse in questo heap devono essere create con D3D12_RESOURCE_STATE_GENERIC_READ e non possono essere modificate da questo. L'indirizzo della CPU per tali heap in genere non è efficiente per le letture della CPU. Di seguito sono riportati gli utilizzi tipici per gli heap _UPLOAD:
Di seguito è probabile che non siano validi utilizzi per _UPLOAD heap:
|
D3D12_HEAP_TYPE_READBACK Valore: 3 Specifica un heap utilizzato per la lettura. Questo tipo di heap ha l'accesso alla CPU ottimizzato per la lettura dei dati dalla GPU, ma non presenta la quantità massima di larghezza di banda per la GPU. Questo tipo di heap è ideale per i dati leggibili con GPU-write-once e CPU. Il comportamento della cache della CPU è writeback, che è favorevole per più letture della CPU della riga di cache secondaria. Le risorse in questo heap devono essere create con D3D12_RESOURCE_STATE_COPY_DEST e non possono essere modificate da questo. |
D3D12_HEAP_TYPE_CUSTOM Valore: 4 Specifica un heap personalizzato. L'applicazione può specificare direttamente le proprietà del pool di memoria e della cache della CPU, che possono essere utili per le ottimizzazioni UMA, multi-engine, multi-adapter o altri casi speciali. A tale scopo, l'applicazione dovrebbe comprendere l'architettura dell'adattatore per fare la scelta corretta. Per altri dettagli, vedere D3D12_FEATURE_ARCHITECTURE, D3D12_FEATURE_DATA_ARCHITECTUREe GetCustomHeapProperties. |
Osservazioni
Questa enumerazione viene usata dagli elementi dell'API seguenti:
I tipi heap rientrano in due categorie: tipi heap astratti e tipi heap personalizzati.Di seguito sono riportati i tipi heap astratti:
- D3D12_HEAP_TYPE_DEFAULT
- D3D12_HEAP_TYPE_UPLOAD
- D3D12_HEAP_TYPE_READBACK
- D3D12_HEAP_TYPE_CUSTOM
Si noti che le trame (a differenza dei buffer) non possono essere di tipo HEAP UPLOAD o READBACK.
Fabbisogno
Requisito | Valore |
---|---|
intestazione |
d3d12.h |