[visionegg] Random selection of primary and secondary vsync on init in clone mode

  • From: Martin Spacek <mspacek@xxxxxxxxxxxxxxx>
  • To: visionegg@xxxxxxxxxxxxx
  • Date: Tue, 22 Feb 2005 21:58:39 -0800

Greetings,

We have two 800 x 600 x 200Hz screens hooked up to a single dual-head ATI Radeon card in clone mode. VisionEgg runs perfectly in this setup with the timing of each frame at 5 ms, and the same image appearing on both monitors as expected.

Comparing the vsync signals (VGA pin 14) of the two ports on the ATI card on an oscilloscope, I've noticed that they aren't in phase, even in clone mode with the same resolution and refresh rate. No big deal, so long as the timing of the stimulus is always relative to the vsync of one of the ports (presumably the primary), so that we can use that port's vsync signal to get precise timing information about our stimuli on the primary monitor.

I've noticed however that with the setup described above, the screen's buffer swaps seem to randomly choose on initialization to lock to the vsync signal of either the primary or the secondary VGA port. This is bad, because we need to know which port to sample the vsync signal off of for our timing information, and if the correctly timed port keeps changing, then half the time we'll be getting the wrong timing info. Has anyone else noticed this behaviour?

This is in Windows 2000 on a Sapphire ATI Radeon 9800 Pro 128MB. I've tried all sorts of ATI Catalyst drivers: 4.1, 4.9, 5.2 (most recent) with no luck. I've tried updating SDL.dll to the latest SDL runtime (1.2.8), the latest pygame 1.6.2, and the latest pyopengl 2.0.2.01 with no luck. I realize that pygame/SDL can only init a single screen, but shouldn't it always init locked to the primary vsync? I'm trying to figure out the likeliest source of the problem: the driver, SDL, pygame...?

P.S. For any of you out there using the Catalyst drivers, I've noticed tearing at 800x600 (fullscreen and maybe windowed too, but only at this resolution) even with buffer swaps locked to vsync, at any refresh rate, since version 4.10 (October 2004). At least that's the case for the Radeon 9800. So right now we're sticking with version 4.9 or earlier.

Cheers,

Martin Spacek
PhD student, Swindale lab
Graduate Program in Neuroscience
Dept. of Ophthalmology and Visual Sciences
University of British Columbia, Vancouver, BC, Canada
+1-604-875-4555 ext. 66282
mspacek@xxxxxxxxxxxxxxx | http://swindale.ecc.ubc.ca
======================================
The Vision Egg mailing list
Archives: //www.freelists.org/archives/visionegg
Website: http://www.visionegg.org/mailinglist.html

Other related posts:

  • » [visionegg] Random selection of primary and secondary vsync on init in clone mode