Mesa (master): dri: Avoid swapbuffer throttling in glXCopySubBufferMESA

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Oct 5 13:20:01 UTC 2019


Module: Mesa
Branch: master
Commit: 396b41095944ea3675d30c0d47ca8c01db2b4c8f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=396b41095944ea3675d30c0d47ca8c01db2b4c8f

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Thu Oct  3 12:16:50 2019 -0400

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 <mdaenzer at redhat.com> # DRI3 only
Reviewed-by: Michel Dänzer <mdaenzer at redhat.com>

---

 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)




More information about the mesa-commit mailing list