次の方法で共有


D3D12_DESCRIPTOR_HEAP_FLAGS列挙 (d3d12.h)

ヒープのオプションを指定します。

構文

typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS {
  D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
  D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
} ;

定数

 
D3D12_DESCRIPTOR_HEAP_FLAG_NONE
値: 0
ヒープの既定の使用法を示します。
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE
値: 0x1
フラグ D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE は、必要に応じて記述子ヒープに設定して、シェーダーで参照するためにコマンド リストにバインドされていることを示すことができます。 このフラグを "設定せずに" 作成された記述子ヒープでは、アプリケーションは、便宜上、記述子を CPU メモリにステージングしてからシェーダーに認識される記述子ヒープにコピーすることができます。 ただし、シェーダーに認識される記述子ヒープにアプリケーションが記述子を直接作成しても問題はなく、CPU へのステージングも必要ありません。

ID3D12GraphicsCommandList::SetDescriptorHeaps を介してバインドされた記述子ヒープには、D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE フラグが設定されている必要があります。そうしないと、デバッグ レイヤーでエラーが発生します。

D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE フラグを持つ記述子ヒープは、ID3D12Device::CopyDescriptors または ID3D12Device::CopyDescriptorsSimple の呼び出しではソース ヒープとして使用できません。これは、読み取りが非常に非効率的なWRITE_COMBINEメモリまたは GPU ローカル メモリに存在する可能性があるためです。

このフラグは、CBV/SRV/UAV 記述子ヒープとサンプラー記述子ヒープにのみ適用されます。 それ以外の種類の記述子ヒープには適用されません。それ以外の種類はシェーダーから直接参照されないためです。 D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLEを使用して RTV/DSV ヒープを作成しようとすると、デバッグ レイヤー エラーが発生します。

解説

この列挙型は、 D3D12_DESCRIPTOR_HEAP_DESC 構造体によって使用されます。

要件

   
Header d3d12.h

関連項目

コア列挙

記述子ヒープの作成

記述子ヒープ