Revert "glx/dri: Fix DRI drawable release at MakeCurrent time"

This reverts commit 31b04e420b which
is also breaking KDE in some ways.

Fixes: #7674
Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19972>
(cherry picked from commit ea3f73ba85)
This commit is contained in:
Martin Roukala (né Peres) 2022-11-24 11:55:45 +02:00 committed by Eric Engestrom
parent ac18e931fa
commit e13d53e1fd
6 changed files with 6 additions and 6 deletions

View file

@ -1147,7 +1147,7 @@
"description": "Revert \"glx/dri: Fix DRI drawable release at MakeCurrent time\"", "description": "Revert \"glx/dri: Fix DRI drawable release at MakeCurrent time\"",
"nominated": true, "nominated": true,
"nomination_type": 2, "nomination_type": 2,
"resolution": 0, "resolution": 1,
"main_sha": null, "main_sha": null,
"because_sha": "31b04e420b0eb080084c6323066ea0b83929d59e" "because_sha": "31b04e420b0eb080084c6323066ea0b83929d59e"
}, },

View file

@ -121,7 +121,7 @@ dri2_bind_context(struct glx_context *context, struct glx_context *old,
pdraw = (struct dri2_drawable *) driFetchDrawable(context, draw); pdraw = (struct dri2_drawable *) driFetchDrawable(context, draw);
pread = (struct dri2_drawable *) driFetchDrawable(context, read); pread = (struct dri2_drawable *) driFetchDrawable(context, read);
driReleaseDrawables(old); driReleaseDrawables(context);
if (pdraw) if (pdraw)
dri_draw = pdraw->driDrawable; dri_draw = pdraw->driDrawable;

View file

@ -192,7 +192,7 @@ dri3_bind_context(struct glx_context *context, struct glx_context *old,
pdraw = (struct dri3_drawable *) driFetchDrawable(context, draw); pdraw = (struct dri3_drawable *) driFetchDrawable(context, draw);
pread = (struct dri3_drawable *) driFetchDrawable(context, read); pread = (struct dri3_drawable *) driFetchDrawable(context, read);
driReleaseDrawables(old); driReleaseDrawables(context);
if (pdraw) if (pdraw)
dri_draw = pdraw->loader_drawable.dri_drawable; dri_draw = pdraw->loader_drawable.dri_drawable;

View file

@ -490,7 +490,7 @@ releaseDrawable(const struct glx_display *priv, GLXDrawable drawable)
_X_HIDDEN void _X_HIDDEN void
driReleaseDrawables(struct glx_context *gc) 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) if (priv == NULL)
return; return;

View file

@ -436,7 +436,7 @@ drisw_bind_context(struct glx_context *context, struct glx_context *old,
pdraw = (struct drisw_drawable *) driFetchDrawable(context, draw); pdraw = (struct drisw_drawable *) driFetchDrawable(context, draw);
pread = (struct drisw_drawable *) driFetchDrawable(context, read); pread = (struct drisw_drawable *) driFetchDrawable(context, read);
driReleaseDrawables(old); driReleaseDrawables(context);
if (!psc->core->bindContext(context->driContext, if (!psc->core->bindContext(context->driContext,
pdraw ? pdraw->driDrawable : NULL, pdraw ? pdraw->driDrawable : NULL,

View file

@ -88,7 +88,7 @@ driwindows_bind_context(struct glx_context *context, struct glx_context *old,
pdraw = (struct driwindows_drawable *) driFetchDrawable(context, draw); pdraw = (struct driwindows_drawable *) driFetchDrawable(context, draw);
pread = (struct driwindows_drawable *) driFetchDrawable(context, read); pread = (struct driwindows_drawable *) driFetchDrawable(context, read);
driReleaseDrawables(old); driReleaseDrawables(&pcp->base);
if (pdraw == NULL || pread == NULL) if (pdraw == NULL || pread == NULL)
return GLXBadDrawable; return GLXBadDrawable;