Hi Robert, I've recently been looking hard at the "rendering backend" i.e., RenderStage, RenderBin, etc. and the rendering traversal in osgViewer::ViewerBase. I was surprised to find that the State dynamic object count, and the dynamic object callback that triggers the end of the dynamic barrier, only considers the data variance of the RenderLeaf drawables. It doesn't seem to account at all for dynamic StateSet and StateAttribute objects. Is this the intended behavior? I had always thought that dynamic StateAttribute objects were protected by the dynamic object barrier.
I've also found that in DrawThreadPerContext mode (which should be advantageous on a multiprocessor with a single GPU), the dynamic barrier is held until the next swap, because the draw thread is sleeping until that point. This prevents the update traversal from running again until the draw thread wakes up. I thought the whole point of DrawThreadPerContext was to allow the update thread to start running before the buffers are swapped. I know that some synchronization is needed, but it is a little weird that it is being supplied by the dynamic barrier. Comments? Tim
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

