This topic is now archived and is closed to further replies.


keeping track of video memory

Recommended Posts

Hi, I have a very urgent question. I want to keep track of the available video memory in directx 8.1. This is also shown in the Directx Caps viewer under DirectDraw Devices->Primary Display Driver (display)->memory->video. How can I retrieve this information? I can track the available texture memory with IDirect3DDevice8::GetAvailableTextureMem but I cannot find an equivalent operation for the video memory. Thanks

Share this post

Link to post
Share on other sites
1) You don''t need to know unless you''re trying to write a caps viewer replacement. The only thing you''d need to know for would be a texture manager - and you have the amount of free texture memory.

2) Use the DX7 DDraw interfaces to find out if you really need to know. Simply create a DD device, find what you need, tear it down and create a D3D8.x device as usual. I''d say that''s what the caps viewer itself does.

3) If you''re planning this for some sort of resource management or a way of advising the user that their graphics card is below a minimum specification then I''d urge extreme caution - it isn''t as simple as you think.

a) Some graphics cards such as the old Voodoo''s don''t have a single pool of unified graphics memory. They have *texture* memory (for actual textures) and they have *surface* memory (for the backbuffer, for offscreenplain surfaces etc). You can''t use any extra bytes of surface memory for textures. So taking a total of all "memory on the card" and calling that VRAM is wrong!. Both are totally split. Furthermore when in SLI mode you have TMU1 texture memory and TMU2 texture memory and surface memory - a 3 way split.

b) If a PowerVR PCX were installed in the machine, you may get false reports about the total video memory which includes the "surface" memory of the actual video card.

c) On a UMA motherboard (nForce etc), you may find that your VRAM total reports something like 512Kb or even 0 - the whole point of UMA is that main system memory gets used as video memory - the only true memory is for caches inside the graphics chip!.

d) Surely you should include AGP memory as video memory

What do you need this for? - I''ve never needed to have an "accurate" query of the VRAM total.

Simon O''Connor
Creative Asylum Ltd

Share this post

Link to post
Share on other sites