ビデオ メモリの提供と再利用
Windows ディスプレイ ドライバー モデル (WDDM) 1.2 以降のユーザー モード ディスプレイ ドライバーでは、ローカル メモリおよびシステム メモリの一時的なサーフェスに必要なメモリ オーバーヘッドを減らすために、Windows 8 以降で使用可能なメモリの提供と再利用の機能を使用する必要があります。
WDDM の最小バージョン: 1.2
Windows の最小バージョン: 8
ドライバーの実装 — フル グラフィックスおよびレンダリング専用: 必須
WHCK 要件とテスト: Device.Graphics…OfferReclaim
特にモバイル シナリオでは、ハードウェア アクセラレーションを必要とするグラフィックス重視型アプリで、GPU リソースが大量に使用される可能性があります。 また、多くのモバイル デバイスでは、GPU が CPU チップセットに統合され、GPU がシステム メモリの一部をビデオ メモリとして使用します。 複数のアプリが GPU を大量に使用する結果、システム メモリに対する要求が非常に高くなる状況で適切なシステム パフォーマンスを確保するには、ディスプレイ ドライバーのメモリ占有領域を最小限に抑える必要があります。 提供/再利用デバイス ドライバー インターフェイス (DDI) は、このためのメカニズムを提供します。
不要になったメモリをアプリから提供し、後でシステムで他の用途のために再利用したり、最近削除されたメモリを再利用したりするための API が用意されています。 Microsoft DirectX Graphics Infrastructure (DXGI) のアプリ プログラミングに関する「DXGI 1.2 の機能強化」というトピックを参照してください。
提供と再利用の DDI
Windows 8 以降には、ユーザー モード ドライバーでメモリを提供または再利用するための新しい関数があります。
ドライバーは、これらのシステム提供関数を呼び出して、メモリ割り当てを提供または再利用できます。
Microsoft Direct3D 10 ハードウェアをサポートするドライバーは、以下の関数を実装します。
Microsoft Direct3D 9 ハードウェアをサポートするドライバーは、以下の関数を実装します。 また、Direct3D 9 ハードウェアで実行されている Direct3D 11 API を使用しているときにアプリが割り当てを提供または再利用する場合、Direct3D ランタイムは次の関数を呼び出します。
関連する次の構造体と列挙を使用します。
- D3DDDI_OFFER_PRIORITY
- D3DDDIARG_OFFERRESOURCES
- D3DDDIARG_RECLAIMRESOURCES
- D3DDDICB_OFFERALLOCATIONS
- D3DDDICB_RECLAIMALLOCATIONS
- DXGI_DDI_ARG_OFFERRESOURCES
- DXGI_DDI_ARG_RECLAIMRESOURCES
- DXGI1_2_DDI_BASE_FUNCTIONS
提供/再利用機能をサポートするために、Windows 8 以降では、この構造体には次の 2 つの新しいメンバーがあります。
割り当てが解除されると、その中のすべてのデータが失われるため、ドライバーがこの機能を正しく処理できることを慎重にテストする必要があります。
ハードウェア認定の要件
ハードウェア デバイスがこの機能を実装する場合に満たさなければならない要件については、関連する WHCK ドキュメントの Device.Graphics…OfferReclaim を参照してください。 これらの要件は、ドライバーが割り当てを提供する必要があるシナリオの一覧であることに注意してください。
Windows 8 で追加された機能のレビューについては、「WDDM 1.2 の機能」を参照してください。