Hi Michael,

The sync of the start of the frame is under your control as its your
app that calls viewer.frame() (or its indivual
event/update/renderingTraversals).  You'll just need to add you own
frame begin and data sync code into your main loop.

The syncronization of swap buffers is harder. osgViewer currently
supports syncronization of swap buffer calls between separate graphics
threads running on separate cards - but only on one machine, there
isn't a hook yet for providing an external swap ready sync signal.  In
the ViewerBase::startThreading() method you'll find an internal
swapReadyBarrier operation created and assigned to the sync of the
various graphics threads, but as its internal you can't override it.

What osgViewer ideally should do is provide this swapReadyBarrier in
the public interface with the ability to override it/configure it.  It
would require much in the way of code changes to osgViewer to support
this, but as it'll break binary compatibility so will have to be a
feature for 2.3.x dev release and 2.4 stable rather the up comming
2.2.1 stable release.

You are welcome to have bash at coding the above, I can review/suggest
improvements.  Alternatively you can wait till I've got so slack at my
end and for me to implement this feature, this will be a few weeks yet
though.

If you have patience then just go ahead and implement the frame
begin+data sync in the main frame loop and ignore the swap ready sync
till I update osgViewer to support and user definable swap ready sync.
 If your app is hitting a solid 60Hz then the swap ready sync won't
actually be that critical anyway.

Robert.

On Nov 9, 2007 2:13 PM, Michael Raab <[EMAIL PROTECTED]> wrote:
> Hello,
>
> i've got the following question!
> I want to build a cluster application using osg! This means i've to 
> synchronize the rendering process.
> My application consists of one master and several slaves, where the slaves 
> are simple render nodes and the master is responsible for the 
> synchronisation. My Problem is that i've to create a restricted rendering 
> loop for the slaves.
> The new loop should look something like this:
> - first each slave has to wait until it has the complete sceneupdate, e.g. 
> until there's a network message that tells him "Start Rendering"
> - the slave should render the scene into the back buffer
> - if the rendering is finished the slave has to wait until there's a network 
> message which tells him to swap back and front buffer!
>
> Is it possible to realize this without changing osg code? If not what do you 
> think with part do i have to touch? I think the rendering is done in some 
> kind of the View Class...
>
> Thank you for your support,
> Michael
> --
> Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten
> Browser-Versionen downloaden: http://www.gmx.net/de/go/browser
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to