Método ID3D12Device::CopyDescriptors (d3d12.h)
Copia descritores de uma origem para um destino.
Sintaxe
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
O número de intervalos de descritor de destino para o qual copiar.
[in] pDestDescriptorRangeStarts
Tipo: const D3D12_CPU_DESCRIPTOR_HANDLE*
Uma matriz de objetos D3D12_CPU_DESCRIPTOR_HANDLE para o qual copiar.
Todos os descritores de destino e de origem devem estar em heaps da mesma D3D12_DESCRIPTOR_HEAP_TYPE.
[in, optional] pDestDescriptorRangeSizes
Uma matriz de tamanhos de intervalo de descritor de destino para o qual copiar.
[in] NumSrcDescriptorRanges
O número de intervalos de descritor de origem a serem copiados.
[in] pSrcDescriptorRangeStarts
Tipo: const D3D12_CPU_DESCRIPTOR_HANDLE*
Uma matriz de objetos D3D12_CPU_DESCRIPTOR_HANDLE para copiar.
Importante
Todos os elementos no parâmetro pSrcDescriptorRangeStarts devem estar em um heap de descritor não visível para sombreador. Isso ocorre porque os heaps de descritor visíveis do sombreador podem ser criados na memória WRITE_COMBINE ou na memória local da GPU, o que é proibitivamente lento para leitura. Se o aplicativo gerenciar heaps de descritor por meio da cópia dos descritores necessários para um determinado passe ou quadro de heaps de descritor local "armazenamento" para o heap de descritor associado à GPU, use heaps opacos de sombreador para os heaps de armazenamento e copie para o heap visível para GPU, conforme necessário.
[in, optional] pSrcDescriptorRangeSizes
Uma matriz de tamanhos de intervalo de descritor de origem para copiar.
[in] DescriptorHeapsType
Tipo: D3D12_DESCRIPTOR_HEAP_TYPE
O valor D3D12_DESCRIPTOR_HEAP_TYPEdigitado que especifica o tipo de heap de descritor com o qual copiar. Isso é necessário, pois diferentes tipos de descritor podem ter tamanhos diferentes.
Os heaps de descritor de origem e de destino devem ter o mesmo tipo, caso contrário, a camada de depuração emitirá um erro.
Valor de retorno
Nenhum
Observações
Quando aplicável, prefira ID3D12Device::CopyDescriptorsSimple a esse método. Ele pode ter uma taxa de erro de cache de CPU melhor devido à natureza linear da cópia.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino | Windows |
cabeçalho | d3d12.h |
biblioteca | D3D12.lib |
de DLL | D3D12.dll |