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 メモリを確認できるコンポーネントに従って、アトミック操作がこのヒープのメモリでアトミックになるようにします。 このフラグを使用してヒープを作成すると、次のいずれかの条件下で失敗します。 - ヒープの種類はD3D12_HEAP_TYPE_DEFAULTであり、ヒープは複数のノードで表示できますが、デバイスはD3D12_CROSS_NODE_SHARING_TIER_3をサポートしていません。 - ヒープは CPU に表示されますが、ヒープの種類はD3D12_HEAP_TYPE_CUSTOMされていません。 このフラグを持つヒープは、一部のシステムでは限られたリソースである可能性があることに注意してください。 |
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 ではサポートされておらず、 createCommittedResource とD3D12_HEAP_TYPE_DEFAULTでのみ使用できます。
D3D12_RESOURCE_DESCに対する追加の制限は、表示可能なヒープで作成されたリソースに適用されます。
- この形式は、デバイスでサポートされるだけでなく、スキャンアウトでもサポートされている必要があります。D3D12_FORMAT_SUPPORT1の D3D12_FORMAT_SUPPORT1_DISPLAY メンバーの使用 を参照してください。
- ディメンション はD3D12_RESOURCE_DIMENSION_TEXTURE2Dする必要があります。
- 配置 は 0 にする必要があります。
- ArraySize には、1 または 2 のいずれかを指定できます。
- MipLevels は 1 である必要があります。
- SampleDesc では 、Count が 1 に設定され、 Quality が 0 に設定されている必要があります。
- レイアウト はD3D12_TEXTURE_LAYOUT_UNKNOWNする必要があります。
- D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCILとD3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTERが無効なフラグです。
要件
要件 | 値 |
---|---|
Header | d3d12.h |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示