Re: [PATCH v2] UXA: Wait until a pageflip actually completes to report it.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 21, 2014 at 08:53:18AM -0700, Jamey Sharp wrote:
> UXA was reporting page-flip completion as soon as the flip was scheduled
> with the kernel, instead of waiting for the kernel to indicate that the
> flip had actually completed.
> 
> Moving the DRI2SwapComplete call to the right place fixes all of our
> Piglit tests for OML_sync_control when run on xf86-video-intel/UXA,
> aside from a bit of difficult-to-reproduce flakiness when using a
> divisor > 1.
> 
> This also eliminates a compile-time and run-time warning when built
> against an xserver with "Warn on DRI2SwapComplete with constant UST/MSC"
> applied.
> 
> v2: The drawable may have disappeared by the time the flip completes.
> Don't try to report swap completion in that case.
> 
> Signed-off-by: Jamey Sharp <jamey@xxxxxxxxxxx>
> Cc: Theo Hill <Theo0x48@xxxxxxxxx>
> Cc: Eric Anholt <eric@xxxxxxxxxx>
> Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> ---
> 
> I can experimentally confirm Chris' claim that this patch causes
> SwapBuffers to block once one swap is already outstanding, giving
> double-buffering behavior rather than the desired triple-buffering.
> 
> However, it only has an effect for full-screen windows, and only when
> not running under a compositor.
> 
> - If the window is not full-screen, UXA is already only double-buffered.
> - If full-screen, UXA is usually triple-buffered, but not reliably.
> - If run under a compositor, either the compositor crashes during my
>   test, or it still appears to be triple-buffered even with this patch.
> 
> If you want triple-buffering, NAK'ing this patch is clearly not the way
> to get it, since the driver already doesn't do it reliably.
> 
> Please merge this patch, which fixes two spec violations that make
> OML_sync_control unusable; and if you're concerned about uncomposited
> triple-buffering in UXA, please find a less awful way to get it.

Why not just change the default to double buffering? Or fix it
correctly?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux