Metodo ID3D12Device::CopyDescriptors (d3d12.h)
Copia i descrittori da un'origine a una destinazione.
Sintassi
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
);
Parametri
[in] NumDestDescriptorRanges
Tipo: UINT
Numero di intervalli di descrittori di destinazione da copiare.
[in] pDestDescriptorRangeStarts
Tipo: const D3D12_CPU_DESCRIPTOR_HANDLE*
Matrice di oggetti D3D12_CPU_DESCRIPTOR_HANDLE in cui eseguire la copia.
Tutti i descrittori di destinazione e di origine devono trovarsi negli heap dello stesso D3D12_DESCRIPTOR_HEAP_TYPE.
[in, optional] pDestDescriptorRangeSizes
Tipo: const UINT*
Matrice di dimensioni dell'intervallo del descrittore di destinazione in cui eseguire la copia.
[in] NumSrcDescriptorRanges
Tipo: UINT
Numero di intervalli di descrittori di origine da cui copiare.
[in] pSrcDescriptorRangeStarts
Tipo: const D3D12_CPU_DESCRIPTOR_HANDLE*
Matrice di oggetti D3D12_CPU_DESCRIPTOR_HANDLE da cui eseguire la copia.
Importante
Tutti gli elementi nel parametro pSrcDescriptorRangeStarts devono trovarsi in un heap del descrittore non visibile a shader. Ciò è dovuto al fatto che gli heap del descrittore visibile allo shader possono essere creati in WRITE_COMBINE memoria o nella memoria locale della GPU, che è proibitivamente lenta da leggere. Se l'applicazione gestisce gli heap del descrittore tramite la copia dei descrittori necessari per un determinato passaggio o frame dall'heap del descrittore locale "storage" all'heap del descrittore associato a GPU, usare gli heap shader-opachi per gli heap di archiviazione e copiare nell'heap visibile alla GPU in base alle esigenze.
[in, optional] pSrcDescriptorRangeSizes
Tipo: const UINT*
Matrice di dimensioni dell'intervallo del descrittore di origine da cui copiare.
[in] DescriptorHeapsType
Tipo: D3D12_DESCRIPTOR_HEAP_TYPE
Valore tipizzato D3D12_DESCRIPTOR_HEAP_TYPE che specifica il tipo di heap del descrittore da copiare. Questa operazione è necessaria in quanto tipi di descrittore diversi possono avere dimensioni diverse.
Gli heap del descrittore di origine e di destinazione devono avere lo stesso tipo. In caso contrario, il livello di debug genererà un errore.
Valore restituito
nessuno
Osservazioni
Se applicabile, preferire ID3D12Device::CopyDescriptorsSimple a questo metodo. Può avere una migliore frequenza di mancati riscontri nella cache della CPU a causa della natura lineare della copia.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | d3d12.h |
Libreria | D3D12.lib |
DLL | D3D12.dll |