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 do mesmo D3D12_DESCRIPTOR_HEAP_TYPE.

[in, optional] pDestDescriptorRangeSizes

Tipo: const UINT*

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

[in] NumSrcDescriptorRanges

Tipo: UINT

O número de intervalos de descritores de origem dos qual copiar.

[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 de "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 por 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 tipado D3D12_DESCRIPTOR_HEAP_TYPE 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.

Retornar valor

Nenhum

Comentários

Quando aplicável, prefira ID3D12Device::CopyDescriptorsSimple a esse método. Ele pode ter uma taxa de perda de cache de CPU melhor devido à natureza linear da cópia.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho d3d12.h
Biblioteca D3D12.lib
DLL D3D12.dll

Confira também

Copiar descritores

ID3D12Device