Well, vsync can only be activated in the driver’s settings, right?
By looking at the spec of WGL_swap_control, I thought that this extension could be used to force vsync programmatically even when it’s not activated in the driver.
So I tried it in an application and got something strange:
I tested my app on a Riva TNT with the detonator 3 drivers (r6.31). My app only displays a textured quad with two different textures (one for odd frames, one for even frames).
When vsync is activated in the driver’s settings, WGL_swap_control works fine (I can use whatever value I want for the interval). However, when I don’t specify a swap interval (or set it to 0), The display flickers as if it wasn’t synchronised with the refresh. I thought that with vsync enabled I would have got the same result with a swap interval of 1 and without specifying any interval … but no .
Another problem occurs when I disable vsync in the driver’s settings: in this case when I try to set a swap interval, the program simply crashes #2!
So, is there a driver issue or did I screw up ?