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