Hi John, Steve, et. al,

On Tue, Dec 14, 2010 at 7:32 PM, John Kelso <[email protected]> wrote:
> DGL has its own threading and draw code.  It uses OpenThreads
> for threading. The OpenGL calls generated by draw() are sent to the
> defined windows using OSG's SceneView class and Producer.  So, it's
> not completely OSG-free, but as its threading works, perhaps this
> indicates that the OSG problem is not in SceneView.

I'm I reading this correctly.  You are using Producer and SceneView,
and only a custom OpenGL call to the rendering?

I wouldn't expect any performance issues due to straight OpenGL
dispatch or SceneView, the scene graphs job is make sure there aren't
issues, and will typically far out perform a naive OpenGL program.

Most likely culprit would be at the high level - creating graphics
windows and synchronization of the threads and swap buffers.  This
would lead me to ask question could the difference be Producer vs
osgViewer?

Both are pretty similar in window setup and threading when running
CullDrawThreadPerContext is very similar to that of Producer's
multi-thread approach.  Events are handled a little differently, but
this won't be a factor for performance.  The only real difference I
can recall is that the osgViewer uses a barrier at the end of dispatch
and before the call swap buffers, while Producer just dispatches swap
buffers independently and then joins a barrier afterwards.  Is there
any chance that this is the issue? I'd be easy to move the barrier.

Unfortunately I've got my head down looking at paging issues right now
so can't head off to start testing multi-card setup.

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

Reply via email to