On Mon, Apr 14, 2008 at 11:26 AM, Robert Osfield
<[EMAIL PROTECTED]> wrote:
> Hi Mike,
>
>
> On Mon, Apr 14, 2008 at 4:11 PM, Mike Weiblen <[EMAIL PROTECTED]>
> wrote:
>
> > fyi I also have need for swap sync across a networked cluster, but at
> > the the generic OpenGL rather than OSG level.
>
> What do you mean by "generic OpenGL rather than OSG level"?  I am trying to
> get my head around the topic so specifics is very useful right now.
>
> > We've implemented an
> > out of band handshake protocol in our network pipeline, but would be
> > glad to adopt a GL standard if possible.  So I'm following this topic
> > w/ interest.
>
> So you've implemented a software swap ready barrier then?
>
> How do you currently wire this up with the OSG?
>
> Robert.
>

Hi Robert,

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

Reply via email to