SHA256
1
0
forked from pool/Mesa

- Update to Mesa 8.0.1

* Removed all DRI drivers that did not support DRI2. 
    Specifically, i810, mach64, mga, r128, savage, sis, tdfx, and
    unichrome were removed.
  * Removed all remnants of paletted texture support. As required
    by desktop OpenGL, GL_COLOR_INDEX data can still be uploaded
    to a color (e.g., RGBA) texture. However, the data cannot be
    stored internally as color-index.
  * Removed support for GL_APPLE_client_storage extension.
  * Removed the classic Mesa r300 and r600 drivers, which are
    superseded by the gallium drivers for this hardware.
  * Removed the dead Gallium i965, cell and failover drivers,
    which were either broken and with nobody in sight to fix
    the situation or deprecated.
- obsoletes u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch
  (git commit #63a6fd6603574c1c01324fbeb0863e39d3864c16)
- obsoletes U_Mesa-7.11-llvm3.patch
- obsoletes Mesa-llvm-3.0.patch
- disabled u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch
  for now (obsolete as well?)

OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=196
This commit is contained in:
Stefan Dirsch 2012-02-23 13:38:22 +00:00 committed by Git OBS Bridge
parent 37470a5241
commit 14047b1d59
7 changed files with 41 additions and 377 deletions

View File

@ -1,105 +0,0 @@
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
index 29dfb86..f44749d 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
@@ -27,17 +27,23 @@
#include <llvm-c/Core.h>
#include <llvm/Target/TargetMachine.h>
-#include <llvm/Target/TargetRegistry.h>
-#include <llvm/Target/TargetSelect.h>
#include <llvm/Target/TargetInstrInfo.h>
#include <llvm/Support/raw_ostream.h>
#include <llvm/Support/MemoryObject.h>
+#if HAVE_LLVM >= 0x0300
+#include <llvm/Support/TargetRegistry.h>
+#include <llvm/Support/TargetSelect.h>
+#else /* HAVE_LLVM < 0x0300 */
+#include <llvm/Target/TargetRegistry.h>
+#include <llvm/Target/TargetSelect.h>
+#endif /* HAVE_LLVM < 0x0300 */
+
#if HAVE_LLVM >= 0x0209
#include <llvm/Support/Host.h>
-#else
+#else /* HAVE_LLVM < 0x0209 */
#include <llvm/System/Host.h>
-#endif
+#endif /* HAVE_LLVM < 0x0209 */
#if HAVE_LLVM >= 0x0207
#include <llvm/MC/MCDisassembler.h>
@@ -193,14 +199,23 @@ 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());
return;
}
+#if HAVE_LLVM >= 0x0300
+ const MCSubtargetInfo *STI = T->createMCSubtargetInfo(Triple, sys::getHostCPUName(), "");
+ OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler(*STI));
+#else
OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler());
+#endif
if (!DisAsm) {
debug_printf("error: no disassembler for target %s\n", Triple.c_str());
return;
@@ -213,7 +228,11 @@ lp_disassemble(const void* func)
#else
int AsmPrinterVariant = AsmInfo->getAssemblerDialect();
#endif
-#if HAVE_LLVM >= 0x0208
+
+#if HAVE_LLVM >= 0x0300
+ OwningPtr<MCInstPrinter> Printer(
+ T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *STI));
+#elif HAVE_LLVM >= 0x0208
OwningPtr<MCInstPrinter> Printer(
T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo));
#else
@@ -253,7 +272,11 @@ lp_disassemble(const void* func)
if (!DisAsm->getInstruction(Inst, Size, memoryObject,
pc,
- nulls())) {
+#if HAVE_LLVM >= 0x0300
+ nulls(), nulls())) {
+#else
+ nulls())) {
+#endif
debug_printf("invalid\n");
pc += 1;
}
@@ -276,7 +299,9 @@ lp_disassemble(const void* func)
* Print the instruction.
*/
-#if HAVE_LLVM >= 0x208
+#if HAVE_LLVM >= 0x0300
+ Printer->printInst(&Inst, Out, "");
+#elif HAVE_LLVM >= 0x208
Printer->printInst(&Inst, Out);
#else
Printer->printInst(&Inst);
@@ -289,7 +314,11 @@
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.

