debian/patches/179_glx_cleanup_drawables.patch | 45 +++++++++++++++++++++++++ debian/patches/series | 1 2 files changed, 46 insertions(+)
New commits: commit 7a73233990c99b96c0e4db5f7ef46b5432b44fd2 Author: Bryce Harrington <br...@bryceharrington.org> Date: Tue Aug 4 01:52:16 2009 -0700 Add patch 179 as well diff --git a/debian/patches/179_glx_cleanup_drawables.patch b/debian/patches/179_glx_cleanup_drawables.patch new file mode 100644 index 0000000..b959569 --- /dev/null +++ b/debian/patches/179_glx_cleanup_drawables.patch @@ -0,0 +1,45 @@ +commit 3020b1d43e34fca08cd51f7c7c8ed51497d49ef3 +Author: Michel Dänzer <daen...@vmware.com> +Date: Tue Jun 23 16:45:40 2009 +0200 + + glx: Clean up more thoroughly if the drawable of a current context goes away. + + Fixes crash when restarting compiz, due to cl->currentContexts[x] being stale. + +diff --git a/glx/glxext.c b/glx/glxext.c +index 520eb2e..a571ec9 100644 +--- a/glx/glxext.c ++++ b/glx/glxext.c +@@ -128,8 +128,31 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid) + + for (c = glxAllContexts; c; c = c->next) { + if (c->isCurrent && (c->drawPriv == glxPriv || c->readPriv == glxPriv)) { ++ int i; ++ + (*c->loseCurrent)(c); +- __glXFlushContextCache(); ++ c->isCurrent = GL_FALSE; ++ if (c == __glXLastContext) ++ __glXFlushContextCache(); ++ ++ for (i = 1; i < currentMaxClients; i++) { ++ if (clients[i]) { ++ __GLXclientState *cl = glxGetClient(clients[i]); ++ ++ if (cl->inUse) { ++ int j; ++ ++ for (j = 0; j < cl->numCurrentContexts; j++) { ++ if (cl->currentContexts[j] == c) ++ cl->currentContexts[j] = NULL; ++ } ++ } ++ } ++ } ++ ++ if (!c->idExists) { ++ __glXFreeContext(c); ++ } + } + if (c->drawPriv == glxPriv) + c->drawPriv = NULL; diff --git a/debian/patches/series b/debian/patches/series index 43496f5..4c07c9b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -33,3 +33,4 @@ fedora-pci-primary.diff 174_set_bg_pixmap_of_cow_to_none.patch 177_animated_cursor_change_master.patch 178_glx_flush_cache.patch +179_glx_cleanup_drawables.patch -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org