enumeración D3D12_HEAP_TYPE (d3d12.h)
Especifica el tipo de montón. Cuando residen, los montones residen en un grupo de memoria física determinado con determinadas propiedades de caché 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 el montón predeterminado. Este tipo de montón experimenta el mayor ancho de banda para la GPU, pero no puede proporcionar acceso a la CPU. La GPU puede leer y escribir en la memoria de este grupo y se pueden cambiar las barreras de transición de recursos. Se espera que la mayoría de los montones y recursos se encuentren aquí y se rellenan normalmente a través de recursos en montones de carga. |
D3D12_HEAP_TYPE_UPLOAD Valor: 2 Especifica un montón usado para cargar. Este tipo de montón tiene el acceso de CPU optimizado para la carga en la GPU, pero no experimenta la cantidad máxima de ancho de banda para la GPU. Este tipo de montón es mejor para los datos CPU-write-once, GPU-read-once; pero GPU-read-once es más estricta de lo necesario. GPU-read-once-or-from-cache es un caso de uso aceptable para los datos; pero estos usos son difíciles de juzgar debido a diferentes diseños y tamaños de caché de GPU. En caso de duda, péguese en la definición de GPU-read-once o perfile la diferencia en muchas GPU entre copiar los datos en un montón de _DEFAULT frente a leer los datos de un montón de _UPLOAD. Los recursos de este montón deben crearse con D3D12_RESOURCE_STATE_GENERIC_READ y no se pueden cambiar de este modo. Normalmente, la dirección de CPU de estos montones no es eficaz para las lecturas de CPU. A continuación se muestran los usos típicos de _UPLOAD montones:
Es probable que los siguientes no sean buenos usos para _UPLOAD montones:
|
D3D12_HEAP_TYPE_READBACK Valor: 3 Especifica un montón usado para volver a leer. Este tipo de montón tiene un acceso de CPU optimizado para leer datos desde la GPU, pero no experimenta la cantidad máxima de ancho de banda para la GPU. Este tipo de montón es el mejor para los datos legibles por GPU-write-once. El comportamiento de la caché de CPU es la reescritura, lo que resulta favorable para varias lecturas de CPU de línea de sub caché. Los recursos de este montón deben crearse con D3D12_RESOURCE_STATE_COPY_DEST y no se pueden cambiar de este. |
D3D12_HEAP_TYPE_CUSTOM Valor: 4 Especifica un montón personalizado. La aplicación puede especificar directamente el grupo de memoria y las propiedades de caché de CPU, lo que puede ser útil para las optimizaciones de UMA, varios motores, varios adaptadores u otros casos especiales. Para ello, se espera que la aplicación comprenda la arquitectura del adaptador para tomar la decisión correcta. Para obtener más detalles, vea D3D12_FEATURE_ARCHITECTURE, D3D12_FEATURE_DATA_ARCHITECTURE y GetCustomHeapProperties. |
Comentarios
Esta enumeración la usan los siguientes elementos de API:
Los tipos de montón se dividen en dos categorías: tipos de montón abstractos y tipos de montón personalizados.Los siguientes son tipos de montón abstractos:
- D3D12_HEAP_TYPE_DEFAULT
- D3D12_HEAP_TYPE_UPLOAD
- D3D12_HEAP_TYPE_READBACK
- D3D12_HEAP_TYPE_CUSTOM
Tenga en cuenta que las texturas (a diferencia de los búferes) no pueden ser de tipo montón UPLOAD o READBACK.
Requisitos
Requisito | Valor |
---|---|
Header | d3d12.h |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de