In driUnbindContext(), call the driver UnbindContext function even if both the draw and read drawables are NULL, since we may be dealing with a surfaceless context.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74563 --- src/mesa/drivers/dri/common/dri_util.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c index d09d50a..20b2c0b 100644 --- a/src/mesa/drivers/dri/common/dri_util.c +++ b/src/mesa/drivers/dri/common/dri_util.c @@ -572,15 +572,19 @@ static int driUnbindContext(__DRIcontext *pcp) if (pcp == NULL) return GL_FALSE; + /* + * Unbind the context even if pdp and prp are NULL, since + * the context may be surfaceless. + */ + pcp->driScreenPriv->driver->UnbindContext(pcp); + pdp = pcp->driDrawablePriv; prp = pcp->driReadablePriv; - /* already unbound */ + /* already unbound or surfaceless */ if (!pdp && !prp) return GL_TRUE; - pcp->driScreenPriv->driver->UnbindContext(pcp); - assert(pdp); if (pdp->refcount == 0) { /* ERROR!!! */ -- 1.9.rc1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev