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/

Reply via email to