On Fri, 10 Dec 2010 15:40:38 +0100
Mario Kleiner <[email protected]> wrote:

> It schedules an immediate copy-swap via blitting. Unfortunately the ddx 
> doesn't know about the swap_interval, so it still synchronizes the 
> execution of the blit to vsync via vline waits. That's tear-free, but it 
> depends on the location and size of the drawable and the current 
> position of the scanout if this will cause an immediate swap (if scanout 
> is outside the drawables area) or a vsync'ed swap. It's a bit undefined 
> behaviour for non-fullscreen drawables and it effectively enforces a 
> minimum swap interval of 1 for fullscreen drawables, which is not what 
> we want.

That's actually the problem; swapbufferswait isn't *quite* equivalent
to swap interval = 1, since you can potentially do multiple blits
before the scanline intercepts your rect(s).

But regardless, we should add an API option to allow blits to happen
immediately when swap_interval = 0 both with and without tear
avoidance.  I think Pauli's followup covers this (tearing swap limit 0
vs tear free swap limit 0).

-- 
Jesse Barnes, Intel Open Source Technology Center
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to