Constant Frame Rate

hello,

My frame rate is stuck at 60 fps no matter what I do. How can I tell OpenGL to display the frame buffer without waiting for a vertical refresh signal?

I used to use this code to wait before displaying a frame.

while(1) { if (inp(0x3da)&8 == 8) break; }

Apparently, OpenGL is doing this for me whether I want it or not. How do I turn it off?

Thanks for any help.

Use WGL_EXT_swap_control. If you set swap hintto 0 you will disable vsync, with 1 (or higher, but that’s rarely used) you will enable it.

Yes, that extension is present on my card, and I’m setting it using wglSwapIntervalEXT(0), but my frame-rate stays at 60. Can you think of any reason why this will not work?

If I disable double-buffering, frame-rate jumps to over 1000 fps.

Thanks.

Turn off vsync in driver settings pages.

Thanks, yooyo, I’ve tried that also with no luck.

Maybe my card (Nvidia) has an issue with this feature on a notebook? I’ll continue to look into that.

I am guessing that OpenGL does not care about vsync at all, and it is managed through Windows Wgl.

At least I can see an approximation of the true frame-rate by disabling double-buffer. This was my ultimate goal anyway, as I do not expect any of my apps to be released without double-buffering and vsync on.

Try another drivers. Visit www.laptopvideo2go.com

This is very confusing…

while(1) { if (inp(0x3da)&8 == 8) break; }

I used such code 10 years ago under DOS when I play with graphics programming. I think it’s not working under Windows.

I would say your Control Panel driver settings override anything you set in OpenGL, so you must
disable them there first.

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