Bagaimana cara saya meminta memori video yang tersedia menggunakan DirectX?


Jawaban:


8

Menurut Game Coding Complete 3, ada beberapa cara:

  • DX7's GetAvailableVidMem () - biasanya cukup bagus. Tidak berfungsi dengan baik pada kartu dengan memori bersama.
  • WMI (Windows Management Interface) memiliki hasil yang mirip dengan yang di atas.
  • DxDiag menggunakan keduanya untuk memberikan hasil yang lebih baik.
  • D3D9 memiliki fungsi GetAvailableTextureMemory (), tetapi hanya dapat digunakan pada Windows Vista / 7.

Cari sampel DX pada 08 Maret atau lebih kemudian SDK yang disebut 'VideoMemory'.


Sampel DX untuk Memori Video hebat - seharusnya ditemukan sebelum bertanya;)
Vincent Scheib

1
Mengingat berapa banyak komputer yang akan menggunakan memori bersama, saya tidak akan merekomendasikan versi DX7. Dan bagaimana versi D3D9 ini hanya tersedia di Vista +? D3D9 ada di sana di XP ...
Bahbar

5

Untuk DX9EX di Vista dan yang lebih baru:

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;

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


Tidak menelepon Release()pada pDXGIDevicesetelah panggilan sukses untuk QueryInterface()akan menyebabkan kebocoran memori.
Vinz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.