Metode ID3D12Device::CopyDescriptors (d3d12.h)

Menyalin deskriptor dari sumber ke tujuan.

Sintaks

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

Jenis: UINT

Jumlah rentang deskriptor tujuan yang akan disalin.

[in] pDestDescriptorRangeStarts

Jenis: const D3D12_CPU_DESCRIPTOR_HANDLE*

Array objek D3D12_CPU_DESCRIPTOR_HANDLE untuk disalin.

Semua deskriptor tujuan dan sumber harus berada dalam timbunan D3D12_DESCRIPTOR_HEAP_TYPE yang sama.

[in, optional] pDestDescriptorRangeSizes

Jenis: const UINT*

Array ukuran rentang deskriptor tujuan untuk disalin.

[in] NumSrcDescriptorRanges

Jenis: UINT

Jumlah rentang deskriptor sumber untuk disalin.

[in] pSrcDescriptorRangeStarts

Jenis: const D3D12_CPU_DESCRIPTOR_HANDLE*

Array objek D3D12_CPU_DESCRIPTOR_HANDLE untuk disalin.

Penting

Semua elemen dalam parameter pSrcDescriptorRangeStarts harus berada dalam tumpukan deskriptor yang tidak terlihat shader. Ini karena tumpukan deskriptor yang terlihat shader dapat dibuat dalam memori WRITE_COMBINE atau memori lokal GPU, yang sangat lambat untuk dibaca. Jika aplikasi Anda mengelola tumpukan deskriptor melalui penyalinan deskriptor yang diperlukan untuk pass atau bingkai tertentu dari tumpukan deskriptor "penyimpanan" lokal ke tumpukan deskriptor yang terikat GPU, gunakan tumpukan shader-buram untuk tumpukan penyimpanan dan salin ke timbunan yang terlihat GPU sesuai kebutuhan.

[in, optional] pSrcDescriptorRangeSizes

Jenis: const UINT*

Array ukuran rentang deskriptor sumber untuk disalin.

[in] DescriptorHeapsType

Jenis: D3D12_DESCRIPTOR_HEAP_TYPE

Nilai D3D12_DESCRIPTOR_HEAP_TYPE-ketik yang menentukan jenis tumpukan deskriptor untuk disalin. Ini diperlukan karena jenis deskriptor yang berbeda mungkin memiliki ukuran yang berbeda.

Tumpukan deskriptor sumber dan tujuan harus memiliki jenis yang sama, jika tidak, lapisan debug akan memancarkan kesalahan.

Nilai kembali

Tidak ada

Keterangan

Jika berlaku, pilih ID3D12Device::CopyDescriptorsSimple ke metode ini. Ini dapat memiliki laju kehilangan cache CPU yang lebih baik karena sifat linear salinan.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header d3d12.h
Pustaka D3D12.lib
DLL D3D12.dll

Lihat juga

Menyalin Deskriptor

ID3D12Device