To my knowledge it’s always been the case that creating a texture on the card using glTexImage2D causes the driver to internally create a duplicate in RAM (I am very sure of this for NVidia on Windows).
I have also been aware that glDeleteTextures doesn’t free up this memory rather does something akin to marking it available for reuse.
In previous applications this has always been fine for me. But in my current application it no longer is. I have a preview mode in my app where I generate a preview of a large 3d volume the total memory foorprint of all the textures involved runs close to Gb. And as it turns out subsequent phases of the workflow do not require this memory for anything Ogl related but do require that RAM that the driver is holding on to.
How do I get it back? I’ve even tried regenerating a list of small textures in the hope that the reuse of the slots with smaller data would free up the old memory… doesn’t seem to work.
Anyone seen this? Anyone know how to get this memory back?