Hi John,

On Fri, Dec 17, 2010 at 6:43 PM, John Kelso <[email protected]> wrote:
> To summarize:
>
> 1) DGL, all OpenGL no OSG used, uses only Producer, no slowdown
>
> 2) DGL with OSG, uses SceneView and Producer (no Viewers or Cameras),
>   slowdown observed
>
> 3) pure OSG, uses Viewers, Cameras (and eventually SceneView if I read the
>   OSG code correctly), slowdown observed

OK, not entirely encouraging finding, but 2&3 together does eliminate
Producer vs osgViewer being the culprit.

It would be interesting to try using osgViewer but without any scene
graph attached, just using a custom osg::GraphicsOperation attched to
the osgViewer::GraphicsWindow and have the osg::GraphicsOperation do
the call to OpenGL.  This would eliminate Producer vs osgViewer as a
contributory factor.

In terms of OpenGL vs OSG, I rather surprised that the later is not
scaling as well as each context should be working independently, the
OSG doesn't add any explictly extra thread serialization at the
SceneView or osg::Geometry/Node/State level.  The only explicit
serialization is the option in osgViewer::Renderer.

FYI, the Referenced global mutex that protects the
addParent/removeParent() won't affect static scene graphs.  When
paging it's only in background threads that are likely to thrash
addParent/removeParent, the main frame thread should only be one one
or two add/removeChild() per frame.  In my own testing I've never seen
it as a bottleneck, and certainly shouldn't be a factor here.

Robert.



Robert.
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to