From: Michel D. <mi...@tu...> - 2008-06-24 06:55:21
|
On Tue, 2008-06-24 at 08:50 +0200, Michel Dänzer wrote: > On Mon, 2008-06-23 at 11:02 -0700, Jesse Barnes wrote: > > On Monday, June 23, 2008 12:51 am Michel Dänzer wrote: > > > On Fri, 2008-06-20 at 14:27 -0700, Jesse Barnes wrote: > > > > On Friday, June 20, 2008 2:09 pm Jesse Barnes wrote: > > > > > > I've been testing with the attached pre- & post-modeset ioctl patch to > > > > > the 2D driver. > > > > > > That one looks good; if anything, maybe slightly too careful about > > > omitting redundant ioctl calls, but better safe than sorry I guess. :) > > > > > > > Oops, I've also been testing with this. > > > > > > Yeah, that driver workaround should definitely no longer be necessary. > > > > Ok, thanks for checking. Though in looking at the pre- & post-modeset code > > again, I'm not sure what we have is optimal. The main reason for it is to > > prevent the user visible vblank count from going backwards, so it seems like > > we could just add the pre-modeset value to the post-modeset value and be done > > with it, rather than treating mode set like a wraparound (which will cause > > our counter to wraparound much more quickly). > > It isn't always treated as a workaround. Only if the driver counter has > moved backwards does it compensate for the resulting spurious wraparound > in drm_update_vblank_count(). Forgot to add: This works as expected for me, whereas the previous pre/post-modeset handling didn't (the counter sometimes ended up so far off what it was supposed to be that vblank wait ioctls would have hit the 3 second timeout, except that never actually happens in the X server due to getting constantly interrupted by the smart scheduler's SIGALRM, resulting in an infinite loop). -- Earthling Michel Dänzer | http://tungstengraphics.com Libre software enthusiast | Debian, X and DRI developer |