D3D12_DESCRIPTOR_HEAP_FLAGS enumeração (d3d12.h)

Especifica opções para um heap.

Syntax

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

Constantes

 
D3D12_DESCRIPTOR_HEAP_FLAG_NONE
Valor: 0
Indica o uso padrão de um heap.
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE
Valor: 0x1
Opcionalmente , o sinalizador D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE pode ser definido em um heap de descritor para indicar que ele está associado a uma lista de comandos para referência por sombreadores. Os heaps de descritor criados sem esse sinalizador permitem aos aplicativos a opção de preparar descritores na memória da CPU antes de copiá-los para um heap de descritor visível do sombreador, como uma conveniência. Mas também é bom que os aplicativos criem descritores diretamente em heaps de descritor visíveis do sombreador sem necessidade de preparar nada na CPU.

Heaps de descritor associados via ID3D12GraphicsCommandList::SetDescriptorHeaps devem ter o sinalizador D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE definido, caso contrário, a camada de depuração produzirá um erro.

Heaps de descritor com o sinalizador D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE não podem ser usados como heaps de origem em chamadas para ID3D12Device::CopyDescriptors ou ID3D12Device::CopyDescriptorsSimple, pois eles podem ser residentes em memória WRITE_COMBINE ou memória local de GPU, o que é muito ineficiente para leitura.

Esse sinalizador só se aplica a heaps de descritor CBV/SRV/UAV e heaps de descritor de sampler. Ele não se aplica a outros tipos de heap de descritor, pois os sombreadores não fazem referência direta aos outros tipos. Tentar criar um heap RTV/DSV com D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE resulta em um erro de camada de depuração.

Comentários

Essa enumeração é usada pela estrutura D3D12_DESCRIPTOR_HEAP_DESC .

Requisitos

   
Cabeçalho d3d12.h

Confira também

Enumerações principais

Como criar heaps de descritores

Heaps de descritores