From e13d53e1fdb8d7ae80901b66248e84ecc6dd9cfe Mon Sep 17 00:00:00 2001 From: =?utf8?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=utf8 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: (cherry picked from commit ea3f73ba85be46dcb9712b43fef52b09cfae643b) --- .pick_status.json | 2 +- 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 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index c88e072..a9dd479 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1147,7 +1147,7 @@ "description": "Revert \"glx/dri: Fix DRI drawable release at MakeCurrent time\"", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "31b04e420b0eb080084c6323066ea0b83929d59e" }, diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index eb49ac5..1ce4783 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 abec1ce..e8996dd 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 bf14c91..94e264c 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 67a2edf..9a99d3e 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -436,7 +436,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 8c21c5e..3eb961d 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; -- 2.7.4