I am trying to vsync a program that I am developing to
present stimuli in an experimental psychology lab. Controlling
the timing and duration (nb. of frames) of stimuli is of
utmost importance for this application.
I have WK2000/MilleniumDHG400Max/DELLM990 monitor
with last matrox drivers (package 5.93), graph BIOS and
utility (Mtstu50204) installed.
My programming environment is VisualC/C 6.0 and GLUT/OpenGL.
I have glutPostRedisplay() in the Idle function and
glutSwapBuffers() at the end of the display function. Drawing
in the display function is very quick (<2ms).
The problem is that the Display function does not wait for the
vertical blank. My timing measurments show that this function
is called at a much higher rate (>500Hz) than the monitor
refresh rate (85Hz). I would have expected that glutSwapBuffer
would not return before vertical blank when Vsync is enabled.
I tried to set Page Flipping always on with the utility without
success. It looks like changing the setting on the Opengl tab
has no effect.
I have also tried to use wglSwapIntervalExt(1) to set
vsync but WGL_EXT_swap_control extension is not implemented
in Visual C/C++ 6.0 implementation of OpenGL.
Any comment/suggestion appreciated.
Regards,
Gabriel
PS: The question already came several times (in general
in relation with gaming). This is NOT however a question
about making an opengl game work. In fact, I am not
a gamer and I have not idea what Quake2 or Quake3
looks like . This is a question about finding out if g400
really has this capacity and how to set it up. I have
some doubt about it given the large number of gamers
for whom it has been impossible to make it work
(see 1999 thread by Ed Braga).
present stimuli in an experimental psychology lab. Controlling
the timing and duration (nb. of frames) of stimuli is of
utmost importance for this application.
I have WK2000/MilleniumDHG400Max/DELLM990 monitor
with last matrox drivers (package 5.93), graph BIOS and
utility (Mtstu50204) installed.
My programming environment is VisualC/C 6.0 and GLUT/OpenGL.
I have glutPostRedisplay() in the Idle function and
glutSwapBuffers() at the end of the display function. Drawing
in the display function is very quick (<2ms).
The problem is that the Display function does not wait for the
vertical blank. My timing measurments show that this function
is called at a much higher rate (>500Hz) than the monitor
refresh rate (85Hz). I would have expected that glutSwapBuffer
would not return before vertical blank when Vsync is enabled.
I tried to set Page Flipping always on with the utility without
success. It looks like changing the setting on the Opengl tab
has no effect.
I have also tried to use wglSwapIntervalExt(1) to set
vsync but WGL_EXT_swap_control extension is not implemented
in Visual C/C++ 6.0 implementation of OpenGL.
Any comment/suggestion appreciated.
Regards,
Gabriel
PS: The question already came several times (in general
in relation with gaming). This is NOT however a question
about making an opengl game work. In fact, I am not
a gamer and I have not idea what Quake2 or Quake3
looks like . This is a question about finding out if g400
really has this capacity and how to set it up. I have
some doubt about it given the large number of gamers
for whom it has been impossible to make it work
(see 1999 thread by Ed Braga).
Comment