Hello community,

here is the log from the commit of package Mesa for openSUSE:Factory
checked in at Thu Sep 1 13:33:26 CEST 2011.



--------
--- Mesa/Mesa.changes   2011-07-28 09:16:44.000000000 +0200
+++ /mounts/work_src_done/STABLE/Mesa/Mesa.changes      2011-08-09 
02:55:34.000000000 +0200
@@ -1,0 +2,19 @@
+Tue Aug  9 00:51:28 UTC 2011 - [email protected]
+
+- add fix for bfo #28125 (DRI2 prevents indirect glx)
+
+-------------------------------------------------------------------
+Tue Aug  2 13:05:58 UTC 2011 - [email protected]
+
+- Obsolete Mesa-nouveau3d (included in standard Mesa package now)
+- Also nuke from baselibs.conf
+
+-------------------------------------------------------------------
+Fri Jul 29 10:10:31 UTC 2011 - [email protected]
+
+- Update to Mesa 7.11-rc3
+- U_Mesa-7.11-llvm3.patch: fix compatibility with llvm 3.0 (and pre-releases)
+- gallium is now required for r300, r600
+- nouveau is now built by default (except on < OS11.3)
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
  MesaLib-7.10.3.tar.bz2
  egl-buildfix.diff
  libdrm-2.4.26-nouveau.diff

New:
----
  MesaLib-7.11-rc3.tar.bz2
  U_Mesa-7.11-llvm3.patch
  U_glx-ignore-BadRequest-errors-from-DRI2Connect.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ Mesa.spec ++++++
--- /var/tmp/diff_new_pack.TbKdLq/_old  2011-09-01 12:10:06.000000000 +0200
+++ /var/tmp/diff_new_pack.TbKdLq/_new  2011-09-01 12:10:06.000000000 +0200
@@ -17,25 +17,20 @@
 
 # norootforbuild
 
-%define enable_nouveau_gallium 1
-%define enable_radeon_gallium 1
+%define _version 7.11-rc3
 
-%define _version 7.10.3
-
-Version:        7.10.3
-Release:        14
+Version:        7.11
+Release:        1
 
 Name:           Mesa
 BuildRequires:  gcc-c++ libdrm-devel libexpat-devel pkgconfig python-base 
xorg-x11-devel
-BuildRequires:  bison flex libtalloc-devel libxml2-python
-%if 0%{?suse_version} > 1020
-BuildRequires:  fdupes
-%endif
+BuildRequires:  bison fdupes flex libtalloc-devel libxml2-python llvm-devel
 Url:            http://www.mesa3d.org
 License:        MIT License (or similar)
 Group:          System/Libraries
 Provides:       xorg-x11-Mesa = %{version} intel-i810-Mesa = %{version} Mesa7 
= %{version}
 Obsoletes:      xorg-x11-Mesa < %{version} intel-i810-Mesa < %{version} Mesa7 
< %{version}
+Obsoletes:      Mesa-nouveau3d
 AutoReqProv:    on
 # bug437293
 %ifarch ppc64
@@ -50,11 +45,11 @@
 Source4:        manual-pages.tar.bz2
 Source5:        drirc
 # to be upstreamed
-Patch8:         egl-buildfix.diff
 Patch9:         u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch
 Patch11:        u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch
-Patch12:        libdrm-2.4.26-nouveau.diff
 # already upstream
+Patch13:        U_Mesa-7.11-llvm3.patch
+Patch14:        U_glx-ignore-BadRequest-errors-from-DRI2Connect.diff
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
@@ -113,26 +108,6 @@
 --------
     Brian Paul
 
-%package nouveau3d
-License:        MIT License (or similar)
-Requires:       Mesa = %version xorg-x11-driver-video-nouveau
-Summary:        Experimental 3D driver for nouveau driver
-Group:          System/Libraries
-
-%description nouveau3d
-This is the 3D driver for open source nouveau driver. It uses Gallium3d 
architecture within Mesa.
-
-Note:
-This driver is in a very experimental state. So it is not recommend that you 
use it.
-Bug reports using this driver are not supported by developers.
-
-Authors:
---------
-    Brian Paul
-    Pekka Paalanen
-    Ben Skeggs
-    Francisco Jerez
-
 %prep
 %setup -n %{name}-%{_version} -b4 -q
 # no need to build (GLUT-)Demos
@@ -141,10 +116,10 @@
 rm -f include/GL/{glut.h,uglglutshapes.h,glutf90.h}
 # remove some docs
 rm -rf docs/README.{VMS,WIN32,OS2}
-%patch8
 %patch9 -p1
 %patch11 -p1
