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

