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/

Attachment: pgpWqJhsyztWh.pgp
Description: PGP signature

_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to