Direct3D 12 でのメモリ管理Memory Management in Direct3D 12

D3D12 への移行には、メモリ常駐状態の適切な同期と管理も含まれます。Moving to D3D12 involves doing proper synchronization and management of memory residency. メモリ常駐状態の管理は、さらに多くの同期が必要になることを意味します。Managing memory residency means even more synchronization must be done. このセクションでは、メモリ管理の戦略と、ヒープおよびバッファー内のサブ割り当てについて説明します。This section covers memory management strategies, and suballocation within heaps and buffers.

このセクションの内容In this section

トピックTopic 説明Description
メモリ管理戦略Memory Management Strategies
Direct3D 12 のメモリ マネージャーは、UMA または目立たない (非 UMA) アダプター用のさまざまなレベルのサポートや、GPU アダプター間の広範囲に渡るアーキテクチャの違いにより簡単に非常に複雑になり得ます。A memory manager for Direct3D 12 could get very complicated quickly with all the different tiers of support, for UMA or discreet (non-UMA) adapters, and with a considerable range of architecture differences between GPU adapters.
このセクションで説明されている Direct3D 12 メモリ管理に推奨される戦略は、"分類、予算、およびストリーム" です。The recommended strategy for Direct3D 12 memory management , described in this section, is "classify, budget and stream".
バッファー内のサブ割り当てSuballocation Within Buffers
バッファーには、D3D12 でのアプリケーションによる CPU から GPU への広範囲な遷移データの転送に必要なすべての機能が備わっています。Buffers have all the features necessary in D3D12 for applications to transfer a large range of transient data from the CPU to the GPU. このセクションでは、リソースおよびバッファーの使用と管理のための 4 つの一般的なシナリオについて説明します。This section covers four common scenarios for the use and management of resources and buffers.
ヒープ内のサブ割り当てSuballocation Within Heaps
リソース ヒープにより、データが CPU から GPU へ (アップロード)、GPU から CPU へ (読み戻し) 転送されます。Resource heaps transfer data from the CPU to the GPU (upload), and from the GPU to the CPU (read back).
オブジェクトは、GPU によってアクセス可能な場合、"常駐" と見なされます。An object is considered to be resident when it is accessible by the GPU.

Direct3D 12 プログラミング ガイドDirect3D 12 Programming Guide

リソース バインディングResource Binding