Skip to main content
更改与命令列表关联的当前绑定的描述符堆。

语法

参数

NumDescriptorHeaps
类型:UINT
要绑定的描述符堆数量。 ppDescriptorHeaps
类型:[in] ID3D12DescriptorHeap*
指向 ID3D12DescriptorHeap 对象数组的指针,这些对象用于要在命令列表上设置的堆。 只能绑定类型为 D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAVD3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER 的描述符堆。 一次只能设置每种类型的一个描述符堆,这意味着一次最多可以设置 2 个堆(一个采样器,一个 CBV/SRV/UAV)。

返回值

类型:void 无。

备注

可以对捆绑包调用 SetDescriptorHeaps,但捆绑包描述符堆必须与调用命令列表描述符堆匹配。有关捆绑包限制的详细信息,请参阅创建和记录命令列表和捆绑包 调用会取消设置所有先前设置的堆。在调用中,每种着色器可见类型最多可以设置一个堆。 在某些硬件上,更改描述符堆可能会导致管道刷新。因此,建议每种类型使用单个着色器可见的堆,并每帧设置一次,而不是定期更改绑定的描述符堆。相反,请使用 ID3D12Device::CopyDescriptorsID3D12Device::CopyDescriptorsSimple 在渲染期间根据需要将所需的描述符从着色器不可见的堆复制到单个着色器可见的堆。

示例

D3D12Bundles 示例按以下方式使用 ID3D12GraphicsCommandList::SetDescriptorHeaps
请参阅 Direct3D 12 参考中的示例代码

要求

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

另请参阅

描述符堆 ID3D12GraphicsCommandList
最后修改于 2026年8月24日