- 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:
parent
37470a5241
commit
14047b1d59
@ -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.
|
24
Mesa.changes
24
Mesa.changes
@ -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
|
||||
|
||||
|
33
Mesa.spec
33
Mesa.spec
@ -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)
|
||||
|
@ -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
3
MesaLib-8.0.1.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:593af02ea2b5b7afb057a12c550f2c03b1d1cf59a716972d601c1499545ea0a7
|
||||
size 5694019
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user