D3D12_HEAP_FLAGS列挙 (d3d12.h)
ヒープにテクスチャを含めることができるかどうか、およびリソースがアダプター間で共有されるかどうかなど、ヒープ オプションを指定します。
構文
typedef enum D3D12_HEAP_FLAGS {
D3D12_HEAP_FLAG_NONE = 0,
D3D12_HEAP_FLAG_SHARED = 0x1,
D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200,
D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400,
D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800,
D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000,
D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING,
D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0,
D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84
} ;
定数
D3D12_HEAP_FLAG_NONE 値: 0 オプションは指定されません。 |
D3D12_HEAP_FLAG_SHARED 値: 0x1 ヒープは共有されます。 共有ヒープを参照してください。 |
D3D12_HEAP_FLAG_DENY_BUFFERS 値: 0x4 ヒープにバッファーを含めることはできません。 |
D3D12_HEAP_FLAG_ALLOW_DISPLAY 値: 0x8 ヒープにはスワップ チェーン サーフェスを含める必要があります。 |
D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER 値: 0x20 ヒープは、アダプター間でリソースを共有できます。 共有ヒープを参照してください。 保護されたセッションを、アダプター間で共有されるリソースと混在させることはできません。 |
D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES 値: 0x40 ヒープはレンダー ターゲット (RT) テクスチャや Depth-Stencil (DS) テクスチャを格納できません。 |
D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES 値: 0x80 ヒープには、D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGETまたはD3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCILが存在しない限り、D3D12_RESOURCE_DIMENSION_TEXTURE1D、D3D12_RESOURCE_DIMENSION_TEXTURE2D、またはD3D12_RESOURCE_DIMENSION_TEXTURE3Dを持つリソースを含めることはできません。 D3D12_RESOURCE_DIMENSION と D3D12_RESOURCE_FLAGSを参照してください。 |
D3D12_HEAP_FLAG_HARDWARE_PROTECTED 値: 0x100 サポート。 使用しないでください。 |
D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH 値: 0x200 ヒープはMEM_WRITE_WATCH機能をサポートしているため、システムはコミットされたメモリ領域に書き込まれたページを追跡します。 このフラグをD3D12_HEAP_TYPE_DEFAULTフラグまたはD3D12_CPU_PAGE_PROPERTY_UNKNOWNフラグと組み合わせることはできません。 アプリケーションでは、ツールでこの機能を使用できなくなるため、このフラグ自体を使用しないことをお勧めします。 |
D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS 値: 0x400 メモリを確認できるコンポーネントに従って、アトミック操作がこのヒープのメモリでアトミックになるようにします。 このフラグを使用してヒープを作成すると、次のいずれかの条件下で失敗します。 - ヒープの種類は - ヒープは CPU から参照できますが、ヒープの種類は このフラグを持つヒープは、一部のシステムでは限られたリソースである可能性があることに注意してください。 |
D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT 値: 0x800 ヒープは非常駐状態で作成され、ID3D12Device::MakeResident または ID3D12Device3::EnqueueMakeResidentを使用して常駐させる必要があります。 既定では、ヒープ作成の最後の手順はヒープを常駐させるため、このフラグは、この手順をスキップし、アプリケーションがこれを行うタイミングを決定できるようにします。 |
D3D12_HEAP_FLAG_CREATE_NOT_ZEROED 値: 0x1000 OS が作成したヒープをゼロにしないようにします。 既定では、コミットされたリソースとヒープは、作成時にほぼ常にゼロになります。 このフラグを使用すると、一部のシナリオでこれを省略できます。 ただし、保証するものではありません。 たとえば、他のプロセスからのメモリは、データ保護とプロセスの分離のためにゼロにする必要があります。 これにより、ヒープを作成するオーバーヘッドが削減される可能性があります。 |
D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES 値: 0 ヒープには、すべての種類のバッファーやテクスチャを格納できます。 これはエイリアスです。詳細については、「解説」セクションの「エイリアス」を参照してください。 |
D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS 値: 0xc0 ヒープにはバッファーの格納のみが許可されます。 これはエイリアスです。詳細については、「解説」セクションの「エイリアス」を参照してください。 |
D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES 値: 0x44 ヒープには、RT 以外の非 DS テクスチャのみを格納できます。 これはエイリアスです。詳細については、「解説」セクションの「エイリアス」を参照してください。 |
D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES 値: 0x84 ヒープには、RT または DS テクスチャの格納のみが許可されます。 これはエイリアスです。詳細については、「解説」セクションの「エイリアス」を参照してください。 |
備考
この列挙型は、次の API 項目で使用されます。
次のヒープ フラグは、ID3D12Device::CreateHeapで使用する必要がありますが、ID3D12Device::CreateCommittedResourceによって作成された暗黙的なヒープに対して自動的に設定されます。 ヒープ層 1 のみをサポートするアダプターは、次の 3 つのフラグのうち 2 つを設定する必要があります。価値 | 形容 |
---|---|
D3D12_HEAP_FLAG_DENY_BUFFERS | ヒープには、D3D12_RESOURCE_DIMENSION_BUFFER (D3D12_RESOURCE_DIMENSION 列挙定数) を持つリソースを含めることはできません。 |
D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES | ヒープには、D3D12_RESOURCE_DIMENSION_TEXTURE1D、D3D12_RESOURCE_DIMENSION_TEXTURE2D、またはD3D12_RESOURCE_DIMENSION_TEXTURE3Dを含むリソースをD3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGETまたはD3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCILと共に含めることはできません。 (後者の 2 つの項目は D3D12_RESOURCE_FLAGS 列挙定数です)。 |
D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES | ヒープには、D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGETとD3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCILがない場合を除き、D3D12_RESOURCE_DIMENSION_TEXTURE1D、D3D12_RESOURCE_DIMENSION_TEXTURE2D、またはD3D12_RESOURCE_DIMENSION_TEXTURE3Dを含むリソースを含めることはできません。 |
エイリアス
ヒープ層 2 以上次のエイリアスが存在するため、ビット操作を行うときは注意が必要です。
- D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0 で、ヒープ層 2 以降
でのみサポートされます。 - D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES |D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES
- D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = D3D12_HEAP_FLAG_DENY_BUFFERS |D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES
- D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = D3D12_HEAP_FLAG_DENY_BUFFERS |D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES
表示可能ヒープ
表示可能なヒープは、モニターへのスキャンを有効にするために、プレゼンテーション用のスワップチェーンによって最も一般的に作成されます。表示可能なヒープは、D3D12_HEAP_FLAGS 列挙型のD3D12_HEAP_FLAG_ALLOW_DISPLAY メンバーで指定されます。
アプリケーションでは、スワップチェーンの外部に表示可能なヒープを作成できます。しかし、実際には彼らと一緒に存在することはできません。 このフラグは、CreateHeap ではサポートされておらず、D3D12_HEAP_TYPE_DEFAULT CreateCommittedResource でのみ使用できます。
D3D12_RESOURCE_DESC に対する追加の制限は、表示可能なヒープで作成されたリソースに適用されます。
- この形式は、デバイスでサポートされるだけでなく、スキャンアウトでもサポートされている必要があります。D3D12_FORMAT_SUPPORT1のD3D12_FORMAT_SUPPORT1_DISPLAYメンバーの使用を参照してください。
- ディメンション
D3D12_RESOURCE_DIMENSION_TEXTURE2Dする必要があります。 - 配置 は 0 にする必要があります。
- ArraySize は、1 または 2 のいずれかになります。
- MipLevels は 1 である必要があります。
- SampleDesc
は、 Count を 1 に設定し、品質0 に設定する必要があります。 - レイアウト はD3D12_TEXTURE_LAYOUT_UNKNOWNする必要があります。
- D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCILとD3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTERは無効なフラグです。
必要条件
要件 | 価値 |
---|---|
ヘッダー | d3d12.h |
関連項目
コア列挙 の
記述子ヒープ の