D3D12_HEAP_TYPE列挙 (d3d12.h)
ヒープの種類を指定します。 常駐している場合、ヒープは特定の CPU キャッシュ プロパティを持つ特定の物理メモリ プールに存在します。
構文
typedef enum D3D12_HEAP_TYPE {
D3D12_HEAP_TYPE_DEFAULT = 1,
D3D12_HEAP_TYPE_UPLOAD = 2,
D3D12_HEAP_TYPE_READBACK = 3,
D3D12_HEAP_TYPE_CUSTOM = 4,
D3D12_HEAP_TYPE_GPU_UPLOAD
} ;
定数
D3D12_HEAP_TYPE_DEFAULT 値: 1 既定のヒープを指定します。 このヒープの種類では GPU の帯域幅が最も多くなりますが、CPU アクセスを提供することはできません。 GPU はこのプールからメモリの読み取りと書き込みを行うことができるので、リソース遷移バリアが変更される可能性があります。 ヒープとリソースの大部分はここに配置されることが想定されており、通常はアップロード ヒープ内のリソースを通じて設定されます。 |
D3D12_HEAP_TYPE_UPLOAD 値: 2 アップロードに使用するヒープを指定します。 このヒープの種類には、GPU へのアップロード用に最適化された CPU アクセスがありますが、GPU の最大帯域幅は発生しません。 このヒープの種類は、CPU 書き込み 1 回、GPU 読み取り 1 回のデータに最適です。ただし、GPU 読み取り 1 回は必要以上に厳しくなります。 GPU-read-once-or-from-cache は、データに対して許容されるユース ケースです。ただし、GPU キャッシュの設計とサイズが異なるため、このような使用方法を判断するのは困難です。 不明な場合は、GPU 読み取り 1 回の定義に進むか、データを _DEFAULT ヒープにコピーすることと、_UPLOAD ヒープからデータを読み取る場合の違いをプロファイリングします。 このヒープ内のリソースは、D3D12_RESOURCE_STATE_GENERIC_READ を使用して作成する必要があり、これとは異なって変更することはできません。 このようなヒープの CPU アドレスは、通常、CPU 読み取りでは効率的ではありません。 _UPLOAD ヒープの一般的な使用方法を次に示します。
次の例は、_UPLOAD ヒープには適していない可能性があります。
|
D3D12_HEAP_TYPE_READBACK 値: 3 読み戻しに使用するヒープを指定します。 このヒープの種類には、GPU からデータを読み取るための CPU アクセスが最適化されていますが、GPU の最大帯域幅は発生しません。 このヒープの種類は、GPU 書き込み 1 回の CPU 読み取り可能なデータに最適です。 CPU キャッシュの動作はライトバックであり、複数のサブキャッシュ ライン CPU 読み取りに役立ちます。 このヒープ内のリソースは、D3D12_RESOURCE_STATE_COPY_DEST を使用して作成する必要があり、これとは異なって変更することはできません。 |
D3D12_HEAP_TYPE_CUSTOM 値: 4 カスタム ヒープを指定します。 アプリケーションでは、メモリ プールと CPU キャッシュのプロパティを直接指定できます。これは、UMA の最適化、マルチエンジン、マルチアダプター、またはその他の特殊なケースに役立ちます。 これを行うには、アプリケーションが適切な選択を行うためにアダプター アーキテクチャを理解することが期待されます。 詳細については、次を参照してください。 D3D12_FEATURE_ARCHITECTURE、 D3D12_FEATURE_DATA_ARCHITECTURE、および GetCustomHeapPropertiesを |
備考
この列挙型は、次の API 項目で使用されます。
- D3D12_HEAP_DESC
- D3D12_HEAP_PROPERTIES
-
GetCustomHeapProperties の
抽象化されたヒープの種類を次に示します。
- D3D12_HEAP_TYPE_DEFAULT
- D3D12_HEAP_TYPE_UPLOAD
- D3D12_HEAP_TYPE_READBACK
- D3D12_HEAP_TYPE_CUSTOM
(バッファーとは異なり) テクスチャをヒープ型 UPLOAD または READBACK にすることはできません。
必要条件
要件 | 価値 |
---|---|
ヘッダー | d3d12.h |
関連項目
コア列挙 の
記述子ヒープ の