On 13.07.2006 18:00, Peter Beutner wrote:
It might be possible to guesstimate the available memory: http://delphi3d.net/articles/viewarticle.php?article=texman.htm
quoting from the article:
The implementation of the glAreTexturesResident() function, which is so critical for this technique, has not been properly standardized. [...] This makes the technique described in this article pretty much useless - unless you want to put "NVidia 3D cards only" in your app's system requirements.
I think the article exaggerates. (a) it refers to one driver which exhibits the problem - Matrox G400 GL, on Win32. Linux drivers may actually all properly support that function. (b) you could use a cap - e.g. never report more than 50% of the total system ram as VRAM. Or use that as a threshold for a heuristic - if more than that amount of textures are reported as "resident", assume the logic is broken.
Getting the RAM amount directly from the driver is definitely preferable. However, there's no universal way to do that - so consider the glAreTexturesResident() approach as a fallback in case no better way is available.
-f.r.