Метод ID3D12Device::CopyDescriptorsSimple (d3d12.h)
Копирует дескрипторы из источника в место назначения.
Синтаксис
void CopyDescriptorsSimple(
[in] UINT NumDescriptors,
[in] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
[in] D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
[in] D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType
);
Параметры
[in] NumDescriptors
Тип: UINT
Количество дескрипторов для копирования.
[in] DestDescriptorRangeStart
Тип: D3D12_CPU_DESCRIPTOR_HANDLE
D3D12_CPU_DESCRIPTOR_HANDLE, описывающий дескрипторы назначения для начала копирования.
Дескрипторы назначения и источника должны находиться в кучах одного D3D12_DESCRIPTOR_HEAP_TYPE.
[in] SrcDescriptorRangeStart
Тип: D3D12_CPU_DESCRIPTOR_HANDLE
D3D12_CPU_DESCRIPTOR_HANDLE, описывающий исходные дескрипторы для начала копирования.
Важно!
Параметр SrcDescriptorRangeStart должен находиться в невидимой шейдером куче дескрипторов. Это связано с тем, что кучи дескрипторов, видимые шейдером, могут создаваться в WRITE_COMBINE памяти или локальной памяти GPU, из которой слишком медленно считывается. Если приложение управляет кучами дескрипторов путем копирования дескрипторов, необходимых для заданного прохода или кадра, из локальных кучи дескрипторов хранилища в кучу дескриптора, привязанную к GPU, используйте непрозрачные кучи шейдера для кучи хранилища и при необходимости скопируйте их в кучу, видимую с GPU.
[in] DescriptorHeapsType
Тип: D3D12_DESCRIPTOR_HEAP_TYPE
D3D12_DESCRIPTOR_HEAP_TYPE типизированное значение, указывающее тип кучи дескриптора для копирования. Это необходимо, так как разные типы дескрипторов могут иметь разные размеры.
Кучи дескриптора источника и назначения должны иметь один и тот же тип, иначе уровень отладки выдаст ошибку.
Возвращаемое значение
None
Remarks
При необходимости предпочитать этот метод id3D12Device::CopyDescriptors. Он может иметь лучшую скорость пропуска кэша ЦП из-за линейного характера копирования.
Требования
Целевая платформа | Windows |
Header | d3d12.h |
Библиотека | D3D12.lib |
DLL | D3D12.dll |