I see. Textures will be uploaded again only if the gl context changes (i.e. if you create a new FrameBuffer) or if they have been unloaded from the gpu before. If that's what you do, then that's what you get. The idea of the Virtualizer is to trade VM memory for disk space and loading time. If you swap the texture to disk and it's has to be uploaded again, then it will take additional time to do this. But as said, if you only change the levels, i don't see why you need a new texture upload at all. Are you unloading the textures?