I am working on an OpenGL C ++ Linux application using Nvidia 290.10 64 bit drivers. I am trying to reduce the amount of memory since it uses quite a lot of live data.
I used valgrind / massif to analyze heap usage, and although it helped me optimize various things, by far the largest chunk of used heap memory is allocated by libGL. Regardless of how I set the threshold, the array does not allow me to see in detail where these distributions come from, namely this is libGL. At peak times, I see about 250 MB allocated by libGL (out of the total heap usage of 900 MB). I store a similar amount of memory on a graphics card, like VBOs and Textures (basically one big texture 4096 * 4096).
So, it seems like a similar amount of memory that I load into the GPU memory is allocated in the libGL heap. The libGL distribution also peaks when the volume of VBOs peaks. This is normal? I thought that one of the advantages of having a lot of GPU memory is that it does not free up RAM?
source
share