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
