Compartir a través de


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

Consulte también

Descriptores de copias

ID3D12Device