[visionegg] Re: vertical sync, OpenGL, fullscreen mode

  • From: Andrew Straw <andrew.straw@xxxxxxxxxxxxxxx>
  • To: visionegg@xxxxxxxxxxxxx
  • Date: Thu, 27 Feb 2003 13:13:48 +1030

Hi Levy,

I'm glad to hear everything is working on your system! It's always re-assuring immediately after a release to hear positive feedback. Obviously I don't have the resources to test it on all possible systems myself.

These all seem to be common issues. Sometime I'll write up a cohesive document about all of this. In the meantime, I'll answer the best I can.

Levi Larkey wrote:

I just installed VisionEgg, and I've been messing around with the demos. Everything seems to be working except:

1) It appears that something is preventing synching with the vertical retrace. From what I understand, synching is necessary to avoid tearing and to get accurate response time measurements. I've looked at the settings for my video card (Matrox G400) and looked at Powerstrip too, but I can't find the appropriate settings. Any suggestions?... The log is copied below.

I don't have a Matrox G400, so I'm no expert on this card. However, my office mate has a G450, and I don't think he's had any success getting synchronization with vertical retrace to work, either. I don't know how much he's tried. I haven't tried. From looking over his shoulder, it seems the OpenGL implementation on his card seems slow, old (OpenGL 1.1 is pretty long in the tooth), and not accurate (on his card, sinusoidal gratings get dimmer towards the edge). Perhaps downloading the latest driver would help these issues. Unless all of them can be addressed, I wouldn't recommend using the Matrox G400 for experiments (but it's fine for development).


On win32, the Vision Egg tries to sync with the vertical retrace by calling the WGL OpenGL extension function wglSwapIntervalEXT(). I guess it's not implemented by the Matrox drivers. There may be another way to do it. If you can figure it out, I'd be happy to integrate it into the Vision Egg, but I don't have time to work on this. (If it's C calls to particular functions, that's fine -- we'll wrap that so it's accessible from Python. I don't think calls to DirectX will work, though.)

2) Apparently I have an older version of OpenGL (1.1.3). Do I need to get a newer version for VisionEgg to work properly?

The log messages are hopefully fairly accurate about the limitations you're up against. I don't know of any others. (The grating getting dim towards the edges seems to be a Matrox OpenGL implementation bug rather than behavior according to the OpenGL specification.)


3) I get large artifacts when I try to run in fullscreen mode, and the monitor seems to turn off and then on before displaying the demo. I know this isn't much to go on, but do you have any suggestions?

The artifacts are probably due to lack of vertical retrace sync and slow OpenGL implementation. The monitor seeming to turn off and on again is a result of changing video modes (resolution and refresh rate) -- your monitor must re-synchronize itself to the new signal frequencies. It probably behaves similarly if you change refresh rate or resolution in the Windows control panel.


I hope that helps!

Cheers!
Andrew

======================================
The Vision Egg mailing list
Archives: //www.freelists.org/archives/visionegg
Website: http://www.visionegg.org/mailinglist.html

Other related posts:

  • » [visionegg] Re: vertical sync, OpenGL, fullscreen mode