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

Weitere Informationen

Kopieren von Deskriptoren

ID3D12Device