From b656b0aa5d41270fe60be245582f1ff6f1dbbb9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Mon, 1 Nov 2021 13:05:56 +0100 Subject: [PATCH] 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 --- hw/xwayland/xwayland-glamor.c | 6 ++++-- 1 file 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); }