debian/changelog | 23 + debian/patches/03_fedora_glx_versioning.diff | 233 -------------- debian/patches/04_fedora_glx14-swrast.diff | 26 - debian/patches/114_dri2_make_sure_x_drawable_exists.patch | 47 -- debian/patches/series | 4 5 files changed, 18 insertions(+), 315 deletions(-)
New commits: commit 70e3e5a6169f0ffe4ccdc06ea785cdad24ab6972 Author: Bryce Harrington <[email protected]> Date: Thu Apr 22 17:25:30 2010 -0700 Target to lucid since this will go out with the release diff --git a/debian/changelog b/debian/changelog index 2fec97a..e1bc276 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -xorg-server (2:1.7.6-2ubuntu7) UNRELEASED; urgency=low +xorg-server (2:1.7.6-2ubuntu7) lucid; urgency=low * Drop 117_fix_crash_with_createglyphset.patch - Dupe of patch 110 @@ -15,7 +15,7 @@ xorg-server (2:1.7.6-2ubuntu7) UNRELEASED; urgency=low Clutter crash, but which introduced a memory leak. (Fixes #565981) - -- Bryce Harrington <[email protected]> Thu, 22 Apr 2010 16:59:00 -0700 + -- Bryce Harrington <[email protected]> Thu, 22 Apr 2010 17:24:38 -0700 xorg-server (2:1.7.6-2ubuntu6) lucid; urgency=low commit d39e7f8077869da396004d73586f26a5b4b4f3ef Author: Bryce Harrington <[email protected]> Date: Thu Apr 22 17:24:18 2010 -0700 Changelog entry explaining dropping of several patches diff --git a/debian/changelog b/debian/changelog index 5d81c29..2fec97a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,21 @@ xorg-server (2:1.7.6-2ubuntu7) UNRELEASED; urgency=low - * Drop 117_fix_crash_with_createglyphset.patch - dupe of patch 110 - - -- Bryce Harrington <[email protected]> Fri, 16 Apr 2010 09:34:39 -0700 + * Drop 117_fix_crash_with_createglyphset.patch + - Dupe of patch 110 + * Drop 03_fedora_glx_versioning.diff, 04_fedora_glx14-swrast.diff + - These patches were brought in by Debian to provide glx 1.4 support + which Fedora backported from xserver 1.8, however testing in + Ubuntu showed they caused a crash when closing Clutter apps (#550218), + and graphics corruption when opening windows. Dropping these patches + returns us to GLX 1.2, which has been found to be stable; Debian has + also dropped these two patches. + (Fixes #565903). + * Drop 114_dri2_make_sure_x_drawable_exists.patch + - This was an early attempt by upstream which fixed the aforementioned + Clutter crash, but which introduced a memory leak. + (Fixes #565981) + + -- Bryce Harrington <[email protected]> Thu, 22 Apr 2010 16:59:00 -0700 xorg-server (2:1.7.6-2ubuntu6) lucid; urgency=low commit 8f73893da75abbc6017918cc69367144820507a4 Author: Bryce Harrington <[email protected]> Date: Thu Apr 22 17:23:46 2010 -0700 Drop 114; with glx 1.4 gone this is no longer relevant diff --git a/debian/patches/114_dri2_make_sure_x_drawable_exists.patch b/debian/patches/114_dri2_make_sure_x_drawable_exists.patch deleted file mode 100644 index 4fb4b9e..0000000 --- a/debian/patches/114_dri2_make_sure_x_drawable_exists.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff --git a/glx/glxcmds.c b/glx/glxcmds.c -index 77afbf4..95a667a 100644 ---- a/glx/glxcmds.c -+++ b/glx/glxcmds.c -@@ -1086,6 +1086,7 @@ __glXDrawableInit(__GLXdrawable *drawable, - XID drawId, __GLXconfig *config) - { - drawable->pDraw = pDraw; -+ drawable->xDrawId = pDraw->id; - drawable->type = type; - drawable->drawId = drawId; - drawable->config = config; -diff --git a/glx/glxdrawable.h b/glx/glxdrawable.h -index 2a365c5..227bc95 100644 ---- a/glx/glxdrawable.h -+++ b/glx/glxdrawable.h -@@ -52,6 +52,7 @@ struct __GLXdrawable { - void (*waitGL)(__GLXdrawable *); - - DrawablePtr pDraw; -+ XID xDrawId; - XID drawId; - - /* -diff --git a/glx/glxdri2.c b/glx/glxdri2.c -index e791bf6..adfb18e 100644 ---- a/glx/glxdri2.c -+++ b/glx/glxdri2.c -@@ -102,12 +102,16 @@ __glXDRIdrawableDestroy(__GLXdrawable *drawable) - { - __GLXDRIdrawable *private = (__GLXDRIdrawable *) drawable; - const __DRIcoreExtension *core = private->screen->core; -- -+ DrawablePtr pDraw; -+ int err; -+ - (*core->destroyDrawable)(private->driDrawable); - - /* If the X window was destroyed, the dri DestroyWindow hook will - * aready have taken care of this, so only call if pDraw isn't NULL. */ -- if (drawable->pDraw != NULL) -+ err = dixLookupDrawable(&pDraw, drawable->xDrawId, serverClient, 0, -+ DixWriteAccess); -+ if (err == Success && pDraw) - DRI2DestroyDrawable(drawable->pDraw); - - __glXDrawableRelease(drawable); diff --git a/debian/patches/series b/debian/patches/series index d5ceb48..2263d50 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -2,9 +2,6 @@ ## Ubuntu patches start with 100. 001_fedora_extramodes.patch 02_Add-libgcrypt-and-libnettle-as-options-for-sha1.diff -# 03 and 04 are backports from git master -03_fedora_glx_versioning.diff -04_fedora_glx14-swrast.diff 05_only_call_gamma_set_if_nonnull.diff 06_dont_trap_access_to_timer_and_keyboard.diff 07-xfree86-fix-build-with-xv-disabled.diff @@ -26,7 +23,6 @@ 111_armel-drv-fallbacks.patch 112_xaa-fbcomposite-fix-negative-size.patch 113_quell_nouveau_aiglx.patch -114_dri2_make_sure_x_drawable_exists.patch 115_xext_fix_cursor_ref_counting.patch 116_fix_typos_in_swap_functions.patch 118_xkb_fix_garbage_init.patch commit 4ab913044a8cc326ee389f4b8fa6927f753656e1 Author: Bryce Harrington <[email protected]> Date: Thu Apr 22 17:23:16 2010 -0700 Drop glx 1.4 patches diff --git a/debian/patches/03_fedora_glx_versioning.diff b/debian/patches/03_fedora_glx_versioning.diff deleted file mode 100644 index c8a1c30..0000000 --- a/debian/patches/03_fedora_glx_versioning.diff +++ /dev/null @@ -1,233 +0,0 @@ -From 3ef4be8129f78afd5566a9e5d0fb901449dcb771 Mon Sep 17 00:00:00 2001 -From: Ian Romanick <[email protected]> -Date: Tue, 29 Sep 2009 16:43:43 -0700 -Subject: [PATCH] GLX: Enable GLX 1.4 on DRI2 - -this squashes 4 commits -(cherry picked from commit ad5c0d9efa47476ed5cf75c82265c73919e468b4) -(cherry picked from commit cb54cf1b3e8c4109541cfb698542c00f2473e731) -(cherry picked from commit 4c6bfa2c09ae2b0cffdf9211a6dfbcaefe0366b5) -(cherry picked from commit 9bf2ff4faf730913de3073f346646a8727be41d4) ---- - glx/glxcmds.c | 12 ++++++++---- - glx/glxdri2.c | 12 ++++++++++++ - glx/glxext.c | 8 +++++++- - glx/glxscreens.c | 15 ++++++++++++--- - glx/glxscreens.h | 11 +++++++++++ - glx/glxserver.h | 3 +++ - glx/indirect_texture_compression.c | 4 ++-- - include/protocol-versions.h | 2 +- - 8 files changed, 56 insertions(+), 11 deletions(-) - -diff --git a/glx/glxcmds.c b/glx/glxcmds.c -index b1061a8..ba4c123 100644 ---- a/glx/glxcmds.c -+++ b/glx/glxcmds.c -@@ -50,7 +50,6 @@ - #include "indirect_dispatch.h" - #include "indirect_table.h" - #include "indirect_util.h" --#include "protocol-versions.h" - - static int - validGlxScreen(ClientPtr client, int screen, __GLXscreen **pGlxScreen, int *err) -@@ -739,8 +738,8 @@ int __glXDisp_QueryVersion(__GLXclientState *cl, GLbyte *pc) - ** client if it wants to work with older clients; however, in this - ** implementation the server just returns its version number. - */ -- reply.majorVersion = SERVER_GLX_MAJOR_VERSION; -- reply.minorVersion = SERVER_GLX_MINOR_VERSION; -+ reply.majorVersion = glxMajorVersion; -+ reply.minorVersion = glxMinorVersion; - reply.length = 0; - reply.type = X_Reply; - reply.sequenceNumber = client->sequence; -@@ -2360,6 +2359,7 @@ int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc) - char *buf; - __GLXscreen *pGlxScreen; - int err; -+ char ver_str[16]; - - if (!validGlxScreen(client, req->screen, &pGlxScreen, &err)) - return err; -@@ -2369,7 +2369,11 @@ int __glXDisp_QueryServerString(__GLXclientState *cl, GLbyte *pc) - ptr = pGlxScreen->GLXvendor; - break; - case GLX_VERSION: -- ptr = pGlxScreen->GLXversion; -+ /* Return to the server version rather than the screen version -+ * to prevent confusion when they do not match. -+ */ -+ snprintf(ver_str, 16, "%d.%d", glxMajorVersion, glxMinorVersion); -+ ptr = ver_str; - break; - case GLX_EXTENSIONS: - ptr = pGlxScreen->GLXextensions; -diff --git a/glx/glxdri2.c b/glx/glxdri2.c -index ed7fb4c..ed7dc80 100644 ---- a/glx/glxdri2.c -+++ b/glx/glxdri2.c -@@ -685,6 +685,18 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - screen->base.GLXextensions); - } - -+ /* We're going to assume (perhaps incorrectly?) that all DRI2-enabled -+ * drivers support the required extensions for GLX 1.4. The extensions -+ * we're assuming are: -+ * -+ * - GLX_SGI_make_current_read (1.3) -+ * - GLX_SGIX_fbconfig (1.3) -+ * - GLX_SGIX_pbuffer (1.3) -+ * - GLX_ARB_multisample (1.4) -+ */ -+ screen->base.GLXmajor = 1; -+ screen->base.GLXminor = 4; -+ - screen->enterVT = pScrn->EnterVT; - pScrn->EnterVT = glxDRIEnterVT; - screen->leaveVT = pScrn->LeaveVT; -diff --git a/glx/glxext.c b/glx/glxext.c -index 19d70d4..9f9c0ed 100644 ---- a/glx/glxext.c -+++ b/glx/glxext.c -@@ -360,12 +360,18 @@ void GlxExtensionInit(void) - pScreen = screenInfo.screens[i]; - - for (p = __glXProviderStack; p != NULL; p = p->next) { -- if (p->screenProbe(pScreen) != NULL) { -+ __GLXscreen *glxScreen; -+ -+ glxScreen = p->screenProbe(pScreen); -+ if (glxScreen != NULL) { -+ if (glxScreen->GLXminor < glxMinorVersion) -+ glxMinorVersion = glxScreen->GLXminor; - LogMessage(X_INFO, - "GLX: Initialized %s GL provider for screen %d\n", - p->name, i); - break; - } -+ - } - - if (!p) -diff --git a/glx/glxscreens.c b/glx/glxscreens.c -index 7d29d31..674e2c6 100644 ---- a/glx/glxscreens.c -+++ b/glx/glxscreens.c -@@ -42,6 +42,7 @@ - #include "glxserver.h" - #include "glxutil.h" - #include "glxext.h" -+#include "protocol-versions.h" - - static int glxScreenPrivateKeyIndex; - static DevPrivateKey glxScreenPrivateKey = &glxScreenPrivateKeyIndex; -@@ -162,7 +163,8 @@ static const char GLServerExtensions[] = - ** supported across all screens in a multi-screen system. - */ - static char GLXServerVendorName[] = "SGI"; --static char GLXServerVersion[] = "1.2"; -+unsigned glxMajorVersion = SERVER_GLX_MAJOR_VERSION; -+unsigned glxMinorVersion = SERVER_GLX_MINOR_VERSION; - static char GLXServerExtensions[] = - "GLX_ARB_multisample " - "GLX_EXT_visual_info " -@@ -378,9 +380,17 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen) - pGlxScreen->pScreen = pScreen; - pGlxScreen->GLextensions = xstrdup(GLServerExtensions); - pGlxScreen->GLXvendor = xstrdup(GLXServerVendorName); -- pGlxScreen->GLXversion = xstrdup(GLXServerVersion); - pGlxScreen->GLXextensions = xstrdup(GLXServerExtensions); - -+ /* All GLX providers must support all of the functionality required for at -+ * least GLX 1.2. If the provider supports a higher version, the GLXminor -+ * version can be changed in the provider's screen-probe routine. For -+ * most providers, the screen-probe routine is the caller of this -+ * function. -+ */ -+ pGlxScreen->GLXmajor = 1; -+ pGlxScreen->GLXminor = 2; -+ - pGlxScreen->CloseScreen = pScreen->CloseScreen; - pScreen->CloseScreen = glxCloseScreen; - pGlxScreen->DestroyWindow = pScreen->DestroyWindow; -@@ -454,7 +464,6 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen) - void __glXScreenDestroy(__GLXscreen *screen) - { - xfree(screen->GLXvendor); -- xfree(screen->GLXversion); - xfree(screen->GLXextensions); - xfree(screen->GLextensions); - } -diff --git a/glx/glxscreens.h b/glx/glxscreens.h -index 3c1bdd4..bff4363 100644 ---- a/glx/glxscreens.h -+++ b/glx/glxscreens.h -@@ -161,6 +161,17 @@ struct __GLXscreen { - char *GLXversion; - char *GLXextensions; - -+ /** -+ * \name GLX version supported by this screen. -+ * -+ * Since the GLX version advertised by the server is for the whole server, -+ * the GLX protocol code uses the minimum version supported on all screens. -+ */ -+ /*...@{*/ -+ unsigned GLXmajor; -+ unsigned GLXminor; -+ /*...@}*/ -+ - Bool (*CloseScreen)(int index, ScreenPtr pScreen); - Bool (*DestroyWindow)(WindowPtr pWindow); - }; -diff --git a/glx/glxserver.h b/glx/glxserver.h -index 4aa8c2e..80f1b28 100644 ---- a/glx/glxserver.h -+++ b/glx/glxserver.h -@@ -248,4 +248,7 @@ extern int __glXImageSize(GLenum format, GLenum type, - GLint imageHeight, GLint rowLength, GLint skipImages, GLint skipRows, - GLint alignment); - -+extern unsigned glxMajorVersion; -+extern unsigned glxMinorVersion; -+ - #endif /* !__GLX_server_h__ */ -diff --git a/glx/indirect_texture_compression.c b/glx/indirect_texture_compression.c -index 25c6eb3..5f44d7b 100644 ---- a/glx/indirect_texture_compression.c -+++ b/glx/indirect_texture_compression.c -@@ -52,7 +52,7 @@ int __glXDisp_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyte *p - const GLenum target = *(GLenum *)(pc + 0); - const GLint level = *(GLint *)(pc + 4); - GLint compsize = 0; -- char *answer, answerBuffer[200]; -+ char *answer = NULL, answerBuffer[200]; - - CALL_GetTexLevelParameteriv(GET_DISPATCH(), (target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &compsize)); - -@@ -92,7 +92,7 @@ int __glXDispSwap_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyt - const GLenum target = (GLenum) bswap_32( *(int *)(pc + 0) ); - const GLint level = (GLint ) bswap_32( *(int *)(pc + 4) ); - GLint compsize = 0; -- char *answer, answerBuffer[200]; -+ char *answer = NULL, answerBuffer[200]; - - CALL_GetTexLevelParameteriv(GET_DISPATCH(), (target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, &compsize)); - -diff --git a/include/protocol-versions.h b/include/protocol-versions.h -index da9770c..d688c66 100644 ---- a/include/protocol-versions.h -+++ b/include/protocol-versions.h -@@ -61,7 +61,7 @@ - - /* GLX */ - #define SERVER_GLX_MAJOR_VERSION 1 --#define SERVER_GLX_MINOR_VERSION 2 -+#define SERVER_GLX_MINOR_VERSION 4 - - /* Xinerama */ - #define SERVER_PANORAMIX_MAJOR_VERSION 1 --- -1.6.5.rc2 - diff --git a/debian/patches/04_fedora_glx14-swrast.diff b/debian/patches/04_fedora_glx14-swrast.diff deleted file mode 100644 index 2c51802..0000000 --- a/debian/patches/04_fedora_glx14-swrast.diff +++ /dev/null @@ -1,26 +0,0 @@ -From 25a0107768c9f25e8edc5e423ca8b1d0813f2d04 Mon Sep 17 00:00:00 2001 -From: Adam Jackson <[email protected]> -Date: Tue, 24 Nov 2009 13:38:46 -0500 -Subject: [PATCH] Enable GLX 1.4 for swrast - ---- - glx/glxdriswrast.c | 3 +++ - 1 files changed, 3 insertions(+), 0 deletions(-) - -diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c -index 44f658f..20f9f90 100644 ---- a/glx/glxdriswrast.c -+++ b/glx/glxdriswrast.c -@@ -510,6 +510,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen) - - __glXScreenInit(&screen->base, pScreen); - -+ screen->base.GLXmajor = 1; -+ screen->base.GLXminor = 4; -+ - LogMessage(X_INFO, - "AIGLX: Loaded and initialized %s\n", filename); - --- -1.6.5.2 - -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

