How do I wait for vertical retrace?

Doug Larrick doug at
Mon May 5 08:04:59 PDT 2008

Johan Walles wrote:
> Hi!
> I would like to wait for vertical retrace in an X application.  How
> can I do that?
> The point would be to avoid flicker in my app by using double
> buffering and update the on-screen image during vertical retrace.
> I've been trying to Google this without any luck so far.  Help!

You can use DRM's drm_wait_vblank ioctl, or OpenGL's GLX_SGI_video_sync
extension, to wait for vblank.  Neither of these work on all hardware. 
MythTV, for example, tries both before falling back to non-vblank-synced
timing methods.  Also, recent versions of at least the Intel driver
require an active, visible OpenGL drawable in order for the interrupt
supporting both these methods to fire at all -- this was evidently a
power-saving change.


More information about the xorg mailing list