[Intel-gfx] [PATCH] i915: add page flipping support

Jesse Barnes jbarnes at virtuousgeek.org
Wed Apr 22 05:00:18 CEST 2009


On Tue, 21 Apr 2009 19:48:39 -0700
Eric Anholt <eric at anholt.net> wrote:

> On Tue, 2009-04-14 at 15:22 -0700, Jesse Barnes wrote:
> > Add a new page flipping ioctl to the i915 driver, using KMS
> > functionality.
> > 
> > Internally, the new flip ioctl will use the mode_set_base function,
> > which will simply update the front buffer pointer, taking care to
> > pin the new buffer and unpin the old one.  This means userspace
> > needs to create an FB id for the new front buffer prior to calling
> > in.
> > 
> > The flip will take place at the next vblank period automatically
> > (since the display base regs are double buffered), and any drawing
> > to a buffer with a pending flip will be blocked at execbuf time
> > until the next vblank interrupt fires and runs its completion
> > handler.
> 
> What's ensuring that the rendering is complete before you queue the
> flip to the new buffer?  The lock breaking in list walking at idle is
> also making me uncomfortable.

Well we move it to the GTT domain before trying to flip it, is that not
sufficient?  As for the lock breaking, I may have screwed something up
with that change (there was code motion so I had to re-patch that
part), so please take a close look, there may be a better way to clean
it up.

-- 
Jesse Barnes, Intel Open Source Technology Center



More information about the Intel-gfx mailing list