Метод ID3D12Device::CopyDescriptors (d3d12.h)
Копирует дескрипторы из источника в место назначения.
Синтаксис
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
);
Параметры
[in] NumDestDescriptorRanges
Тип: UINT
Количество диапазонов дескрипторов назначения для копирования.
[in] pDestDescriptorRangeStarts
Тип: const D3D12_CPU_DESCRIPTOR_HANDLE*
Массив объектов D3D12_CPU_DESCRIPTOR_HANDLE для копирования.
Все дескрипторы назначения и источника должны находиться в кучах одного и того же D3D12_DESCRIPTOR_HEAP_TYPE.
[in, optional] pDestDescriptorRangeSizes
Тип: const UINT*
Массив размеров диапазона дескриптора назначения для копирования.
[in] NumSrcDescriptorRanges
Тип: UINT
Количество исходных диапазонов дескрипторов для копирования.
[in] pSrcDescriptorRangeStarts
Тип: const D3D12_CPU_DESCRIPTOR_HANDLE*
Массив объектов D3D12_CPU_DESCRIPTOR_HANDLE для копирования.
Важно!
Все элементы в параметре pSrcDescriptorRangeStarts должны находиться в невидимой шейдером куче дескрипторов. Это связано с тем, что видимые шейдером кучи дескрипторов могут быть созданы в WRITE_COMBINE памяти или локальной памяти GPU, из которой слишком медленно считывается. Если приложение управляет кучами дескрипторов путем копирования дескрипторов, необходимых для заданного прохода или кадра, из локальных кучи дескриптора хранилища в кучу дескрипторов, привязанную к GPU, используйте непрозрачные кучи шейдера для кучи хранилища и скопируйте в кучу, видимую для GPU, по мере необходимости.
[in, optional] pSrcDescriptorRangeSizes
Тип: const UINT*
Массив размеров исходного диапазона дескрипторов для копирования.
[in] DescriptorHeapsType
Тип: D3D12_DESCRIPTOR_HEAP_TYPE
Значение типа D3D12_DESCRIPTOR_HEAP_TYPE, указывающее тип кучи дескриптора для копирования. Это необходимо, так как разные типы дескрипторов могут иметь разные размеры.
Исходные и целевые кучи дескриптора должны иметь одинаковый тип, в противном случае уровень отладки выдает ошибку.
Возвращаемое значение
None
Remarks
В соответствующих случаях рекомендуется использовать этот метод ID3D12Device::CopyDescriptorsSimple . Он может иметь более высокую скорость пропуска кэша ЦП из-за линейного характера копирования.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | d3d12.h |
Библиотека | D3D12.lib |
DLL | D3D12.dll |