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

Reply via email to