Waiting for vertical refresh on Intel 965 and 945 chips in recent git

Simon Farnsworth simon.farnsworth at onelan.co.uk
Thu Jun 7 10:00:49 PDT 2007


Hello,

We have an X11 client that needs to synchronise to VSync, so that it can
do its animation smoothly. This code has been working for a few years,
but does not work with a git version of Xorg from around a week ago on
the Intel 965 or Intel 945.

In the 7.2 release, I could use the DRM directly to wait for vertical
blanking, using the DRM_IOCTL_WAIT_VBLANK ioctl. The intel driver has
been changed to only enable the interrupt if 3D is in use, so I reworked
my code to use the GLX_SGI_video_sync extension to wait for VBlank.

I am now finding that the OpenGL based wait for VBlank also fails if the
window I create to get an OpenGL context is fully obscured;
glXWaitVideoSyncSGI returns 5 (GLX_BAD_CONTEXT). My code automatically
falls back to trying the DRM method, but DRM_IOCTL_WAIT_VBLANK returns
16 (EBUSY).

Is there any way for me to wait for VBlank that doesn't depend on having
a window at the top of the stack?

We're willing to custom patch anything to make this work (from the
kernel upwards).
-- 
Help would be appreciated,

Simon Farnsworth




More information about the xorg mailing list