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.