D3D12_HEAP_TYPE enumeração (d3d12.h)
Especifica o tipo de heap. Quando residentes, os heaps residem em um pool de memória física específico com determinadas propriedades de cache de CPU.
Syntax
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
} ;
Constantes
D3D12_HEAP_TYPE_DEFAULT Valor: 1 Especifica o heap padrão. Esse tipo de heap tem a maior largura de banda para a GPU, mas não pode fornecer acesso à CPU. A GPU pode ler e gravar na memória desse pool, e as barreiras de transição de recursos podem ser alteradas. Espera-se que a maioria dos heaps e recursos esteja localizada aqui e normalmente sejam populadas por meio de recursos em heaps de carregamento. |
D3D12_HEAP_TYPE_UPLOAD Valor: 2 Especifica um heap usado para upload. Esse tipo de heap tem acesso de CPU otimizado para upload para a GPU, mas não experimenta a quantidade máxima de largura de banda para a GPU. Esse tipo de heap é melhor para dados CPU-write-once, GPU-read-once; mas GPU-read-once é mais rigorosa do que o necessário. GPU-read-once-or-from-cache é um caso de uso aceitável para os dados; mas esses usos são difíceis de julgar devido a diferentes designs e tamanhos de cache de GPU. Em caso de dúvida, mantenha a definição gpu-read-once ou crie o perfil da diferença em muitas GPUs entre copiar os dados para um heap de _DEFAULT versus ler os dados de um heap de _UPLOAD. Os recursos nesse heap devem ser criados com D3D12_RESOURCE_STATE_GENERIC_READ e não podem ser alterados para longe disso. O endereço da CPU para esses heaps normalmente não é eficiente para leituras de CPU. Veja a seguir os usos típicos para heaps de _UPLOAD:
Os seguintes provavelmente não são bons usos para heaps de _UPLOAD:
|
D3D12_HEAP_TYPE_READBACK Valor: 3 Especifica um heap usado para leitura de volta. Esse tipo de heap tem acesso de CPU otimizado para ler dados de volta da GPU, mas não experimenta a quantidade máxima de largura de banda para a GPU. Esse tipo de heap é melhor para dados legíveis por CPU e gpu-write-once. O comportamento do cache de CPU é write-back, que é propício para várias leituras de CPU de linha de sub-cache. Os recursos nesse heap devem ser criados com D3D12_RESOURCE_STATE_COPY_DEST e não podem ser alterados. |
D3D12_HEAP_TYPE_CUSTOM Valor: 4 Especifica um heap personalizado. O aplicativo pode especificar o pool de memória e as propriedades de cache da CPU diretamente, o que pode ser útil para otimizações de UMA, vários mecanismos, vários adaptadores ou outros casos especiais. Para fazer isso, espera-se que o aplicativo entenda a arquitetura do adaptador para fazer a escolha certa. Para obter mais detalhes, consulte D3D12_FEATURE_ARCHITECTURE, D3D12_FEATURE_DATA_ARCHITECTURE e GetCustomHeapProperties. |
Comentários
Essa enumeração é usada pelos seguintes itens de API:
Os tipos de heap se enquadram em duas categorias: tipos de heap abstraídos e tipos de heap personalizados.Estes são os tipos de heap abstraídos:
- D3D12_HEAP_TYPE_DEFAULT
- D3D12_HEAP_TYPE_UPLOAD
- D3D12_HEAP_TYPE_READBACK
- D3D12_HEAP_TYPE_CUSTOM
Observe que texturas (ao contrário dos buffers) não podem ser do tipo heap UPLOAD ou READBACK.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | d3d12.h |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de