summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <mdaenzer@redhat.com>2021-11-01 13:05:56 +0100
committerMichel Dänzer <michel@daenzer.net>2021-11-04 09:54:23 +0000
commitb656b0aa5d41270fe60be245582f1ff6f1dbbb9c (patch)
tree91fec23c43a230d3210efa1e617d7fce114cfcf5
parent0099412ea4347b02e61ea21946f309f2535cc07b (diff)
xwayland: Store EGLContext pointer in lastGLContext
We were storing the pointer to struct glamor_context. However, glamor itself is storing the EGLContext pointer since the commit below. Since the two values could never be equal, this resulted in constant superfluous eglMakeCurrent calls. The implicit glFlush triggered by those couldn't be good for performance. Fixes: 7c88977d338a "glamor: Store the actual EGL/GLX context pointer in lastGLContext" Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
-rw-r--r--hw/xwayland/xwayland-glamor.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c
index 2729e8747..55a41fae1 100644
--- a/hw/xwayland/xwayland-glamor.c
+++ b/hw/xwayland/xwayland-glamor.c
@@ -58,10 +58,12 @@ glamor_egl_make_current(struct glamor_context *glamor_ctx)
void
xwl_glamor_egl_make_current(struct xwl_screen *xwl_screen)
{
- if (lastGLContext == xwl_screen->glamor_ctx)
+ EGLContext ctx = xwl_screen->glamor_ctx->ctx;
+
+ if (lastGLContext == ctx)
return;
- lastGLContext = xwl_screen->glamor_ctx;
+ lastGLContext = ctx;
xwl_screen->glamor_ctx->make_current(xwl_screen->glamor_ctx);
}