Wait for VerticalBlank and triple-buffer


I would like to sync my application with the vertical-blank: I know it is possible to enable it by driver-settings, but I wanto to know how can I enable it via-software.

And then, If I want to switch to triple buffer, how can I do it??


Search for “Vertical retrace” in the archive.

As far as I know OpenGL only supports doublebuffering.


Driver must be set to allow SW control wait for vertical blank behaviour. Then look here http://oss.sgi.com/projects/ogl-sample/registry/EXT/wgl_swap_control.txt

Triple buffering is not an OpenGL feature. I know of no implementation doing this, and if, this wouldn’t be a user controllable feature, but done through SwapBuffers.
If you need additional color and or depth buffers to draw stuff on, look for p-buffers on the above site.

The OpenGL API only supports double buffering. However any OpenGL implementation is free to use tripple buffering internaly when it sees fit.

For instance you can force OpenGL tripplebuffering in certain Radeon drivers.

Older Radeon drivers (before the user control option) gave you triple buffering for fullscreen apps, up to a certain maximum resolution I believe, and double buffering for windowed apps.

I’ve asked for a WGL_ARB_pixel_format extension a while ago that would have fully exposed triple buffering.