From 396b41095944ea3675d30c0d47ca8c01db2b4c8f Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Thu, 3 Oct 2019 12:16:50 -0400 Subject: [PATCH] dri: Avoid swapbuffer throttling in glXCopySubBufferMESA MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We were supplying __DRI2_THROTTLE_SWAPBUFFER, rather than the obvious choice of __DRI2_THROTTLE_COPYSUBBUFFER. This meant that we hit the swap-based frame throttling. glXCopySubBuffer doesn't seem like it's intended to be a frame boundary, so we'd like to avoid this throttling. Tested-by: Michel Dänzer # DRI3 only Reviewed-by: Michel Dänzer --- src/glx/dri2_glx.c | 2 +- src/loader/loader_dri3_helper.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index d2a9c881357..9c222d81312 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -599,7 +599,7 @@ __dri2CopySubBuffer(__GLXDRIdrawable *pdraw, int x, int y, flags = __DRI2_FLUSH_DRAWABLE; if (flush) flags |= __DRI2_FLUSH_CONTEXT; - dri2Flush(psc, ctx, priv, flags, __DRI2_THROTTLE_SWAPBUFFER); + dri2Flush(psc, ctx, priv, flags, __DRI2_THROTTLE_COPYSUBBUFFER); region = XFixesCreateRegion(psc->base.dpy, &xrect, 1); DRI2CopyRegion(psc->base.dpy, pdraw->xDrawable, region, diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c index 90c55436cf7..be33575e1a8 100644 --- a/src/loader/loader_dri3_helper.c +++ b/src/loader/loader_dri3_helper.c @@ -763,7 +763,7 @@ loader_dri3_copy_sub_buffer(struct loader_dri3_drawable *draw, if (flush) flags |= __DRI2_FLUSH_CONTEXT; - loader_dri3_flush(draw, flags, __DRI2_THROTTLE_SWAPBUFFER); + loader_dri3_flush(draw, flags, __DRI2_THROTTLE_COPYSUBBUFFER); back = dri3_find_back_alloc(draw); if (!back) -- 2.30.2