summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Jackson <ajax@fedoraproject.org>2008-04-09 14:49:49 +0000
committerAdam Jackson <ajax@fedoraproject.org>2008-04-09 14:49:49 +0000
commitb978becd89c22eb70a8ea75e31fdffaeffc4413b (patch)
tree0cc56452b7bfb49d07000939716dbbddc703973d
parent730bf4911d9d4cc50c4e6205036b7f365599f294 (diff)
downloadmesa-b978becd89c22eb70a8ea75e31fdffaeffc4413b.tar.gz
mesa-b978becd89c22eb70a8ea75e31fdffaeffc4413b.tar.xz
mesa-b978becd89c22eb70a8ea75e31fdffaeffc4413b.zip
- mesa-7.1-visual-crash.patch: Fix a segfault if DRI unavailable.
- mesa-7.1-fbconfig-fix.patch: Fix fbconfig comparisons.
-rw-r--r--mesa-7.1-dri2.patch12
-rw-r--r--mesa-7.1-fbconfig-fix.patch52
-rw-r--r--mesa-7.1-visual-crash.patch51
-rw-r--r--mesa.spec1
4 files changed, 116 insertions, 0 deletions
diff --git a/mesa-7.1-dri2.patch b/mesa-7.1-dri2.patch
new file mode 100644
index 0000000..dd62911
--- /dev/null
+++ b/mesa-7.1-dri2.patch
@@ -0,0 +1,12 @@
+diff -up mesa-20080331/src/glx/x11/dri2.c.jx mesa-20080331/src/glx/x11/dri2.c
+--- mesa-20080331/src/glx/x11/dri2.c.jx 2008-03-31 16:58:48.000000000 -0400
++++ mesa-20080331/src/glx/x11/dri2.c 2008-04-09 10:15:59.000000000 -0400
+@@ -37,7 +37,7 @@
+ #include <X11/extensions/extutil.h>
+ #include "glheader.h"
+ #include "xf86drm.h"
+-#include "dri2proto.h"
++#include <X11/extensions/dri2proto.h>
+ #include "dri2.h"
+
+ static char dri2ExtensionName[] = DRI2_NAME;
diff --git a/mesa-7.1-fbconfig-fix.patch b/mesa-7.1-fbconfig-fix.patch
new file mode 100644
index 0000000..b054a4a
--- /dev/null
+++ b/mesa-7.1-fbconfig-fix.patch
@@ -0,0 +1,52 @@
+From 2771862adcbc163c0a3f3eaaf4b58c658e72f680 Mon Sep 17 00:00:00 2001
+From: Jie Luo <clotho67@gmail.com>
+Date: Tue, 08 Apr 2008 23:17:06 +0000
+Subject: Handle fbconfig comparison correctly for attributes the X server didn't send.
+
+---
+diff --git a/src/glx/x11/dri_glx.c b/src/glx/x11/dri_glx.c
+index fd10047..70873c2 100644
+--- a/src/glx/x11/dri_glx.c
++++ b/src/glx/x11/dri_glx.c
+@@ -520,13 +520,13 @@ static const struct { unsigned int attrib, offset; } attribMap[] = {
+ static int
+ scalarEqual(__GLcontextModes *mode, unsigned int attrib, unsigned int value)
+ {
+- unsigned int driValue;
++ unsigned int glxValue;
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(attribMap); i++)
+ if (attribMap[i].attrib == attrib) {
+- driValue = *(unsigned int *) ((char *) mode + attribMap[i].offset);
+- return driValue == value;
++ glxValue = *(unsigned int *) ((char *) mode + attribMap[i].offset);
++ return glxValue == GLX_DONT_CARE || glxValue == value;
+ }
+
+ return GL_TRUE; /* Is a non-existing attribute equal to value? */
+@@ -572,7 +572,8 @@ driConfigEqual(const __DRIcoreExtension *core,
+ glxValue |= GLX_TEXTURE_2D_BIT_EXT;
+ if (value & __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT)
+ glxValue |= GLX_TEXTURE_RECTANGLE_BIT_EXT;
+- if (glxValue != modes->bindToTextureTargets)
++ if (modes->bindToTextureTargets != GLX_DONT_CARE &&
++ glxValue != modes->bindToTextureTargets)
+ return GL_FALSE;
+ break;
+
+diff --git a/src/glx/x11/glcontextmodes.c b/src/glx/x11/glcontextmodes.c
+index 58c548a..2a8e48d 100644
+--- a/src/glx/x11/glcontextmodes.c
++++ b/src/glx/x11/glcontextmodes.c
+@@ -415,7 +415,7 @@ _gl_context_modes_create( unsigned count, size_t minimum_size )
+ (*next)->bindToTextureRgb = GLX_DONT_CARE;
+ (*next)->bindToTextureRgba = GLX_DONT_CARE;
+ (*next)->bindToMipmapTexture = GLX_DONT_CARE;
+- (*next)->bindToTextureTargets = 0;
++ (*next)->bindToTextureTargets = GLX_DONT_CARE;
+ (*next)->yInverted = GLX_DONT_CARE;
+
+ next = & ((*next)->next);
+--
+cgit v0.7.2-37-g538c
diff --git a/mesa-7.1-visual-crash.patch b/mesa-7.1-visual-crash.patch
new file mode 100644
index 0000000..eff9e80
--- /dev/null
+++ b/mesa-7.1-visual-crash.patch
@@ -0,0 +1,51 @@
+From c016f329abb3d638442bf0b0f27d8f34ebf54f86 Mon Sep 17 00:00:00 2001
+From: Kristian Høgsberg <krh@redhat.com>
+Date: Tue, 08 Apr 2008 22:26:24 +0000
+Subject: Only convert configs if screen creation was successful.
+
+Thanks to Adam Jackson for pointing it out.
+---
+diff --git a/progs/demos/Makefile b/progs/demos/Makefile
+index 456bd4a..01b76ad 100644
+--- a/progs/demos/Makefile
++++ b/progs/demos/Makefile
+@@ -13,7 +13,7 @@ OSMESA32_LIBS = -L$(TOP)/$(LIB_DIR) -lglut -lOSMesa32 -lGLU -lGL $(APP_LIB_DEPS)
+
+ LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME)
+
+-LIBS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) $(APP_LIB_DEPS)
++LIBS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) $(APP_LIB_DEPS) -lX11 -lXi -lXmu
+
+ PROGS = \
+ arbfplight \
+diff --git a/src/glx/x11/dri_glx.c b/src/glx/x11/dri_glx.c
+index 004af0b..fd10047 100644
+--- a/src/glx/x11/dri_glx.c
++++ b/src/glx/x11/dri_glx.c
+@@ -786,14 +786,16 @@ CallCreateNewScreen(Display *dpy, int scrn, __GLXscreenConfigs *psc,
+ & driver_configs,
+ psc);
+
+- psc->configs =
+- driConvertConfigs(psc->core,
+- psc->configs,
+- driver_configs);
+- psc->visuals =
+- driConvertConfigs(psc->core,
+- psc->visuals,
+- driver_configs);
++ if (psp) {
++ psc->configs =
++ driConvertConfigs(psc->core,
++ psc->configs,
++ driver_configs);
++ psc->visuals =
++ driConvertConfigs(psc->core,
++ psc->visuals,
++ driver_configs);
++ }
+ }
+ }
+ }
+--
+cgit v0.7.2-37-g538c
diff --git a/mesa.spec b/mesa.spec
index 517b925..80659e9 100644
--- a/mesa.spec
+++ b/mesa.spec
@@ -50,6 +50,7 @@ BuildRequires: libXext-devel
BuildRequires: freeglut-devel
BuildRequires: libXfixes-devel
BuildRequires: libXdamage-devel
+BuildRequires: libXi-devel
%description
Mesa