From 26bf3783d555883fce2de0d3fdb6aaed737110ca161e0f32d0495d4e3fada884 Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Thu, 26 May 2016 09:49:06 +0000 Subject: [PATCH 1/2] Accepting request 398107 from devel:ARM:Factory - enable vc4 and freedreno on aarch64 as well OBS-URL: https://build.opensuse.org/request/show/398107 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=517 --- Mesa.changes | 5 +++++ Mesa.spec | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Mesa.changes b/Mesa.changes index 1239951..5c7f949 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed May 25 11:39:12 UTC 2016 - dmueller@suse.com + +- enable vc4 and freedreno on aarch64 as well + ------------------------------------------------------------------- Wed May 18 17:01:35 UTC 2016 - eich@suse.com diff --git a/Mesa.spec b/Mesa.spec index c789603..b7e9965 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -25,7 +25,7 @@ %else %define gallium_loader 0 %endif -%ifarch %ix86 x86_64 %arm ppc ppc64 ppc64le +%ifarch %ix86 x86_64 aarch64 %arm ppc ppc64 ppc64le %define xvmc_support 1 %define vdpau_nouveau 1 %define vdpau_radeon 1 @@ -609,11 +609,11 @@ autoreconf -fvi --enable-va \ --enable-xvmc \ %endif -%ifarch %arm ppc64 ppc64le +%ifarch aarch64 %arm ppc64 ppc64le --enable-xa \ --enable-gallium-llvm \ --with-dri-drivers=nouveau \ -%ifarch %arm +%ifarch %arm aarch64 --with-gallium-drivers=r300,r600,nouveau,swrast,svga,freedreno,vc4 \ %else --with-gallium-drivers=r300,r600,nouveau,swrast,svga \ @@ -629,7 +629,7 @@ autoreconf -fvi --with-dri-drivers=swrast \ --with-gallium-drivers=swrast \ %endif -%ifarch aarch64 s390x +%ifarch s390x --enable-xa \ --enable-gallium-llvm \ --with-dri-drivers=swrast \ @@ -947,7 +947,7 @@ install -m 644 $RPM_SOURCE_DIR/README.updates \ %{_libdir}/libMesaOpenCL.so* %endif -%ifnarch s390 s390x aarch64 +%ifnarch s390 s390x %files libva %defattr(-,root,root) %dir %{_libdir}/dri From 775da14df1da1d20b5262ebde3f25800ee506c06d933dda23e891674a5b7f454 Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Wed, 1 Jun 2016 14:51:38 +0000 Subject: [PATCH 2/2] - U_gallivm-disable-avx512-features.patch: Fix crashes on some Skykake CPUs by disabling avx512 features (bsc#980557, bsc#981532). OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=518 --- Mesa.changes | 7 ++++ Mesa.spec | 2 ++ U_gallivm-disable-avx512-features.patch | 48 +++++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 U_gallivm-disable-avx512-features.patch diff --git a/Mesa.changes b/Mesa.changes index 5c7f949..d23c3c3 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Jun 1 14:48:38 UTC 2016 - eich@suse.com + +- U_gallivm-disable-avx512-features.patch: + Fix crashes on some Skykake CPUs by disabling avx512 features + (bsc#980557, bsc#981532). + ------------------------------------------------------------------- Wed May 25 11:39:12 UTC 2016 - dmueller@suse.com diff --git a/Mesa.spec b/Mesa.spec index b7e9965..5dce398 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -70,6 +70,7 @@ Patch18: n_VDPAU-XVMC-libs-Replace-hardlinks-with-copies.patch # Already upstream Patch21: n_Define-GLAPIVAR-separate-from-GLAPI.patch Patch22: u_glxcmds-glXGetFBConfigs-fix-screen-bounds.patch +Patch23: U_gallivm-disable-avx512-features.patch BuildRequires: autoconf >= 2.60 BuildRequires: automake @@ -564,6 +565,7 @@ rm -rf docs/README.{VMS,WIN32,OS2} %patch18 -p1 %patch21 -p1 %patch22 -p1 +%patch23 -p1 %build %if 0%{?suse_version} >= 1310 diff --git a/U_gallivm-disable-avx512-features.patch b/U_gallivm-disable-avx512-features.patch new file mode 100644 index 0000000..a461b17 --- /dev/null +++ b/U_gallivm-disable-avx512-features.patch @@ -0,0 +1,48 @@ +From: Roland Scheidegger +Date: Sun May 8 00:40:07 2016 +0200 +Subject: [PATCH]gallivm: disable avx512 features +Patch-mainline: Upstream +Git-repo: git://anongit.freedesktop.org/git/mesa/mesa +Git-commit: 8b66e2647d5e36e318177a460e6e586d6ca8c36b +References: bsc#980557 +Signed-off-by: Egbert Eich + +We don't target this yet, and some llvm versions incorrectly enable it based +on cpu string, causing crashes. +(Albeit this is a losing battle, it is pretty much guaranteed when the next +new feature comes along llvm will mistakenly enable it on some future cpu, +thus we would have to proactively disable all new features as llvm adds them.) + +This should fix https://bugs.freedesktop.org/show_bug.cgi?id=94291 (untested) + +Tested-by: Timo Aaltonen +Reviewed-by: Jose Fonseca +--- + src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +index bb08892..42a53ec 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp ++++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp +@@ -571,6 +571,18 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, + MAttrs.push_back(util_cpu_caps.has_avx ? "+avx" : "-avx"); + MAttrs.push_back(util_cpu_caps.has_f16c ? "+f16c" : "-f16c"); + MAttrs.push_back(util_cpu_caps.has_avx2 ? "+avx2" : "-avx2"); ++ /* disable avx512 and all subvariants */ ++#if HAVE_LLVM >= 0x0304 ++ MAttrs.push_back("-avx512cd"); ++ MAttrs.push_back("-avx512er"); ++ MAttrs.push_back("-avx512f"); ++ MAttrs.push_back("-avx512pf"); ++#endif ++#if HAVE_LLVM >= 0x0305 ++ MAttrs.push_back("-avx512bw"); ++ MAttrs.push_back("-avx512dq"); ++ MAttrs.push_back("-avx512vl"); ++#endif + #endif + + #if defined(PIPE_ARCH_PPC)