From: Kenneth Graunke Date: Thu, 3 Oct 2019 16:16:50 +0000 (-0400) Subject: dri: Avoid swapbuffer throttling in glXCopySubBufferMESA X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=396b41095944ea3675d30c0d47ca8c01db2b4c8f;p=mesa.git dri: Avoid swapbuffer throttling in glXCopySubBufferMESA 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 --- 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)