VSync Problem

I am having issues with enabling vertical synchronization (vsync) on my laptop. The specs are:

Dell Vostro 1500 Laptop
Windows XP Professional SP3
GeForce 8600M GT Driver 6.14.11.5683

In the nvidia control panel I have force vsync on:

Even with this set, my frame rate just goes to the max (1000 fps or something). When attempting to make use of wglSwapIntervalEXT and wglGetSwapIntervalEXT, the latter function always returns 0, no matter what I pass to wglSwapIntervalEXT and without regard to my control panel setting for vsync.

The behaviour I am experiencing happens with both windowed and full screen content. (Is windowed content on an LCD such as a laptop display unrestricted by vertical sync?)

I am using my own boiler plate code to create the window, setup OpenGL, and pick my display settings. I use wglChoosePixelFormat when available, and I also notice that the DevMode structure has a DM_DISPLAYFREQUENCY setting for ChangeDisplaySettings going full screen. Maybe I’m doing something wrong there?

I’d really like to use vsync. Without it my program just runs too fast and uses too much CPU/GPU/Battery.

I know there is some kind of issue with nvidia chips in recent systems by Dell, HP ect.

I just trying to figure out what’s going on. I really don’t want my program to run faster than say 60 fps, and using Sleep() is horribly inaccurate.

What should I try next?

TIA

Try a different driver. When you force vsync on but it doesn’t work, something is wrong with the driver.

But, profilactory questions:

  1. Are you sure your fps calculation is correct?
  2. You do use double-buffered context?

Yup. I installed my laptop default video driver and now the control panel applet and wglSwapIntervalEXT are working as expected.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.