Refresh Rate - New Twist on Old Question

First, I want to let you know that I HAVE searched this site and the web for this problem. I couldn’t find an answer, and I think this is an interesting problem…

Okay, the refresh rate on my laptop is 60Hz. So, I’d expect my frame rate to be clamped to 60Hz. Well it’s not. It’s only 50Hz. Now, I’m not doing anything impressive in my program. Here is my algorighm.

  1. swapbuffers to sync up with display

Do until data ends…

2. read data
3. QueryPerformanceCounter
4. draw
5. QueryPerformanceCounter
6. swapbuffers
7. QueryPerformanceCounter

end do

Now, my read and draw routines take less than one millisecond a piece. But my swapbuffers takes apx. 20 msec (usually, this value fluctuates between 20 and 22). I was expecting 16 msec.

Everything works fine on my desktop. The swapbuffers takes apx. 16 msec., and all of the other times are approximately the same.

Anybody had a similar problem?


What kind of graphics chip does the laptop have? Graphics chips in laptops generally aren’t all that great, so you should feel lucky to get as good of performance as you are.

What is the refresh rate of your display set to? Your update rate is usually an integer divisible of your monitor refresh rate,
so if you are running the monitor at 85Hz,
then swapping every other time would be about 22ms.

I am used to things that are locked on the start of vertical refresh, so all of this may mean nothing. It doesn’t hurt to try changing it though.