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

xorg-server: Changes to 'debian-unstable'



 debian/changelog                             |    4 
 debian/patches/03_fedora_glx_versioning.diff |  233 ---------------------------
 debian/patches/04_fedora_glx14-swrast.diff   |   26 ---
 debian/patches/series                        |    3 
 4 files changed, 4 insertions(+), 262 deletions(-)

New commits:
commit f0b4835e02bf18fb90342d30446f1d77cb8ce00e
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Apr 26 21:09:14 2010 +0200

    Drop the GLX 1.4 patches to fix server crashes with DRI2 (closes: #567677).

diff --git a/debian/changelog b/debian/changelog
index 56b8ad8..b20d79d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,10 @@ xorg-server (2:1.7.6.901-4) UNRELEASED; urgency=low
      - Point to the complete text of the GPL in debian/copyright.
   * Fix typo in 10-mouse.conf: s/Mouse/Pointer/ (Closes: #579130).
 
+  [ Julien Cristau ]
+  * Drop the GLX 1.4 patches to fix server crashes with DRI2 (closes:
+    #567677).
+
  -- Timo Aaltonen <tjaalton@ubuntu.com>  Tue, 20 Apr 2010 17:46:32 +0300
 
 xorg-server (2:1.7.6.901-3) unstable; urgency=low
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 <ian.d.romanick@intel.com>
-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 <ajax@redhat.com>
-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
-
diff --git a/debian/patches/series b/debian/patches/series
index 2d94abf..36c9720 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


Reply to: