According to Chris Wilson, the Intel driver has a horrifying kludge to get triple-buffering despite the swap_limit being set to only allow double-buffering by default. This kludge makes OML_sync_control unusable if the Intel driver goes into page-flipping mode.
Since triple-buffering is preferred for most applications, let's make it the default in the server and allow the drivers to quit lying to the X server about when swaps complete. I suggest this patch be back-ported to stable releases. Since the Intel driver, at least, is already forcing applications to use triple buffering regardless of their SwapLimit setting, it must be safe. Signed-off-by: Jamey Sharp <[email protected]> Signed-off-by: Theo Hill <[email protected]> Cc: Chris Wilson <[email protected]> Cc: Eric Anholt <[email protected]> Cc: Matt Dew <[email protected]> --- hw/xfree86/dri2/dri2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c index 61bf85e..bff41dc 100644 --- a/hw/xfree86/dri2/dri2.c +++ b/hw/xfree86/dri2/dri2.c @@ -217,7 +217,7 @@ DRI2AllocateDrawable(DrawablePtr pDraw) if (!ds->GetMSC || !(*ds->GetMSC) (pDraw, &ust, &pPriv->last_swap_target)) pPriv->last_swap_target = 0; - pPriv->swap_limit = 1; /* default to double buffering */ + pPriv->swap_limit = 2; /* default to triple buffering */ pPriv->last_swap_msc = 0; pPriv->last_swap_ust = 0; xorg_list_init(&pPriv->reference_list); -- 1.9.2 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
