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类型的值,该值指定要复制的描述符堆的类型。 这是必需的,因为不同的描述符类型可能具有不同的大小。
源和目标描述符堆必须具有相同的类型,否则调试层将发出错误。
返回值
无
备注
在适用的情况下,首选此方法而不是 ID3D12Device::CopyDescriptors。 由于复制的线性性质,它可以具有更好的 CPU 缓存未命中率。
要求
目标平台 | Windows |
标头 | d3d12.h |
Library | D3D12.lib |
DLL | D3D12.dll |