diff --git a/mesa/PKGBUILD b/mesa/PKGBUILD index 0bee82b8b..4bbf8f275 100644 --- a/mesa/PKGBUILD +++ b/mesa/PKGBUILD @@ -3,7 +3,7 @@ pkgbase=mesa pkgname=('mesa' 'libgl' 'libglapi') pkgver=10.0.1 -pkgrel=4 +pkgrel=5 arch=('x86_64') makedepends=('glproto>=1.4.14' 'libdrm>=2.4.38' 'libxxf86vm>=1.1.1' 'libxdamage>=1.1.3' 'expat>=2.0.1' 'libx11>=1.4.3' 'libxt>=1.1.1' 'gcc-libs' 'dri2proto>=2.8' 'python2' 'libxml2' 'imake' 'llvm' 'systemd' @@ -21,7 +21,7 @@ build() { autoreconf -vfi ./configure --prefix=/usr \ --with-dri-driverdir=/usr/lib/xorg/modules/dri \ - --with-gallium-drivers=r300,r600,radeonsi,nouveau,svga,swrast \ + --with-gallium-drivers=r300,r600,nouveau,svga,swrast \ --with-dri-drivers=i915,i965,r200,radeon,nouveau,swrast \ --enable-gallium-llvm \ --enable-gallium-egl \ diff --git a/mesa/llvm32.patch b/mesa/llvm32.patch deleted file mode 100644 index 95ee15f79..000000000 --- a/mesa/llvm32.patch +++ /dev/null @@ -1,284 +0,0 @@ -From 8d9778589f4b3a174e884338adb0fe1bdeca5eb7 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Thu, 10 May 2012 14:21:54 +0000 -Subject: radeon: Support LLVM 3.2 - -LLVM 3.2 and newer requires that the R600/SI backend be part of the -LLVM tree. ---- -diff --git a/configure.ac b/configure.ac -index 896f98a..32f412b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1661,6 +1661,7 @@ if test "x$enable_gallium_llvm" = xyes; then - if $LLVM_CONFIG --components | grep -q '\'; then - LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit" - fi -+ LLVM_COMPONENTS="${LLVM_COMPONENTS} all-targets" - if test "x$enable_opencl" = xyes; then - LLVM_COMPONENTS="${LLVM_COMPONENTS} ipo linker instrumentation" - fi -@@ -1782,6 +1783,23 @@ gallium_require_drm_loader() { - fi - } - -+radeon_llvm_check() { -+ LLVM_VERSION_MAJOR=`echo $LLVM_VERSION | cut -d. -f1` -+ if test "$LLVM_VERSION_MAJOR" -lt "3" -o "x$LLVM_VERSION" = "x3.0"; then -+ AC_MSG_ERROR([LLVM 3.1 or newer is required for the r600/radeonsi llvm compiler.]) -+ fi -+ if test "$LLVM_VERSION_MAJOR" -ge "3" -a "x$LLVM_VERSION" != "x3.1" && $LLVM_CONFIG --targets-built | grep -qv '\' ; then -+ AC_MSG_ERROR([To use the r600/radeonsi LLVM backend with LLVM 3.2 and newer, you need to fetch the LLVM source from: -+ git://people.freedesktop.org/~tstellar/llvm master -+ and build with --enable-experimental-targets==AMDGPU]) -+ fi -+ if test "$LLVM_VERSION" = "3.2"; then -+ dnl LLVM 3.2 does not add experimental libraries to llvm-config's -+ dnl library list. -+ LLVM_LIBS="$LLVM_LIBS -lLLVMAMDGPUCodeGen -lLLVMAMDGPUDesc -lLLVMAMDGPUAsmPrinter -lLLVMAMDGPUInfo `$LLVM_CONFIG --libs mc`" -+ fi -+} -+ - dnl Gallium drivers - dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block - if test "x$with_gallium_drivers" != x; then -@@ -1812,9 +1830,7 @@ if test "x$with_gallium_drivers" != x; then - gallium_require_drm_loader - GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600" - if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then -- if test "x$LLVM_VERSION" != "x3.1"; then -- AC_MSG_ERROR([LLVM 3.1 is required for the r600 llvm compiler.]) -- fi -+ radeon_llvm_check - NEED_RADEON_GALLIUM=yes; - fi - if test "x$enable_r600_llvm" = xyes; then -@@ -1829,9 +1845,7 @@ if test "x$with_gallium_drivers" != x; then - PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED]) - gallium_require_drm_loader - GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi" -- if test "x$LLVM_VERSION" != "x3.1"; then -- AC_MSG_ERROR([LLVM 3.1 is required to build the radeonsi driver.]) -- fi -+ radeon_llvm_check - NEED_RADEON_GALLIUM=yes; - gallium_check_st "radeon/drm" "dri-radeonsi" "xorg-radeonsi" "" "" "vdpau-radeonsi" "" - ;; -diff --git a/src/gallium/drivers/radeon/Makefile b/src/gallium/drivers/radeon/Makefile -index 7f1c613..bcc2646 100644 ---- a/src/gallium/drivers/radeon/Makefile -+++ b/src/gallium/drivers/radeon/Makefile -@@ -12,6 +12,12 @@ TBLGEN = $(LLVM_BINDIR)/llvm-tblgen - - CXXFLAGS+= $(LLVM_CXXFLAGS) - -+ifeq ($(LLVM_VERSION),3.1) -+ CPP_SOURCES += $(LLVM_CPP_SOURCES) -+else -+ CXXFLAGS+= -DEXTERNAL_LLVM -+endif -+ - include ../../Makefile.template - - CXXFLAGS := $(filter-out -DDEBUG, $(CXXFLAGS)) -diff --git a/src/gallium/drivers/radeon/Makefile.sources b/src/gallium/drivers/radeon/Makefile.sources -index c5d1207..5e79342 100644 ---- a/src/gallium/drivers/radeon/Makefile.sources -+++ b/src/gallium/drivers/radeon/Makefile.sources -@@ -23,8 +23,7 @@ TD_FILES := \ - SIRegisterInfo.td \ - SISchedule.td - -- --GENERATED_SOURCES := \ -+LLVM_GENERATED_SOURCES := \ - R600Intrinsics.td \ - R600RegisterInfo.td \ - SIRegisterInfo.td \ -@@ -41,7 +40,7 @@ GENERATED_SOURCES := \ - AMDGPUGenMCCodeEmitter.inc \ - AMDGPUGenDFAPacketizer.inc - --CPP_SOURCES := \ -+LLVM_CPP_SOURCES := \ - AMDIL7XXDevice.cpp \ - AMDILCFGStructurizer.cpp \ - AMDILDevice.cpp \ -@@ -81,6 +80,8 @@ CPP_SOURCES := \ - MCTargetDesc/SIMCCodeEmitter.cpp \ - MCTargetDesc/R600MCCodeEmitter.cpp \ - TargetInfo/AMDGPUTargetInfo.cpp \ -+ -+CPP_SOURCES := \ - radeon_llvm_emit.cpp - - C_SOURCES := \ -diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.cpp b/src/gallium/drivers/radeon/radeon_llvm_emit.cpp -index 1b67bfe..625b0b4 100644 ---- a/src/gallium/drivers/radeon/radeon_llvm_emit.cpp -+++ b/src/gallium/drivers/radeon/radeon_llvm_emit.cpp -@@ -90,6 +90,7 @@ radeon_llvm_compile(LLVMModuleRef M, unsigned char ** bytes, - /* XXX: Can we just initialize the AMDGPU target here? */ - InitializeAllTargets(); - InitializeAllTargetMCs(); -+ InitializeAllAsmPrinters(); - #else - LLVMInitializeAMDGPUTargetInfo(); - LLVMInitializeAMDGPUTarget(); --- -cgit v0.9.0.2-2-gbebe -From 67fcb3c2b4ecbd87e465b6c6b316be44811ea116 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Mon, 01 Oct 2012 21:00:00 +0000 -Subject: configure.ac: Use amdgpu component for LLVM 3.2 - -The amdgpu component actually does exist. I must have been using an -older version of llvm-config by accident when I first made this change. ---- -diff --git a/configure.ac b/configure.ac -index 32f412b..0de506d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1793,10 +1793,8 @@ radeon_llvm_check() { - git://people.freedesktop.org/~tstellar/llvm master - and build with --enable-experimental-targets==AMDGPU]) - fi -- if test "$LLVM_VERSION" = "3.2"; then -- dnl LLVM 3.2 does not add experimental libraries to llvm-config's -- dnl library list. -- LLVM_LIBS="$LLVM_LIBS -lLLVMAMDGPUCodeGen -lLLVMAMDGPUDesc -lLLVMAMDGPUAsmPrinter -lLLVMAMDGPUInfo `$LLVM_CONFIG --libs mc`" -+ if test "x$LLVM_VERSION" = "x3.2"; then -+ LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --libs amdgpu`" - fi - } - --- -cgit v0.9.0.2-2-gbebe -From 4cc530f452436a5304a628d1428ed7f07247a175 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Wed, 10 Oct 2012 21:00:13 +0000 -Subject: radeon/llvm: Fix build with LLVM 3.2 - ---- -diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.cpp b/src/gallium/drivers/radeon/radeon_llvm_emit.cpp -index 2f2eb4c..21661a0 100644 ---- a/src/gallium/drivers/radeon/radeon_llvm_emit.cpp -+++ b/src/gallium/drivers/radeon/radeon_llvm_emit.cpp -@@ -36,13 +36,16 @@ - #include - #include - #include --#include - #include -- - #include -- - #include - -+#if HAVE_LLVM < 0x0302 -+#include -+#else -+#include -+#endif -+ - #include - #include - #include -@@ -120,7 +123,11 @@ radeon_llvm_compile(LLVMModuleRef M, unsigned char ** bytes, - )); - TargetMachine &AMDGPUTargetMachine = *tm.get(); - PassManager PM; -+#if HAVE_LLVM < 0x0302 - PM.add(new TargetData(*AMDGPUTargetMachine.getTargetData())); -+#else -+ PM.add(new DataLayout(*AMDGPUTargetMachine.getDataLayout())); -+#endif - PM.add(createPromoteMemoryToRegisterPass()); - AMDGPUTargetMachine.setAsmVerbosityDefault(true); - --- -cgit v0.9.0.2-2-gbebe -From b21455f27db6e55e708f8e264f4a15412ee8fa52 Mon Sep 17 00:00:00 2001 -From: Dmitry Cherkasov -Date: Wed, 17 Oct 2012 18:03:13 +0000 -Subject: configure.ac: Fix LLVM 3.2 r600/radeonsi error message - -Reviewed-by: Tom Stellard -Signed-off-by: Dmitry Cherkasov ---- -diff --git a/configure.ac b/configure.ac -index aefa142..ca24856 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1757,7 +1757,7 @@ radeon_llvm_check() { - if test "$LLVM_VERSION_MAJOR" -ge "3" -a "x$LLVM_VERSION" != "x3.1" && $LLVM_CONFIG --targets-built | grep -qv '\' ; then - AC_MSG_ERROR([To use the r600/radeonsi LLVM backend with LLVM 3.2 and newer, you need to fetch the LLVM source from: - git://people.freedesktop.org/~tstellar/llvm master -- and build with --enable-experimental-targets==AMDGPU]) -+ and build with --enable-experimental-targets=AMDGPU]) - fi - if test "x$LLVM_VERSION" = "x3.2"; then - LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --libs amdgpu`" --- -cgit v0.9.0.2-2-gbebe -From d2b0338e3354fadc90a3751520f4aa44ba01954f Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Wed, 17 Oct 2012 19:21:48 +0000 -Subject: r600g: Remove special handling of PRED_SET* insructions for LLVM 3.2 - -The 3.2 version of the backend now sets all the correct fields for -PRED_SET* instructions. ---- -diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c -index 053a988..58b7fb2 100644 ---- a/src/gallium/drivers/r600/r600_shader.c -+++ b/src/gallium/drivers/r600/r600_shader.c -@@ -330,6 +330,7 @@ static unsigned r600_alu_from_byte_stream(struct r600_shader_ctx *ctx, - alu.src[src_idx].sel += 512; - } - -+#if HAVE_LLVM < 0x0302 - if (alu.inst == CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETNE) || - alu.inst == CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETE) || - alu.inst == CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETE_INT) || -@@ -340,6 +341,7 @@ static unsigned r600_alu_from_byte_stream(struct r600_shader_ctx *ctx, - alu.src[1].chan = 0; - alu.last = 1; - } -+#endif - - if (alu.execute_mask) { - alu.pred_sel = 0; --- -cgit v0.9.0.2-2-gbebe -From f2f17fc348c847bbf5c54bb75b76e1661e8ced60 Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Mon, 01 Oct 2012 21:01:06 +0000 -Subject: radeon/llvm: Only initialize the AMDGPU target - ---- -diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.cpp b/src/gallium/drivers/radeon/radeon_llvm_emit.cpp -index 625b0b4..2f2eb4c 100644 ---- a/src/gallium/drivers/radeon/radeon_llvm_emit.cpp -+++ b/src/gallium/drivers/radeon/radeon_llvm_emit.cpp -@@ -86,17 +86,11 @@ radeon_llvm_compile(LLVMModuleRef M, unsigned char ** bytes, - - Triple AMDGPUTriple(sys::getDefaultTargetTriple()); - --#ifdef EXTERNAL_LLVM -- /* XXX: Can we just initialize the AMDGPU target here? */ -- InitializeAllTargets(); -- InitializeAllTargetMCs(); -- InitializeAllAsmPrinters(); --#else - LLVMInitializeAMDGPUTargetInfo(); - LLVMInitializeAMDGPUTarget(); - LLVMInitializeAMDGPUTargetMC(); - LLVMInitializeAMDGPUAsmPrinter(); --#endif -+ - std::string err; - const Target * AMDGPUTarget = TargetRegistry::lookupTarget("r600", err); - if(!AMDGPUTarget) { --- -cgit v0.9.0.2-2-gbebe diff --git a/mesa/mesa-8.0.3-llvm-3.1-fixes.patch b/mesa/mesa-8.0.3-llvm-3.1-fixes.patch deleted file mode 100644 index a567b5926..000000000 --- a/mesa/mesa-8.0.3-llvm-3.1-fixes.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp -index a50a51d..f1bb4d9 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp -+++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp -@@ -235,7 +235,24 @@ lp_disassemble(const void* func) - int AsmPrinterVariant = AsmInfo->getAssemblerDialect(); - #endif - --#if HAVE_LLVM >= 0x0300 -+#if HAVE_LLVM >= 0x0301 -+ OwningPtr MRI(T->createMCRegInfo(Triple)); -+ if (!MRI) { -+ debug_printf("error: no register info for target %s\n", Triple.c_str()); -+ return; -+ } -+ -+ OwningPtr MII(T->createMCInstrInfo()); -+ if (!MII) { -+ debug_printf("error: no instruction info for target %s\n", Triple.c_str()); -+ return; -+ } -+#endif -+ -+#if HAVE_LLVM >= 0x0301 -+ OwningPtr Printer( -+ T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *MII, *MRI, *STI)); -+#elif HAVE_LLVM == 0x0300 - OwningPtr Printer( - T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *STI)); - #elif HAVE_LLVM >= 0x0208 -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -index fe7616b..68f8808 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -@@ -62,7 +62,11 @@ - extern "C" void - lp_register_oprofile_jit_event_listener(LLVMExecutionEngineRef EE) - { -+#if HAVE_LLVM >= 0x0301 -+ llvm::unwrap(EE)->RegisterJITEventListener(llvm::JITEventListener::createOProfileJITEventListener()); -+#else - llvm::unwrap(EE)->RegisterJITEventListener(llvm::createOProfileJITEventListener()); -+#endif - } - -