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

Bug#364228: mesa-swx11-source: indirect rendering broken on 64-bit platforms



Package: mesa-swx11-source
Version: 6.4.1-0.4+ucko1
Severity: important
Tags: patch upstream

[XSF: when this patch is in, please bump xorg-server's build dependency
on mesa-swx11-source accordingly in order to pick up the fixes.]

As reported at https://bugs.freedesktop.org/show_bug.cgi?id=5835 and
https://bugs.freedesktop.org/show_bug.cgi?id=6419, the X server's
indirect rendering code (built from mesa-swx11-source) falls over on
64-bit systems, with the server reporting errors of the form

No matching visual for __GLcontextMode with visual class = N (N), nplanes = N

and libGL reporting corresponding errors of the form

3D driver claims to not support visual 0xN

The underlying problem seems to be data type mismatches (some due to
Mesa defaulting to the wrong thing in the absence of dix-config); I
was able to correct it with the small attached patch, merged from
three single-file Gentoo patches.  Could you please apply it, or one
of those cited in fd.o bug #5835 (which I didn't run across until
later)?

Thanks!

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable'), (300, 'unstable'), (300, 'testing')
Architecture: amd64 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16.9
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

-- no debconf information
--- mesa-6.4.1.orig/src/glx/x11/indirect_vertex_array.c
+++ mesa-6.4.1/src/glx/x11/indirect_vertex_array.c
@@ -530,7 +530,7 @@
 emit_DrawArrays_header_old( __GLXcontext * gc,
 			    struct array_state_vector * arrays,
 			    size_t * elements_per_request,
-			    size_t * total_requests,
+			    unsigned int * total_requests,
 			    GLenum mode, GLsizei count )
 {
     size_t command_size;
--- mesa-6.4.1.orig/src/mesa/main/glheader.h
+++ mesa-6.4.1/src/mesa/main/glheader.h
@@ -46,6 +46,9 @@
 #ifndef GLHEADER_H
 #define GLHEADER_H
 
+#ifdef HAVE_DIX_CONFIG_H
+#include "dix-config.h"
+#endif
 
 #if defined(XFree86LOADER) && defined(IN_MODULE)
 #include "xf86_ansic.h"
--- mesa-6.4.1.orig/src/mesa/drivers/dri/common/glcontextmodes.c
+++ mesa-6.4.1/src/mesa/drivers/dri/common/glcontextmodes.c
@@ -39,6 +39,9 @@
 # include "imports.h"
 # define __glXMemset  memset
 #else
+# if defined (HAVE_DIX_CONFIG_H)
+#  include <dix-config.h>
+# endif
 # include <X11/X.h>
 # include <GL/glx.h>
 # include "GL/glxint.h"

Reply to: