|
Hi, I observe a strange slowdown when I use
multi-treaded application with OSG. It seems that is in the SceneView::Draw()
function. Example with an osgviewer like application:
If
I have two cameras calling _sh->Draw(*this) simultaneously, first thread
takes 11.45 ms, second thread takes 11.47 ms. So, it’s an overall of
11.47 ms. Now, I put a mutex on the draw call: The
cameras don’t call _sh->Draw(*this) simultaneously, first thread takes
2.51 ms, second thread takes 2.80 ms. It’s an overall of 5.31 ms. That
reduce time to half with mutex. If I use more and more cameras (render
surfaces), sequential draw is always the fastest. Is it my computer settings? I’m
using two Quadro FX 4500, 2 CPU dual core, Windows XP, not stereo. Is it the simultaneous
call of glCallList()? I think that when a GPU is processing a display list, if another
call is made at the same time with glCallList(), this thread yield or the
pipeline of the GPU loses some cycles to process that call. Is there a way to
have multiple simultaneous drawing calls working better or I continue to use my
mutex? Mathieu. |
_______________________________________________ osg-users mailing list [email protected] http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/
