DirectXを使用して利用可能なビデオメモリを照会するにはどうすればよいですか?


回答:


8

Game Coding Complete 3によると、いくつかの方法があります。

  • DX7のGetAvailableVidMem()-通常はかなり良い。共有メモリを搭載したカードではうまく機能しません。
  • WMI(Windows Management Interface)には上記と同様の結果があります。
  • DxDiagは両方を使用してより良い結果を提供します。
  • D3D9にはGetAvailableTextureMemory()関数がありますが、Windows Vista / 7でのみ使用できます。

3月8日以降のSDKで「VideoMemory」というDXサンプルを探します。


ビデオメモリのDXサンプルは素晴らしいです-尋ねる前にそれを見つけたはずです;)
ビンセントシャイブ

1
共有メモリを使用するコンピューターの数を考慮すると、DX7のバージョンはお勧めしません。そして、これのD3D9バージョンはどのようにしてVista +でのみ利用可能ですか?D3D9は... XPにあった
Bahbar

5

Vista以降のDX9EXの場合:

IDXGIDevice * pDXGIDevice;
hr = g_pd3dDevice->QueryInterface(__uuidof(IDXGIDevice), (void **)&pDXGIDevice);
IDXGIAdapter * pDXGIAdapter;
pDXGIDevice->GetAdapter(&pDXGIAdapter);
DXGI_ADAPTER_DESC adapterDesc;
pDXGIAdapter->GetDesc(&adapterDesc);
return adapterDesc.DedicatedVideoMemory;

http://msdn.microsoft.com/en-us/library/bb174526(v=VS.85).aspxから)


への呼び出しが成功Release()したpDXGIDevice後に呼び出しを行わないとQueryInterface()、メモリリークが発生します。
ビンツ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.