Direct3D 12 でのメモリ管理
D3D12 への移行には、メモリ常駐状態の適切な同期と管理を行うことも含まれます。 メモリ常駐状態の管理は、さらに多くの同期が必要になることを意味します。 このセクションでは、メモリ管理の戦略と、ヒープおよびバッファー内のサブ割り当てについて説明します。
このセクションの内容
トピック | 説明 |
---|---|
メモリ管理戦略 |
Direct3D 12 用のメモリ マネージャーを作成しようとすると、きわめて複雑なものになる可能性があります。サポートの階層は多岐にわたり、UMA と独立型 (ディスクリート) アダプターの両方への対応が必要であり、アーキテクチャは GPU アダプターごとに大きく異なるからです。 このセクションで説明されている Direct3D 12 メモリ管理に推奨される戦略は、"分類、予算、およびストリーム" です。 |
バッファー内のサブ割り当て |
バッファーには、D3D12 でのアプリケーションによる CPU から GPU への広範囲な遷移データの転送に必要なすべての機能があります。 このセクションでは、リソースおよびバッファーの使用と管理のための 4 つの一般的なシナリオについて説明します。 |
ヒープ内のサブ割り当て |
リソース ヒープにより、データが CPU から GPU へ (アップロード)、GPU から CPU へ (読み戻し) 転送されます。 |
常駐 |
オブジェクトが "常駐" と見なされるのは、GPU からアクセス可能であるときです。 |