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.
Sintaxis
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 normalmente se rellenan a través de recursos en montones de carga. |
D3D12_HEAP_TYPE_UPLOAD Valor: 2 Especifica un montón usado para la carga. 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, siga 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 se deben crear con D3D12_RESOURCE_STATE_GENERIC_READ y no se pueden cambiar de este. Normalmente, la dirección de CPU de dichos montones no es eficaz para las lecturas de CPU. A continuación se muestran usos típicos para _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 el 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 memoria caché de CPU es la escritura diferida, lo que resulta favorable para varias lecturas de CPU de línea de sub caché. Los recursos de este montón se deben crear 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, multimotor, 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 información, consulte D3D12_FEATURE_ARCHITECTURE, D3D12_FEATURE_DATA_ARCHITECTURE, y getCustomHeapProperties. |
Observaciones
Esta enumeración la usan los siguientes elementos de API:
- D3D12_HEAP_DESC
- D3D12_HEAP_PROPERTIES
- GetCustomHeapProperties
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 UPLOAD o READBACK.
Requisitos
Requisito | Valor |
---|---|
encabezado de |
d3d12.h |
Consulte también
enumeraciones de
montón de descriptores de