ID3D12Device::CopyDescriptors-Methode (d3d12.h)
Kopiert Deskriptoren aus einer Quelle in ein Ziel.
Syntax
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
);
Parameter
[in] NumDestDescriptorRanges
Typ: UINT
Die Anzahl der Zieldeskriptorbereiche, in die kopiert werden soll.
[in] pDestDescriptorRangeStarts
Typ: const D3D12_CPU_DESCRIPTOR_HANDLE*
Ein Array von D3D12_CPU_DESCRIPTOR_HANDLE Objekten, in die kopiert werden soll.
Alle Ziel- und Quelldeskriptoren müssen sich in Heaps derselben D3D12_DESCRIPTOR_HEAP_TYPE befinden.
[in, optional] pDestDescriptorRangeSizes
Typ: const UINT*
Ein Array von Zieldeskriptorbereichsgrößen, in die kopiert werden soll.
[in] NumSrcDescriptorRanges
Typ: UINT
Die Anzahl der Quelldeskriptorbereiche, aus der kopiert werden soll.
[in] pSrcDescriptorRangeStarts
Typ: const D3D12_CPU_DESCRIPTOR_HANDLE*
Ein Array von D3D12_CPU_DESCRIPTOR_HANDLE Objekten, aus der kopiert werden soll.
Wichtig
Alle Elemente im Parameter pSrcDescriptorRangeStarts müssen sich in einem nicht shader-sichtbaren Deskriptorheap befinden. Dies liegt daran, dass shader-sichtbare Deskriptorheaps in WRITE_COMBINE Arbeitsspeicher oder lokalem GPU-Speicher erstellt werden können, der zu langsam zu lesen ist. Wenn Ihre Anwendung Deskriptorheaps verwaltet, indem sie die für einen bestimmten Durchlauf oder Frame erforderlichen Deskriptoren aus lokalen Speicherdeskriptorheaps in den GPU-gebundenen Deskriptorheap kopiert, verwenden Sie Shader-undurchsichtige Heaps für die Speicherheaps, und kopieren Sie sie bei Bedarf in den sichtbaren GPU-Heap.
[in, optional] pSrcDescriptorRangeSizes
Typ: const UINT*
Ein Array von Quelldeskriptorbereichsgrößen, aus der kopiert werden soll.
[in] DescriptorHeapsType
Typ: D3D12_DESCRIPTOR_HEAP_TYPE
Der D3D12_DESCRIPTOR_HEAP_TYPE typisierte Wert, der den Typ des Deskriptorheaps angibt, mit dem kopiert werden soll. Dies ist erforderlich, da verschiedene Deskriptortypen unterschiedliche Größen aufweisen können.
Sowohl die Quell- als auch die Zieldeskriptorheaps müssen denselben Typ aufweisen, andernfalls gibt die Debugebene einen Fehler aus.
Rückgabewert
Keine
Bemerkungen
Ziehen Sie ggf. ID3D12Device::CopyDescriptorsSimple dieser Methode vor. Es kann aufgrund der linearen Art der Kopie eine bessere CPU-Cachefehlerrate aufweisen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | d3d12.h |
Bibliothek | D3D12.lib |
DLL | D3D12.dll |