View File

@ -1,3 +1,27 @@
-------------------------------------------------------------------
Thu Feb 23 10:57:09 UTC 2012 - sndirsch@suse.com
- Update to Mesa 8.0.1
* Removed all DRI drivers that did not support DRI2.
Specifically, i810, mach64, mga, r128, savage, sis, tdfx, and
unichrome were removed.
* Removed all remnants of paletted texture support. As required
by desktop OpenGL, GL_COLOR_INDEX data can still be uploaded
to a color (e.g., RGBA) texture. However, the data cannot be
stored internally as color-index.
* Removed support for GL_APPLE_client_storage extension.
* Removed the classic Mesa r300 and r600 drivers, which are
superseded by the gallium drivers for this hardware.
* Removed the dead Gallium i965, cell and failover drivers,
which were either broken and with nobody in sight to fix
the situation or deprecated.
- obsoletes u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch
(git commit #63a6fd6603574c1c01324fbeb0863e39d3864c16)
- obsoletes U_Mesa-7.11-llvm3.patch
- obsoletes Mesa-llvm-3.0.patch
- disabled u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch
for now (obsolete as well?)
-------------------------------------------------------------------
Wed Feb 22 14:27:44 UTC 2012 - jengelh@medozas.de

View File

@ -15,11 +15,12 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
#
%define _version 7.11.1
%define _version 8.0.1
Name: Mesa
Version: 7.11.1
Version: 8.0.1
Release: 0
BuildRequires: autoconf >= 2.59
BuildRequires: automake
@ -52,6 +53,7 @@ BuildRequires: pkgconfig(xxf86vm)
%ifarch %ix86 x86_64
BuildRequires: llvm-devel
%endif
BuildRequires: vim
Url: http://www.mesa3d.org
Provides: Mesa7 = %{version}
Obsoletes: Mesa7 < %{version}
@ -77,11 +79,8 @@ Source4: manual-pages.tar.bz2
Source5: drirc
Source6: %name-rpmlintrc
# to be upstreamed
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
# already upstream
Patch13: U_Mesa-7.11-llvm3.patch
Patch15: Mesa-llvm-3.0.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@ -109,7 +108,7 @@ Requires: Mesa-libGLESv1_CM-devel = %version
Requires: Mesa-libGLESv2-devel = %version
Requires: Mesa-libGLU-devel = %version
Requires: Mesa-libIndirectGL1 = %version
Requires: libOSMesa7 = %version
Requires: libOSMesa8 = %version
Requires: Mesa-libglapi0 = %version
Requires: libgbm-devel
# bug437293
@ -300,11 +299,11 @@ This library provides a pure software rasterizer; it does not provide
a direct rendering capable library, or one which uses GLX. For that,
please see Mesa-libGL1.
%package -n libOSMesa7
%package -n libOSMesa8
Summary: Mesa Off-screen rendering extension
Group: System/Libraries
%description -n libOSMesa7
%description -n libOSMesa8
OSmesa is a Mesa extension that allows programs to render to an
off-screen buffer using the OpenGL API without having to create a
rendering context on an X Server. It uses a pure software renderer.
@ -359,10 +358,7 @@ rm -rf src/glut progs/{demos,redbook,samples,xdemos,glsl}
rm -f include/GL/{glut.h,uglglutshapes.h,glutf90.h}
# remove some docs
rm -rf docs/README.{VMS,WIN32,OS2}
%patch9 -p1
%patch11 -p1
%patch13 -p0
%patch15 -p1
#%patch11 -p1
%build
@ -371,7 +367,6 @@ rm -f src/mesa/depend
export TALLOC_LIBS=-ltalloc
export TALLOC_CFLAGS="-I/usr/include"
autoreconf -fi
### libGL (disable savage/mga, bnc #402132/#403071; reenable mga, bnc #466635)
%configure --disable-glw \
--enable-gles1 \
--enable-gles2 \
@ -381,7 +376,7 @@ autoreconf -fi
--enable-shared-dricore \
--with-dri-searchpath=/usr/%{_lib}/dri/updates:/usr/%{_lib}/dri \
%ifarch %ix86 x86_64
--with-dri-drivers=i810,i915,i965,mach64,nouveau,r128,r200,radeon,sis,tdfx,unichrome,swrast,mga \
--with-dri-drivers=i915,i965,nouveau,r200,radeon,swrast \
%if 0%{?suse_version} >= 1130
--with-gallium-drivers=r300,r600,nouveau \
%else
@ -389,7 +384,7 @@ autoreconf -fi
%endif
%endif
%ifarch ppc ppc64 %sparc hppa
--with-dri-drivers=i810,i915,i965,mach64,nouveau,r128,r200,radeon,tdfx,unichrome,swrast \
--with-dri-drivers=i915,i965,nouveau,r200,radeon,swrast \
%if 0%{?suse_version} >= 1130
--with-gallium-drivers=r300,r600,nouveau \
%else
@ -460,9 +455,9 @@ install -m 644 $RPM_SOURCE_DIR/drirc $RPM_BUILD_ROOT/etc
%postun -n Mesa-libIndirectGL1 -p /sbin/ldconfig
%post -n libOSMesa7 -p /sbin/ldconfig
%post -n libOSMesa8 -p /sbin/ldconfig
%postun -n libOSMesa7 -p /sbin/ldconfig
%postun -n libOSMesa8 -p /sbin/ldconfig
%post -n libgbm1 -p /sbin/ldconfig
@ -539,9 +534,9 @@ install -m 644 $RPM_SOURCE_DIR/drirc $RPM_BUILD_ROOT/etc
%defattr(-,root,root)
%_libdir/libIndirectGL.so.1*
%files -n libOSMesa7
%files -n libOSMesa8
%defattr(-,root,root)
%_libdir/libOSMesa.so.7*
%_libdir/libOSMesa.so.8*
%files -n libgbm1
%defattr(-,root,root)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0dbc1c12434caa25f52e398053a97515aa67a81b9e7fe621572835fb61b08fc4
size 6662652

3
MesaLib-8.0.1.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:593af02ea2b5b7afb057a12c550f2c03b1d1cf59a716972d601c1499545ea0a7
size 5694019

View File

@ -1,218 +0,0 @@
Makes Mesa work with LLVM3 (also pre-releases).
Included in Mesa in post-11.7
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);
}

View File

@ -1,32 +0,0 @@
From bb5ac44693cc6a50de068c729a089b7bdd6db4cd Mon Sep 17 00:00:00 2001
From: Egbert Eich <eich@freedesktop.org>
Date: Thu, 9 Jun 2011 12:42:59 +0200
Subject: [PATCH] [GLX/SWrast] Make GLX with SWrast enabled work on older Xservers.
Patch-mainline: To be upstreamed
Older Xservers don't offer a set of configs/visuals that is compatible
with DRI. If no visuals or configs are found let driswCreateScreen()
fail so that the next fallback path is take.
Signed-off-by: Egbert Eich <eich@freedesktop.org>
---
src/glx/drisw_glx.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
index 2eaa3c5..7bf29af 100644
--- a/src/glx/drisw_glx.c
+++ b/src/glx/drisw_glx.c
@@ -490,6 +490,9 @@ driswCreateScreen(int screen, struct glx_display *priv)
psc->base.visuals =
driConvertConfigs(psc->core, psc->base.visuals, driver_configs);
+ if (psc->base.configs == NULL || psc->base.visuals == NULL)
+ goto handle_error;
+
psc->driver_configs = driver_configs;
psc->base.vtable = &drisw_screen_vtable;
--
1.7.3.4