Mesa (mesa_7_5_branch): Also release direct rendering resources in glXDestroyGLXPixmap.

Michel Dänzer daenzer at kemper.freedesktop.org
Fri Jun 19 16:02:43 UTC 2009


Module: Mesa
Branch: mesa_7_5_branch
Commit: 9dfce365c7f35ddea6d81b7f595ddcd6d35382a5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9dfce365c7f35ddea6d81b7f595ddcd6d35382a5

Author: Michel Dänzer <daenzer at vmware.com>
Date:   Fri Jun 19 11:19:07 2009 +0200

Also release direct rendering resources in glXDestroyGLXPixmap.

Fixes leak running compiz with direct rendering.

---

 src/glx/x11/glxcmds.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/glx/x11/glxcmds.c b/src/glx/x11/glxcmds.c
index ec3e69e..77471b8 100644
--- a/src/glx/x11/glxcmds.c
+++ b/src/glx/x11/glxcmds.c
@@ -869,6 +869,20 @@ PUBLIC void glXDestroyGLXPixmap(Display *dpy, GLXPixmap glxpixmap)
     req->glxpixmap = glxpixmap;
     UnlockDisplay(dpy);
     SyncHandle();
+
+#ifdef GLX_DIRECT_RENDERING
+    {
+	int screen;
+	__GLXdisplayPrivate *const priv = __glXInitialize(dpy);
+	__GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, glxpixmap, &screen);
+	__GLXscreenConfigs *psc = &priv->screenConfigs[screen];
+
+	if (pdraw != NULL) {
+	    (*pdraw->destroyDrawable) (pdraw);
+	    __glxHashDelete(psc->drawHash, glxpixmap);
+	}
+    }
+#endif
 }
 
 PUBLIC void glXSwapBuffers(Display *dpy, GLXDrawable drawable)




More information about the mesa-commit mailing list