enumerazione D3D12_DESCRIPTOR_HEAP_FLAGS (d3d12.h)

Specifica le opzioni per un heap.

Sintassi

typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS {
  D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
  D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
} ;

Costanti

 
D3D12_DESCRIPTOR_HEAP_FLAG_NONE
Valore: 0
Indica l'utilizzo predefinito di un heap.
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE
Valore: 0x1
Il flag D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE può essere impostato facoltativamente su un heap descrittore per indicare che è associato a un elenco di comandi per riferimento da shader. Gli heaps descrittori creati senza questo flag consentono alle applicazioni di eseguire le fasi di descrittori in memoria DELLA CPU prima di copiarli in un heap visibile dello shader, come praticità. Ma è anche utile per le applicazioni creare direttamente descrittori in descrittori visibili di descrittore heaps senza alcun requisito per eseguire alcuna fase nella CPU.

Il descrittore associato tramite ID3D12GraphicsCommandList::SetDescriptorHeaps deve avere il set di flag di D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE , in caso contrario, il livello di debug genererà un errore.

L'heaps descrittore con il flag di D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE non può essere usato come heaps di origine nelle chiamate a ID3D12Device::CopyDescriptors o ID3D12Device::CopyDescriptorsSimple, perché potrebbero essere residenti in memoria WRITE_COMBINE o memoria locale della GPU, che è molto inefficiente da leggere.

Questo flag si applica solo al descrittore CBV/SRV/UAV e al descrittore di sampler heaps. Non si applica ad altri tipi di heap descrittore poiché shader non fa riferimento direttamente agli altri tipi. Il tentativo di creare un heap RTV/DSV con D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE genera un errore del livello di debug.

Commenti

Questa enumerazione viene usata dalla struttura D3D12_DESCRIPTOR_HEAP_DESC .

Requisiti

   
Intestazione d3d12.h

Vedi anche

Enumerazioni principali

Creazione di heaps descrittore

Descrittore Heaps