PLEASE HELP! DXDIAG Display Memory vs. DirectX API Display Memory

Started by
1 comment, last by palefire 20 years, 6 months ago
I''m witting an installer and I''d like to check the available video memory to make sure that the game will run on the given machine. I''m currently using DirectX (needs to be the lowest version possible for compability reasons) to do so (see below) but the amount doesn''t always match the value that you can see in DXDIAG or that the manufacturer claims is on the card. using: GetAvailableVidMem(...) with: DDSCAPS_TEXTURE -- OR -- DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM -- OR -- DDSCAPS_VIDEOMEMORY | DDSCAPS_NONLOCALVIDMEM I would expect the local video memory to always be the correct answer, but sometimes it is far too low (and occasionally too high) for the card that it''s being run on. And although one of the values will often return the right answer, there is no rhyme or reason as to when one will have the correct value over another.
Advertisement
Yeah, GetAvailableVidMem() is a gross estimate of texture memory available and not how much silicon is on the chip. If you’re using DX9 you can use the dxdiag COM interface to get at its number for video memory. However, watch out how your code works since some video cards don''t have silicon on board and use just the system memory so would I recommend you find another way to accomplish your goal.

Jason
Development Lead
Windows Graphics & Gaming Team

“This posting is provided "AS IS" with no warranties, and confers no rights.”
IIRC DXDIAG uses WMI for querying the amount of VRAM from the driver/card.

Herb Marselas posted some VB code demonstrating it on the DirectXDev mailing list not so long ago (my new work machine doesn''t have my favourites on so unfortunately I can''t give you the direct link to the post).

--
Simon O''Connor
3D Game Programmer &
Microsoft DirectX MVP

Simon O'Connor | Technical Director (Newcastle) Lockwood Publishing | LinkedIn | Personal site

This topic is closed to new replies.

Advertisement