Skip to main content
コマンド リストに関連付けられている現在バインドされている記述子ヒープを変更します。

構文

パラメーター

NumDescriptorHeaps
型: UINT
バインドする記述子ヒープの数。 ppDescriptorHeaps
型: [in] ID3D12DescriptorHeap*
コマンド リストに設定するヒープ用の ID3D12DescriptorHeap オブジェクトの配列へのポインター。 バインドできる記述子ヒープのタイプは D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV および D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER のみです。 各タイプの記述子ヒープを一度に設定できるのは 1 つだけであるため、一度に設定できるのは最大 2 つのヒープ (サンプラー 1 つ、CBV/SRV/UAV 1 つ) となります。

戻り値

型: void なし。

解説

SetDescriptorHeaps はバンドルでも呼び出せますが、バンドルの記述子ヒープは呼び出し元のコマンド リストの記述子ヒープと一致する必要があります。バンドルの制限の詳細については、コマンド リストとバンドルの作成と記録 を参照してください。 以前に設定されたヒープはすべて、この呼び出しによって解除されます。呼び出し内でシェーダーから可視な各タイプについて、最大 1 つのヒープを設定できます。 記述子ヒープの変更は、一部のハードウェアでパイプライン フラッシュを引き起こすことがあります。このため、頻繁にバインドされる記述子ヒープを変更するのではなく、各タイプについて 1 つのシェーダー可視ヒープを使用し、フレームごとに 1 回設定することが推奨されます。代わりに、ID3D12Device::CopyDescriptors および ID3D12Device::CopyDescriptorsSimple を使用して、レンダリング時に必要に応じてシェーダー不透明ヒープから単一のシェーダー可視ヒープに必要な記述子をコピーしてください。

D3D12Bundles サンプルでは、ID3D12GraphicsCommandList::SetDescriptorHeaps を次のように使用しています。
D3D12 リファレンスのサンプル コード を参照してください。

要件

ヘッダー: d3d12_xs.h または d3d12_x.h
ライブラリ: d3d12_xs.lib または d3d12_x.lib
サポートされるプラットフォーム: XBOX Series 本体および XBOX One ファミリ

関連項目

記述子ヒープ ID3D12GraphicsCommandList
最終更新日 2026年8月24日