On Wednesday 31 January 2007 23:46, Robert Osfield wrote: > This week I have been working on a new threading model for the OSG, > one that allows the update, cull traversals to work in a parallel with > the draw traversal. This has meant a few changes to the core osg, > osgUtil and osgViewer, but most of these are now complete - complete > enough for me to get some first benchmarking results... > > I have a small and larger town models and both are coming in at tad > over 50% faster with the new threading model. This is for a dual core > CPU, on a single screen, with vsync off.
Woo-hoo! Our old Quadro will be happy to hear that! Nice job!
> Due
> to the fact the OSG scene graph isn't generally multibuffered like
> Performer one can't overlapping updating the scene graph and reading
> from it, but if you aren't changing the scene graph you can safely
> overlap it, with some tidy results :-)
What does this mean? Does this break the old model of:
while(1)
{
sync();
update();
cull();
draw();
}
I.e. is it still OK to change the scenegraph in the update() part? Or does it
have to be completely static in order to not break anything?
> For those who are curious about testing this out, update from CVS and
> run osgviewer on your models then press 'm' to toggle the threading
> model, it'll toggle from the default ThreadPerContext to
> ThreadPerCamera (the new one) and down to SingleThreaded.
I will for sure check this out.
>
> Consider these changes highly experimental so if it crashes and burns,
> just warm you hands on the glowing embers of your machine :-)
Hehe, it is pretty cold here in Denmark, some extra heat could be useful.
Jan
--
Jan Ciger
GPG public key: http://www.keyserver.net/
pgpWqJhsyztWh.pgp
Description: PGP signature
_______________________________________________ osg-users mailing list [email protected] http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/
