SHA256
1
0
forked from pool/Mesa

- 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
This commit is contained in:
Egbert Eich 2016-06-01 14:51:38 +00:00 committed by Git OBS Bridge
parent 26bf3783d5
commit 775da14df1
3 changed files with 57 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,48 @@
From: Roland Scheidegger <sroland@vmware.com>
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 <eich@suse.com>
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 <tjaalton@ubuntu.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com
CC: <mesa-stable@lists.freedesktop.org>
---
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)