DirectX kullanarak kullanılabilir video belleğini nasıl sorgularım?


Yanıtlar:


8

Game Coding Complete 3'e göre, birkaç yol var:

  • DX7'nin GetAvailableVidMem () - genellikle oldukça iyi. Paylaşılan belleğe sahip kartlarda çok iyi çalışmıyor.
  • WMI (Windows Yönetim Arabirimi) yukarıdakine benzer bir sonuca sahiptir.
  • DxDiag daha iyi sonuç vermek için her ikisini de kullanır.
  • D3D9, GetAvailableTextureMemory () işlevine sahiptir, ancak yalnızca Windows Vista / 7'de kullanılabilir.

08 Mart veya sonraki bir SDK'da 'VideoMemory' adlı bir DX örneği arayın.


Video Belleği için DX Örnek harika - sormadan önce
bulmalıydım

1
Kaç bilgisayarın paylaşılan bellek kullanacağını düşünürsek, DX7'nin sürümünü önermem. Ve bunun D3D9 sürümü yalnızca Vista + 'da nasıl kullanılabilir?
D3D9

5

Vista ve sonraki sürümlerde DX9EX için:

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 adresinden )


Çağıran Değil Release()üzerinde pDXGIDevicebaşarılı çağrı için sonra QueryInterface()bellek sızıntısına yol açacaktır.
Vinz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.