Archived

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

keeping track of video memory

This topic is 5520 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

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
www.creative-asylum.com

Share this post


Link to post
Share on other sites