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

