次の方法で共有


リソースのメモリの種類の指定

ユーザー モードのディスプレイ ドライバーは、リソースを作成する要求を受信するときに使用する必要があるメモリの種類に関する情報を受け取ります。 メモリの種類は、D3DDDIARG_CREATERESOURCE 構造体の Pool メンバーのD3DDDIPOOL_SYSTEMMEMまたはD3DDDIPOOL_VIDEOMEMORY列挙子を介して、それぞれシステムまたはビデオ メモリとして指定されます。 さらに、Microsoft Direct3D ランタイムは、プール メンバーで次のいずれかの列挙子を指定することによって、使用するビデオ メモリの種類に関するヒントをドライバーに提供します。

  • D3DDDIPOOL_LOCALVIDMEM

    ランタイムでは、ドライバーでローカル ビデオ メモリを使用することをお勧めします。

  • D3DDDIPOOL_NONLOCALVIDMEM

    ランタイムでは、ドライバーで非ローカル ビデオ メモリ (AGP メモリなど) を使用することをお勧めします。

ランタイムは、パフォーマンスを向上させるためのヒントをユーザー モード ディスプレイ ドライバーに提供します。 たとえば、ランタイムは、CPU がサーフェスに書き込む場合にD3DDDIPOOL_NONLOCALVIDMEMを指定できます。これは、非ローカル ビデオ メモリを使用して高速に実行されます。

ユーザー モードのディスプレイ ドライバーは、ベンダー固有の方法でD3DDDI_ALLOCATIONINFOおよびDXGK_ALLOCATIONINFO 構造体の pPrivateDriverData メンバーを介してディスプレイ ミニポート ドライバーにヒントを渡します。 ディスプレイ ミニポート ドライバーは、ドライバーの DxgkDdiCreateAllocation 関数の呼び出しからDXGK_ALLOCATIONINFO構造体の HintedSegmentId メンバー内のセグメントの識別子を返すことによって使用する適切なメモリ セグメントをビデオ メモリ マネージャーに示します。

リソースの作成に使用されるビデオ メモリの種類に関係なく、ユーザー モードのディスプレイ ドライバーは、ランタイムにセマンティックの違いを公開してはなりません。 つまり、ビデオ メモリの種類ごとに、ドライバーは情報を同じようにレンダリングし、同じ戻り値を返す必要があります。