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:
> > > > Michel, can you take a look at this?  vblank wait is working really
> > > > well for me with the latest bits, but I found what I think is a page
> > > > flip related bug on 965.
> >
> > No this isn't correct, it also needs to wait for scheduled non-flip
> > buffer swaps.
> >
> > Isn't this just a workaround for the lack of the 2D driver patch and not
> > necessary with it?
> 
> I'm not sure what 2D patch you mean (page flipping for 965 I suppose), 

No, the modeset ioctl call patch. I thought the vbl_waited/pending
fields were getting initialized and the only problem was the lack of
that.

> but clearly there's something wrong here since w/o this patch we end up doing 
> an 
> absolute wait on a 0 vblank count. :)  Maybe I need to initialize the 
> vbl_pending/vbl_waited values somewhere else instead?

Either that, or just disable this code in LOCK_HARDWARE() for the i965
driver I suppose, if it doesn't support scheduled buffer swaps.

Note that I'm not sure about the status of intel page flipping and
scheduled swaps on the current master/gem branches, it may be better to
hold off on adding those features until things have settled down there.


> > > > 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().


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


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to