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