Larry Peruski (peruski++at++lep.cs.gmr.com)
Thu, 22 Apr 1999 08:30:45 -0400
I am trying to sync buffer swaps across multiple ONYX IR's as well as multiple
pipes within a single IR (each with it's own Xserver/keyboard). I am not using
Performer or any other toolkit.
I did this 4 years ago on REALITY engines in GL and it seemed to work ok.
According to all the documentation I can find, all you do is:
1. Connect up all the swapready connectors.
2. Genlock the Video signals across all pipes in the config
3. Have each draw process call glXBindSwapBarrierSGIX one time.
( I am using all default swap groups since I have multiple Xservers.
There is only 1 draw process per group). The actual call is:
glXBindSwapBarrierSGIX ( XtDisplay (widget), glXGetCurrentDrawable(), 1)
where 1 is the barrier.
I did call glXQueryMaxSwapBarriersSGIX() to verify it returned 1.
4. Each draw proceess calls GLwDrawingAreaSwapBuffers at the end of it's draw
cycle.
Everything seems to run fine for anywhere from 2 to 20 minutes. I can drag
geometry across screens being drawn by different workstations and everything
is in perfect lockstep. Then for no apparent reason, my frame rates will start
decreasing something like 50 frame/sec down to 20 frame/sec down to 1
frame/sec.
Things will run this way for a few seconds then the frame rates go back up to
normal but all synchronization between pipes is gone. I drag geometry across
screens and see no synch at all.
I am not connecting all the swapreadys on the machines, only the ones that I am
using. One question would be do you have to connect up all the swapreadys even
if you are not using some of them?
Before I tear my code apart, does anyone have a clue here?
Thanks,
Larry Peruski
General Motors Research Labs
Warren, Mich
(810-986-1475)
This archive was generated by hypermail 2.0b2 on Thu Apr 22 1999 - 05:30:59 PDT