Partilhar via


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

Tipo: UINT

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

Tipo: const * UINT

Uma matriz de tamanhos de intervalo de descritor de destino para o qual copiar.

[in] NumSrcDescriptorRanges

Tipo: UINT

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

Tipo: const * UINT

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

Consulte também

copiando descritores

ID3D12Device