Hi Zach, In the past I have been surprised at how expensive deleting display lists can be, perhaps this is what is causing the problem. Deleting texture objects can also be expensive. I have found avoiding deleting display lists reusing them is more critical then avoiding the actual creation of new display lists, reusse of display lists is a bit problematic though as you don't have a direct handle to how much memory is used in any one display lists so you have to estimate.
Turning off display lists obviously avoids both the creation, reuse and deletion overhead, but increases the overhead per frame. I very much doubt that actual deletion of the scene graph objects themselves is an issue, as my own experiments in this direction suggest its typically an order of magnitude less in time required compared to display lists/texture object issues. By default its done in the background thread too, so won't impact the main graphics threads and shouldn't cause a hitch. One way to explore the issue of texture object and display lists reuse/destruction is to increase the number of texture objects and display lists that are kept around in the lists of scheduled for deletion (because the subgraph they are associated with has been deleted). There defaults set in DatabasePager::run() are (copy and pasted here). // need to set the texture object manager to be able to reuse textures osg::Texture::setMinimumNumberOfTextureObjectsToRetainInCache(100); // need to set the texture object manager to be able to reuse textures osg::Drawable::setMinimumNumberOfDisplayListsToRetainInCache(500); You try upping this values. Robert. _______________________________________________ osg-users mailing list [email protected] http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/
