How to get local video memory size on Windows XP Platform

Started by
5 comments, last by Numsgil 14 years, 10 months ago
I know there is a DX10 function IDXGIAdapter::GetDesc() which can do this. But how can I get local video memory size by DX9 or any other windows platform sdk? I want to get local video memory size so that I can decide the default rendering configuration for my game.
Advertisement
Hey

The "VideoMemory" sample form the DirectX SDK (located in "\Samples\C++\Misc\VideoMemory") could help you. It describe some ways to get the video memory size (Not only DirectX ways).
Thank you so much, I can not find directory named "VideoMemory", but all samples for dxdiag is really useful!!
Well, there's IDirect3DDevice9::GetAvailableTextureMem(). But it's not accurate due to alignment issues, and can include stuff like AGP video memory (which means system RAM used by the video card when it runs out of dedicated RAM).

Besides, the amount of VRAM is a pretty poor indicator of performance. You can get low-end cards with 512mb+ of memory that run an order of mangnitude slower than a high-end card with the same amount of memory.
NextWar: The Quest for Earth available now for Windows Phone 7.
I tried Dxdiag and WMI functions on a laptop with 64M local video memory (reporting by "GPU-Z", a tool).

However, all these functions give me 512M!!! I think it includes the AGP memory size.
I have just asked a friend in AMD about how on earth GPU-Z can work. She told me ATI and NVIDIA all give the BIOS potion which store the VRAM size to GPU-Z, so that GPU-Z can work.

So, I give up
There really isn't a good way. But one method you might try is to create progressively larger hardware buffers until failure is reported.
[size=2]Darwinbots - [size=2]Artificial life simulation

This topic is closed to new replies.

Advertisement