-%patch12 -p1
+%patch13 -p0
+%patch14 -p1
 
 %build
 
@@ -155,38 +130,29 @@
 autoreconf -fi
 ### libGL (disable savage/mga, bnc #402132/#403071; reenable mga, bnc #466635)
 %configure --disable-glw \
+           --enable-gles1 \
            --enable-gles2 \
            --with-driver=dri \
            --with-dri-searchpath=/usr/%{_lib}/dri/updates:/usr/%{_lib}/dri \
 %ifarch %ix86 x86_64
+           
--with-dri-drivers=i810,i915,i965,mach64,r128,r200,radeon,sis,tdfx,unichrome,swrast,mga
 \
 %if 0%{?suse_version} >= 1130
-           
--with-dri-drivers=i810,i915,i965,mach64,r128,r200,r300,r600,radeon,sis,tdfx,unichrome,swrast,nouveau,mga
 \
+           --with-gallium-drivers=r300,r600,nouveau \
 %else
-           
--with-dri-drivers=i810,i915,i965,mach64,r128,r200,r300,r600,radeon,sis,tdfx,unichrome,swrast
 \
-%endif
-%if %enable_nouveau_gallium
-           --enable-gallium-nouveau \
-%endif
-%if %enable_radeon_gallium
-           --enable-gallium-radeon \
-           --enable-gallium-r600 \
+           --with-gallium-drivers=r300,r600 \
 %endif
 %endif
 %ifarch ppc ppc64 %sparc hppa
+           
--with-dri-drivers=i810,i915,i965,mach64,r128,r200,radeon,tdfx,unichrome,swrast 
\
 %if 0%{?suse_version} >= 1130
-           
--with-dri-drivers=i810,i915,i965,mach64,r128,r200,r300,r600,radeon,tdfx,unichrome,swrast,nouveau
 \
+           --with-gallium-drivers=r300,r600,nouveau \
 %else
-           
--with-dri-drivers=i810,i915,i965,mach64,r128,r200,r300,r600,radeon,tdfx,unichrome,swrast
 \
-%endif
-%if %enable_nouveau_gallium
-           --enable-gallium-nouveau \
-%endif
+           --with-gallium-drivers=r300,r600 \
 %endif
-%ifarch s390 s390x
-           --with-dri-drivers=swrast \
 %endif
-%ifarch %arm
+%ifarch s390 s390x %arm
            --with-dri-drivers=swrast \
+           --with-gallium-drivers="" \
 %endif
            --disable-glut \
            CFLAGS="$RPM_OPT_FLAGS -DNDEBUG"
@@ -198,7 +164,7 @@
            --disable-glu \
            --disable-glw \
            --disable-glut \
-           --disable-gallium \
+           --with-gallium-drivers="" \
            CFLAGS="$RPM_OPT_FLAGS -DNDEBUG"
 sed -i 's/GL_LIB = .*/GL_LIB = IndirectGL/g' configs/autoconf
 make %{?jobs:-j%jobs}
@@ -218,9 +184,7 @@
 # global drirc file
 mkdir -p $RPM_BUILD_ROOT/etc
 install -m 644 $RPM_SOURCE_DIR/drirc $RPM_BUILD_ROOT/etc
-%if 0%{?suse_version} > 1020
 %fdupes -s $RPM_BUILD_ROOT/%_mandir
-%endif 
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -235,11 +199,7 @@
 %config /etc/drirc
 %{_libdir}/lib*.so.*
 %{_libdir}/dri/
-%{_libdir}/egl/
-%exclude %{_libdir}/dri/nouveau_dri.so
-%if 0%{?suse_version} >= 1130
-%exclude %{_libdir}/dri/nouveau_vieux_dri.so
-%endif
+#%{_libdir}/egl/
 
 %files devel
 %defattr(-,root,root)
@@ -255,6 +215,7 @@
 %{_libdir}/libEGL.so
 %{_libdir}/libGLESv1_CM.so
 %{_libdir}/libGLESv2.so
+%{_libdir}/libglapi.so
 %{_libdir}/pkgconfig/dri.pc
 %{_libdir}/pkgconfig/egl.pc
 %{_libdir}/pkgconfig/gl.pc
