[Intel-gfx] [RFC] DRI2 swapbuffers (yes yet again)

Jesse Barnes jbarnes at virtuousgeek.org
Thu Apr 30 23:39:57 CEST 2009


On Fri, 1 May 2009 00:25:54 +0300
Ville Syrjälä <syrjala at sci.fi> wrote:
> > The completion won't happen until at least 'interval' frames have
> > passed since the flip was queued, so I think the semantics match?
> 
> Well I guess it satisfies the requirement that flips will never happen
> less than interval frames apart but if the application is flipping at
> a slower rate anyway you still delay each flip by interval frames even
> though there is no real need to do so. So it increases the latency a
> bit. Also if/when you add support for queueing multiple flips the code
> needs to be changed anyway to use the previous flip rather than when
> the current flip was queued as the reference.

Ah yeah I see what you mean, so if the app renders a frame and then
queues a flip to happen in two refreshes, but doesn't queue its next
frame until one refresh after the last one, you'll get a stutter, with 2
refreshes between the first two frames, and 3 between the next two.

If the app checks the frame count though, it could compensate and lower
its frame frequency to something it can render at a fixed rate, as well
as sending in a proper interval value.

> > > And as a final missing piece I would mention interlaced output
> > > with proper field parity, but I'm not sure if you're interested
> > > in such things for this API.
> > 
> > We could treat the 'interval' as meaning odd/even in that case.
> > I.e. an interval of 1 would mean 'next field' and 2 would mean
> > 'start of next frame', but yeah there's not much support for
> > interlacing in the kernel atm.
> 
> What's needed is rather next top field or next bottom field. If you
> combine that with supporting interval (should be useful when queueuing
> up several frames using 3:2 pulldown sequence) then there seems to be
> a need for something more than just a single number.

Ok.  I'd better add whatever's needed to the ioctl now so we don't have
to make a new one later.  You think just an odd/even field flag would be
sufficient?

-- 
Jesse Barnes, Intel Open Source Technology Center



More information about the Intel-gfx mailing list