Using the libGL heap

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?

+5
source share
1 answer

What you are experiencing is perfectly normal, because the OpenGL implementation needs to store a copy of the data in system memory for various reasons.

OpenGL , ( GPU). , , reset . .

, (, Valgrind) .

+7

All Articles