@@ -263,11 +224,4 @@
 %{_libdir}/pkgconfig/glesv2.pc
 %{_mandir}/man3/*
 
-%files nouveau3d
-%defattr(-,root,root)
-%{_libdir}/dri/nouveau_dri.so
-%if 0%{?suse_version} >= 1130
-%{_libdir}/dri/nouveau_vieux_dri.so
-%endif
-
 %changelog

++++++ U_Mesa-7.11-llvm3.patch ++++++
Makes Mesa work with LLVM3 (also pre-releases).

Included in Mesa in post-11.7
Index: src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
===================================================================
--- src/gallium/auxiliary/gallivm/lp_bld_debug.cpp.orig
+++ src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
@@ -193,7 +193,11 @@ lp_disassemble(const void* func)
 
    InitializeAllDisassemblers();
 
+#if HAVE_LLVM >= 0x0300
+   OwningPtr<const MCAsmInfo> AsmInfo(T->createMCAsmInfo(Triple));
+#else
    OwningPtr<const MCAsmInfo> AsmInfo(T->createAsmInfo(Triple));
+#endif
 
    if (!AsmInfo) {
       debug_printf("error: no assembly info for target %s\n", Triple.c_str());
@@ -289,7 +293,11 @@ lp_disassemble(const void* func)
 
       pc += Size;
 
+#if HAVE_LLVM >= 0x0300
+      const MCInstrDesc &TID = TII->get(Inst.getOpcode());
+#else
       const TargetInstrDesc &TID = TII->get(Inst.getOpcode());
+#endif
 
       /*
        * Keep track of forward jumps to a nearby address.
Index: src/gallium/auxiliary/gallivm/lp_bld_type.c
===================================================================
--- src/gallium/auxiliary/gallivm/lp_bld_type.c.orig
+++ src/gallium/auxiliary/gallivm/lp_bld_type.c
@@ -325,8 +325,10 @@ lp_typekind_name(LLVMTypeKind t)
       return "LLVMArrayTypeKind";
    case LLVMPointerTypeKind:
       return "LLVMPointerTypeKind";
+#if HAVE_LLVM < 0x0300
    case LLVMOpaqueTypeKind:
       return "LLVMOpaqueTypeKind";
+#endif
    case LLVMVectorTypeKind:
       return "LLVMVectorTypeKind";
    case LLVMMetadataTypeKind:
Index: src/gallium/auxiliary/draw/draw_llvm.c
===================================================================
--- src/gallium/auxiliary/draw/draw_llvm.c.orig
+++ src/gallium/auxiliary/draw/draw_llvm.c
@@ -96,7 +96,7 @@ draw_llvm_generate_elts(struct draw_llvm
  * Create LLVM type for struct draw_jit_texture
  */
 static LLVMTypeRef
