From ea3f73ba85be46dcb9712b43fef52b09cfae643b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Roukala=20=28n=C3=A9=20Peres=29?= Date: Thu, 24 Nov 2022 11:55:45 +0200 Subject: [PATCH] Revert "glx/dri: Fix DRI drawable release at MakeCurrent time" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 31b04e420b0eb080084c6323066ea0b83929d59e which is also breaking KDE in some ways. Fixes: #7674 Acked-by: Michel Dänzer Acked-by: Tapani Pälli Acked-by: Adam Jackson Signed-off-by: Martin Roukala (né Peres) Part-of: --- src/glx/dri2_glx.c | 2 +- src/glx/dri3_glx.c | 2 +- src/glx/dri_common.c | 2 +- src/glx/drisw_glx.c | 2 +- src/glx/driwindows_glx.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index eb49ac5ea1b..1ce47832c62 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -121,7 +121,7 @@ dri2_bind_context(struct glx_context *context, struct glx_context *old, pdraw = (struct dri2_drawable *) driFetchDrawable(context, draw); pread = (struct dri2_drawable *) driFetchDrawable(context, read); - driReleaseDrawables(old); + driReleaseDrawables(context); if (pdraw) dri_draw = pdraw->driDrawable; diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c index abec1ce6baf..e8996dd5e27 100644 --- a/src/glx/dri3_glx.c +++ b/src/glx/dri3_glx.c @@ -192,7 +192,7 @@ dri3_bind_context(struct glx_context *context, struct glx_context *old, pdraw = (struct dri3_drawable *) driFetchDrawable(context, draw); pread = (struct dri3_drawable *) driFetchDrawable(context, read); - driReleaseDrawables(old); + driReleaseDrawables(context); if (pdraw) dri_draw = pdraw->loader_drawable.dri_drawable; diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c index bf14c919bf6..94e264cc07f 100644 --- a/src/glx/dri_common.c +++ b/src/glx/dri_common.c @@ -490,7 +490,7 @@ releaseDrawable(const struct glx_display *priv, GLXDrawable drawable) _X_HIDDEN void driReleaseDrawables(struct glx_context *gc) { - const struct glx_display *priv = (gc && gc->psc) ? gc->psc->display : NULL; + const struct glx_display *priv = gc->psc->display; if (priv == NULL) return; diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index a459ec863e7..e90f4efbab4 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -440,7 +440,7 @@ drisw_bind_context(struct glx_context *context, struct glx_context *old, pdraw = (struct drisw_drawable *) driFetchDrawable(context, draw); pread = (struct drisw_drawable *) driFetchDrawable(context, read); - driReleaseDrawables(old); + driReleaseDrawables(context); if (!psc->core->bindContext(context->driContext, pdraw ? pdraw->driDrawable : NULL, diff --git a/src/glx/driwindows_glx.c b/src/glx/driwindows_glx.c index 8c21c5ee58a..3eb961dae3d 100644 --- a/src/glx/driwindows_glx.c +++ b/src/glx/driwindows_glx.c @@ -88,7 +88,7 @@ driwindows_bind_context(struct glx_context *context, struct glx_context *old, pdraw = (struct driwindows_drawable *) driFetchDrawable(context, draw); pread = (struct driwindows_drawable *) driFetchDrawable(context, read); - driReleaseDrawables(old); + driReleaseDrawables(&pcp->base); if (pdraw == NULL || pread == NULL) return GLXBadDrawable;