Skip to main content
将描述符从源复制到目标。

语法

参数

NumDestDescriptorRanges [in]
类型:UINT
要复制到的目标描述符范围的数量。 pDestDescriptorRangeStarts [in]
类型:const D3D12_CPU_DESCRIPTOR_HANDLE *
要复制到的 D3D12_CPU_DESCRIPTOR_HANDLE 对象的数组。 所有目标和源描述符都必须位于相同 D3D12_DESCRIPTOR_HEAP_TYPE 的堆中。 pDestDescriptorRangeSizes [in, optional]
类型:const UINT *
要复制到的目标描述符范围大小的数组。 NumSrcDescriptorRanges [in]
类型:UINT
要从中复制的源描述符范围的数量。 pSrcDescriptorRangeStarts [in]
类型:const D3D12_CPU_DESCRIPTOR_HANDLE *
要从中复制的 D3D12_CPU_DESCRIPTOR_HANDLE 对象的数组。
pSrcDescriptorRangeStarts 参数中的所有元素都必须位于非着色器可见描述符堆中。这是因为着色器可见描述符堆可能创建于 WRITE_COMBINE 内存或 GPU 本地内存中,从中读取会非常慢。如果您的应用程序通过将给定过程或帧所需的描述符从本地”存储”描述符堆复制到 GPU 绑定的描述符堆来管理描述符堆,请对存储堆使用着色器不透明堆,并根据需要复制到 GPU 可见堆中。
pSrcDescriptorRangeSizes [in, optional]
类型:const UINT *
要从中复制的源描述符范围大小的数组。 DescriptorHeapsType [in]
类型:D3D12_DESCRIPTOR_HEAP_TYPE
D3D12_DESCRIPTOR_HEAP_TYPE 类型的值,用于指定要复制的描述符堆的类型。这是必需的,因为不同的描述符类型可能具有不同的大小。 源和目标描述符堆必须具有相同的类型,否则调试层将发出错误。

返回值

类型:void 无。

备注

在适用的情况下,请优先使用 ID3D12Device::CopyDescriptorsSimple 而不是此方法。由于复制的线性特性,它可能具有更好的 CPU 缓存未命中率。

要求

头文件: d3d12_xs.h 或 d3d12_x.h
库: d3d12_xs.lib 或 d3d12_x.lib
支持的平台:XBOX Series 主机和 XBOX One 系列

另请参阅

复制描述符 ID3D12Device
最后修改于 2026年8月24日