-create_jit_texture_type(struct gallivm_state *gallivm)
+create_jit_texture_type(struct gallivm_state *gallivm, const char *struct_name)
 {
    LLVMTargetDataRef target = gallivm->target;
    LLVMTypeRef texture_type;
@@ -120,13 +120,21 @@ create_jit_texture_type(struct gallivm_s
    elem_types[DRAW_JIT_TEXTURE_BORDER_COLOR] = 
       LLVMArrayType(LLVMFloatTypeInContext(gallivm->context), 4);
 
+#if HAVE_LLVM >= 0x0300
+   texture_type = LLVMStructCreateNamed(gallivm->context, struct_name);
+   LLVMStructSetBody(texture_type, elem_types,
+                     Elements(elem_types), 0);
+#else
    texture_type = LLVMStructTypeInContext(gallivm->context, elem_types,
                                           Elements(elem_types), 0);
 
+   LLVMAddTypeName(gallivm->module, struct_name, texture_type);
+
    /* Make sure the target's struct layout cache doesn't return
     * stale/invalid data.
     */
    LLVMInvalidateStructLayout(gallivm->target, texture_type);
+#endif
 
    LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, width,
                           target, texture_type,
@@ -176,7 +184,7 @@ create_jit_texture_type(struct gallivm_s
  */
 static LLVMTypeRef
 create_jit_context_type(struct gallivm_state *gallivm,
-                        LLVMTypeRef texture_type)
+                        LLVMTypeRef texture_type, const char *struct_name)
 {
    LLVMTargetDataRef target = gallivm->target;
    LLVMTypeRef float_type = LLVMFloatTypeInContext(gallivm->context);
@@ -189,11 +197,17 @@ create_jit_context_type(struct gallivm_s
    elem_types[3] = LLVMPointerType(float_type, 0); /* viewport */
    elem_types[4] = LLVMArrayType(texture_type,
                                  PIPE_MAX_VERTEX_SAMPLERS); /* textures */
-
+#if HAVE_LLVM >= 0x0300
+   context_type = LLVMStructCreateNamed(gallivm->context, struct_name);
+   LLVMStructSetBody(context_type, elem_types,
+                     Elements(elem_types), 0);
+#else
    context_type = LLVMStructTypeInContext(gallivm->context, elem_types,
                                           Elements(elem_types), 0);
+   LLVMAddTypeName(gallivm->module, struct_name, context_type);
 
    LLVMInvalidateStructLayout(gallivm->target, context_type);
+#endif
 
    LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, vs_constants,
                           target, context_type, 0);
@@ -215,7 +229,7 @@ create_jit_context_type(struct gallivm_s
  * Create LLVM type for struct pipe_vertex_buffer
  */
 static LLVMTypeRef
-create_jit_vertex_buffer_type(struct gallivm_state *gallivm)
+create_jit_vertex_buffer_type(struct gallivm_state *gallivm, const char 
*struct_name)
 {
    LLVMTargetDataRef target = gallivm->target;
    LLVMTypeRef elem_types[3];
@@ -225,10 +239,17 @@ create_jit_vertex_buffer_type(struct gal
    elem_types[1] = LLVMInt32TypeInContext(gallivm->context);
    elem_types[2] = LLVMPointerType(LLVMInt8TypeInContext(gallivm->context), 
0); /* vs_constants */
 
+#if HAVE_LLVM >= 0x0300
+   vb_type = LLVMStructCreateNamed(gallivm->context, struct_name);
+   LLVMStructSetBody(vb_type, elem_types,
+                     Elements(elem_types), 0);
+#else
    vb_type = LLVMStructTypeInContext(gallivm->context, elem_types,
                                      Elements(elem_types), 0);
+   LLVMAddTypeName(gallivm->module, struct_name, vb_type);
 
    LLVMInvalidateStructLayout(gallivm->target, vb_type);
+#endif
 
    LP_CHECK_MEMBER_OFFSET(struct pipe_vertex_buffer, stride,
                           target, vb_type, 0);
@@ -258,10 +279,17 @@ create_jit_vertex_header(struct gallivm_
    elem_types[1]  = LLVMArrayType(LLVMFloatTypeInContext(gallivm->context), 4);
    elem_types[2]  = LLVMArrayType(elem_types[1], data_elems);
 
+#if HAVE_LLVM >= 0x0300
+   vertex_header = LLVMStructCreateNamed(gallivm->context, struct_name);
+   LLVMStructSetBody(vertex_header, elem_types,
+                     Elements(elem_types), 0);
+#else
    vertex_header = LLVMStructTypeInContext(gallivm->context, elem_types,
                                            Elements(elem_types), 0);
+   LLVMAddTypeName(gallivm->module, struct_name, vertex_header);
 
    LLVMInvalidateStructLayout(gallivm->target, vertex_header);
+#endif
 
    /* these are bit-fields and we can't take address of them
       LP_CHECK_MEMBER_OFFSET(struct vertex_header, clipmask,
@@ -284,8 +312,6 @@ create_jit_vertex_header(struct gallivm_
                           target, vertex_header,
                           DRAW_JIT_VERTEX_DATA);
 
-   LLVMAddTypeName(gallivm->module, struct_name, vertex_header);
-
    return vertex_header;
 }
 
@@ -299,19 +325,15 @@ create_jit_types(struct draw_llvm *llvm)
    struct gallivm_state *gallivm = llvm->gallivm;
    LLVMTypeRef texture_type, context_type, buffer_type, vb_type;
 
-   texture_type = create_jit_texture_type(gallivm);
-   LLVMAddTypeName(gallivm->module, "texture", texture_type);
+   texture_type = create_jit_texture_type(gallivm, "texture");
 
-   context_type = create_jit_context_type(gallivm, texture_type);
-   LLVMAddTypeName(gallivm->module, "draw_jit_context", context_type);
+   context_type = create_jit_context_type(gallivm, texture_type, 
"draw_jit_context");
    llvm->context_ptr_type = LLVMPointerType(context_type, 0);
 
    buffer_type = LLVMPointerType(LLVMIntTypeInContext(gallivm->context, 8), 0);
-   LLVMAddTypeName(gallivm->module, "buffer", buffer_type);
    llvm->buffer_ptr_type = LLVMPointerType(buffer_type, 0);
 
-   vb_type = create_jit_vertex_buffer_type(gallivm);
-   LLVMAddTypeName(gallivm->module, "pipe_vertex_buffer", vb_type);
+   vb_type = create_jit_vertex_buffer_type(gallivm, "pipe_vertex_buffer");
    llvm->vb_ptr_type = LLVMPointerType(vb_type, 0);
 }
 
Index: src/gallium/drivers/llvmpipe/lp_jit.c
===================================================================
--- src/gallium/drivers/llvmpipe/lp_jit.c.orig
+++ src/gallium/drivers/llvmpipe/lp_jit.c
@@ -68,10 +68,17 @@ lp_jit_create_types(struct llvmpipe_cont
       elem_types[LP_JIT_TEXTURE_BORDER_COLOR] = 
          LLVMArrayType(LLVMFloatTypeInContext(lc), 4);
 
+#if HAVE_LLVM >= 0x0300
+   texture_type = LLVMStructCreateNamed(gallivm->context, "texture");
+   LLVMStructSetBody(texture_type, elem_types,
+                     Elements(elem_types), 0);
+#else
       texture_type = LLVMStructTypeInContext(lc, elem_types,
                                              Elements(elem_types), 0);
+      LLVMAddTypeName(gallivm->module, "texture", texture_type);
 
       LLVMInvalidateStructLayout(gallivm->target, texture_type);
+#endif
 
       LP_CHECK_MEMBER_OFFSET(struct lp_jit_texture, width,
                              gallivm->target, texture_type,
@@ -112,8 +119,6 @@ lp_jit_create_types(struct llvmpipe_cont
 
       LP_CHECK_STRUCT_SIZE(struct lp_jit_texture,
                            gallivm->target, texture_type);
-
-      LLVMAddTypeName(gallivm->module, "texture", texture_type);
    }
 
    /* struct lp_jit_context */
@@ -129,11 +134,19 @@ lp_jit_create_types(struct llvmpipe_cont
       elem_types[LP_JIT_CTX_TEXTURES] = LLVMArrayType(texture_type,
                                                       PIPE_MAX_SAMPLERS);
 
+#if HAVE_LLVM >= 0x0300
+   context_type = LLVMStructCreateNamed(gallivm->context, "context");
+   LLVMStructSetBody(context_type, elem_types,
+                     Elements(elem_types), 0);
+#else
       context_type = LLVMStructTypeInContext(lc, elem_types,
                                              Elements(elem_types), 0);
 
       LLVMInvalidateStructLayout(gallivm->target, context_type);
 
+      LLVMAddTypeName(gallivm->module, "context", context_type);
+#endif
+
       LP_CHECK_MEMBER_OFFSET(struct lp_jit_context, constants,
                              gallivm->target, context_type,
                              LP_JIT_CTX_CONSTANTS);
@@ -155,8 +168,6 @@ lp_jit_create_types(struct llvmpipe_cont
       LP_CHECK_STRUCT_SIZE(struct lp_jit_context,
                            gallivm->target, context_type);
 
-      LLVMAddTypeName(gallivm->module, "context", context_type);
-
       lp->jit_context_ptr_type = LLVMPointerType(context_type, 0);
    }
 
++++++ U_glx-ignore-BadRequest-errors-from-DRI2Connect.diff ++++++
>From fbc2fcf685d22ec9bc9465e1f731529979497eaa Mon Sep 17 00:00:00 2001
From: Christopher James Halse Rogers <[email protected]>
Date: Thu, 04 Aug 2011 02:06:13 +0000
Subject: glx/dri2: Paper over errors in DRI2Connect when indirect

DRI2 will throw BadRequest for this when the client is not local, but
DRI2 is an implementation detail and not something callers should have
to know about.  Silently swallow errors in this case, and just propagate
the failure through DRI2Connect's return code.

Note: This is a candidate for the stable release branches.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=28125
Signed-off-by: Christopher James Halse Rogers 
<[email protected]>
---
diff --git a/src/glx/dri2.c b/src/glx/dri2.c
index 229840d..b1b5013 100644
--- a/src/glx/dri2.c
+++ b/src/glx/dri2.c
@@ -190,6 +190,15 @@ DRI2Error(Display *display, xError *err, XExtCodes *codes, 
int *ret_code)
        err->minorCode == X_DRI2DestroyDrawable)
        return True;
 
+    /* If the server is non-local DRI2Connect will raise BadRequest.
+     * Swallow this so that DRI2Connect can signal this in its return code */
+    if (err->majorCode == codes->major_opcode &&
+        err->minorCode == X_DRI2Connect &&
+        err->errorCode == BadRequest) {
+       *ret_code = False;
+       return True;
+    }
+
     return False;
 }
 
--
cgit v0.8.3-6-g21f6
++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.TbKdLq/_old  2011-09-01 12:10:06.000000000 +0200
+++ /var/tmp/diff_new_pack.TbKdLq/_new  2011-09-01 12:10:06.000000000 +0200
@@ -5,4 +5,3 @@
 Mesa-devel
   obsoletes "XFree86-Mesa-devel-<targettype> xorg-x11-Mesa-devel-<targettype>"
   provides  "XFree86-Mesa-devel-<targettype> xorg-x11-Mesa-devel-<targettype>"
-Mesa-nouveau3d


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to