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

Michel Dänzer michel at tungstengraphics.com
Fri Jun 8 08:26:55 PDT 2007


On Fri, 2007-06-08 at 17:24 +0200, Xavier Bestel wrote:
> On Fri, 2007-06-08 at 16:20 +0100, Torgeir Veimo wrote:
> > On 8 Jun 2007, at 12:18, Hamish Moffatt wrote:
> > 
> > > On Fri, Jun 08, 2007 at 08:23:05AM +0200, Michel Dänzer wrote:
> > >> On Thu, 2007-06-07 at 18:00 +0100, Simon Farnsworth wrote:
> > >>>
> > >>> 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).
> > >>
> > >> Yes, this is because the X server DRI layer now counts DRI windows
> > >> according to visibility, to allow e.g. page flipping to work with
> > >> multiple windows as long as only one of them is visible. So the intel
> > >> driver can't tell the difference between a window being invisible  
> > >> and it
> > >> not existing at all and disables the vblank interrupts.
> > >
> > > How is "3D in use" defined?
> > >
> > > MythTV uses DRM vertical blanking sync with Xv output; I wouldn't  
> > > say it
> > > uses 3D by any stretch of the imagination.
> > 
> > If the screensaver is disabled, as is often the case when a media  
> > player runs full screen, can't that be a toggle to always turn on  
> > vblank irqs?
> 
> Why can't vblank be enabled only when the DRM_IOCTL_WAIT_VBLANK ioctl is
> called ? 

That's the plan.

> Is that because OpenGL hangs on to it ?

Userland expectations for the behaviour of the counters is indeed what
makes implementing the plan non-trivial.


-- 
Earthling Michel Dänzer           |          http://tungstengraphics.com
Libre software enthusiast         |          Debian, X and DRI developer




More information about the xorg mailing list