I have an app here that does the following:

while (1)
{
        create a texture of a size we haven't used before
        display it
        wait a bit
        delete it
}

Yes, essentially it's a fancy slide-show.

This eventually causes OpenGL to grind into texture-swapping hell.   
DirectX's texture memory size calls confirm we're running out of GPU memory.  
Plus debugging breakpoints show no calls to glDeletedTextures.

It seems that all my deleted textures are ending up stuck in the 
pending-orphan-lists, but are never making it into the actual orphan lists,  
where TextureObjectSet::flushDeletedTextureObjects() could clean them up.

It seems currently the only calls to handlePendingOrphandedTextureObjects 
during normal operation are in the takeOrGenerate() call.   But that's of no 
help if you have lots of different texture sizes.   All the pending 
orphan lists for the other sizes are never processed.

So, can someone mod:

TextureObjectSet::flushDeletedTextureObjects() and
TextureObjectSet::flushAllDeletedTextureObjects()

to call handlePendingOrphandedTextureObjects() ?

seen in 2.9.6, SVN not tested, but looks no better.

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to