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

