Método ID3D12Device::CopyDescriptors (d3d12.h)
Copia descriptores de un origen en un destino.
Sintaxis
void CopyDescriptors(
[in] UINT NumDestDescriptorRanges,
[in] const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
[in, optional] const UINT *pDestDescriptorRangeSizes,
[in] UINT NumSrcDescriptorRanges,
[in] const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
[in, optional] const UINT *pSrcDescriptorRangeSizes,
[in] D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType
);
Parámetros
[in] NumDestDescriptorRanges
Tipo: UINT
Número de intervalos de descriptores de destino en los que se va a copiar.
[in] pDestDescriptorRangeStarts
Tipo: const D3D12_CPU_DESCRIPTOR_HANDLE*
Matriz de D3D12_CPU_DESCRIPTOR_HANDLE objetos en los que se va a copiar.
Todos los descriptores de origen y de destino deben estar en montones del mismo D3D12_DESCRIPTOR_HEAP_TYPE.
[in, optional] pDestDescriptorRangeSizes
Tipo: const UINT*
Matriz de tamaños de intervalo de descriptores de destino en los que se va a copiar.
[in] NumSrcDescriptorRanges
Tipo: UINT
Número de intervalos de descriptores de origen desde los que se va a copiar.
[in] pSrcDescriptorRangeStarts
Tipo: const D3D12_CPU_DESCRIPTOR_HANDLE*
Matriz de D3D12_CPU_DESCRIPTOR_HANDLE objetos desde los que se va a copiar.
Importante
Todos los elementos del parámetro pSrcDescriptorRangeStarts deben estar en un montón de descriptores no visibles para sombreador. Esto se debe a que los montones de descriptores visibles para sombreador se pueden crear en WRITE_COMBINE memoria o memoria local de GPU, lo que es prohibitivamente lento de leer. Si la aplicación administra montones de descriptores mediante la copia de los descriptores necesarios para un paso o marco determinado desde montones de descriptores de "almacenamiento" locales al montón de descriptores enlazados a GPU, use montones sombreador opacos para los montones de almacenamiento y copie en el montón visible para GPU según sea necesario.
[in, optional] pSrcDescriptorRangeSizes
Tipo: const UINT*
Matriz de tamaños de intervalo de descriptores de origen desde los que se va a copiar.
[in] DescriptorHeapsType
Tipo: D3D12_DESCRIPTOR_HEAP_TYPE
Valor con tipo D3D12_DESCRIPTOR_HEAP_TYPE que especifica el tipo de montón de descriptor con el que se va a copiar. Esto es necesario porque los distintos tipos de descriptores pueden tener tamaños diferentes.
Tanto los montones de descriptores de origen como de destino deben tener el mismo tipo; de lo contrario, la capa de depuración emitirá un error.
Valor devuelto
None
Observaciones
Si procede, prefiere ID3D12Device::CopyDescriptorsSimple para este método. Puede tener una mejor tasa de errores de caché de CPU debido a la naturaleza lineal de la copia.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | d3d12.h |
Library | D3D12.lib |
Archivo DLL | D3D12.dll |