Hi Leif,

Thanks the info, very useful.  Do you still have access to the various
hardware?  I'm thinking of what we can do in terms of testing if/when we get
code integrated into osgViewer.

W.r.t swap groups and barriers, I am wondering about putting the
group/barrier ID's as parameters of osg::GraphicsContext::Traits, let them
be ints and have a -1 value signifying inactive.   If they are positive then
they could be used in graphics context realize code to assign to appropriate
groups/barriers.  We'd possibly also need an overall hint in
osg::DisplaySettings to say whether we want swap/groups activated by
default, or to disable ones being requested in case of flaky driver
implementations.

Would it be possible to list the API setup/entry points to the software sync
functions, this will help me get an idea of what would be required.

Robert.

On Mon, Apr 14, 2008 at 7:29 PM, Leif Delgass <[EMAIL PROTECTED]> wrote:

> I have experience using both software-based swap ready, and the NVIDIA
> hardware synchronization with OSG.  In both cases this was in
> conjunction with VR Juggler handling the context setup and main loop
> (with an OSG SceneView per window/node).  VR Juggler includes a
> TCP-based software barrier.  For hardware sync, I had hacked support
> into the VR Juggler context/window setup code, but there is now core
> support for that in VR Juggler.  I would recommend having a software
> method available as a fall back, because the NVIDIA hardware
> implementation hasn't always worked for me, especially on large
> clusters (I work with a 27-node tiled wall now), but I've mostly
> worked with Quadro cards with the sync feature integrated vs. the new
> G-Sync cards (we've used those in a 4 node system with success, IIRC).
>  There is finally a spec in the registry for NVIDIA's extension, which
> is based on the old SGIX extensions:
>
> http://www.opengl.org/registry/specs/NV/glx_swap_group.txt
> http://www.opengl.org/registry/specs/NV/wgl_swap_group.txt
> http://www.opengl.org/registry/specs/SGIX/swap_group.txt
> http://www.opengl.org/registry/specs/SGIX/swap_barrier.txt
>
> Note that these also interact with the swap interval in
> GLX_SGI/WGL_swap_control, so you can sync on a multiple of the
> blanking interval.
>
> I think in theory you can use the swap group to get your barrier for
> multiple contexts on a single machine, and then bind the swap group to
> the global swap barrier, but I've only worked with one context and one
> screen per node (single card in each node).  In my case the NVIDIA
> extension supported a single swap group for GLX windows on each
> machine and a single global barrier (you can query the limit with the
> NV extension).  I always have sync to vblank enabled either by
> environment variable or through nvidia-settings, and you need to set
> up all the cards and the sync master in the Frame Lock settings of
> nvidia-settings as well (I usually have a shell script wrapper that
> ensures all that is set up by calling nvidia-settings from the command
> line).
>
> Also, (as with any extensions) remember to check for the extension
> string in the GLX extensions before attempting to use it, since some
> implementations may return non-NULL entry points even if the extension
> isn't supported.
>
> --
> Leif Delgass
> [EMAIL PROTECTED]
> _______________________________________________
> 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