Does ATI_meminfo really work?

Has anybody ever tried ATI_meminfo extension?

All friends of mine that have AMD cards reported that available memory doesn’t change according to real allocation. It seems that the extension reports maximal size instead of the current size.

I find it is working. The reason it is not working might be most of times, the GPU memory allocation has been deferred for efficiency. For example, the texture memory is not really allocated until the rendering though you explicitly call glTexImage to upload the data. That’s why available memory has not change if you query it before the rendering.

It could be very helpful if you give a code snippet where the ATI_meminfo is not working.

Yes, I know pretty well how drivers execute commands and allocate memory; at least I think I know. :wink:

Is the memory allocation a system wide operation? It should be. StateTracker if started on AMD/ATI based system (Windows only) should print the current memory status of all three pools using ATI_meminfo.

A could provide a full source code for the application (excluding NV part) if necessary.

Also, I wondering on what driver/hardware combination the three presented pools are separated?

Thank you for the support!

Yes, the memory allocation is system wide, and as said in the specification, meminfo query should return the system used and available memory (I guess that’s what you want). However, I found the driver does not do so. It only returns a bookkeeping value which only counts the memory consumed in this application instance. :frowning: I will let you know if it can be fixed or there are some other ways to obtain the GPU memory status.

You mean VBO, texture and RBO? These three pools are separated probably for future extension. Now they are referring to the same pool.

See if ADL can help you.

You can download it from

I am not sure if this is what you want, but it seems that process explorer has GPU info in it now:

so if you are on Windows, you can probably use the same API?

Process Explorer is a utility not an API. I have no idea what is used for the readings. On the other hand, the problem here is in AMD’s implementation of memory allocation readings using an OpenGL extension. There is no doubt that it can be read using some other driver’s API.

The question is: Should I use “should implement” or “implements” in the article I’m just writing? :wink:

I meant that presumably Process explorer uses some API internally - if you can find that out you should get the same info.

meminfo should work in XP but not work on win7. We are working on it.

we make meminfo working on win7, but due to the driver model of win 7, meminfo can only return the available memory on the card (param 0) and it only works on workstation card.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.