[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'ubuntu'



 debian/patches/179_glx_cleanup_drawables.patch |   45 +++++++++++++++++++++++++
 debian/patches/series                          |    1 
 2 files changed, 46 insertions(+)

New commits:
commit 7a73233990c99b96c0e4db5f7ef46b5432b44fd2
Author: Bryce Harrington <bryce@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 <daenzer@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


Reply to: