summaryrefslogtreecommitdiff
path: root/user/mesa/fix-non-altivec-ppc32.patch
diff options
context:
space:
mode:
Diffstat (limited to 'user/mesa/fix-non-altivec-ppc32.patch')
-rw-r--r--user/mesa/fix-non-altivec-ppc32.patch66
1 files changed, 0 insertions, 66 deletions
diff --git a/user/mesa/fix-non-altivec-ppc32.patch b/user/mesa/fix-non-altivec-ppc32.patch
deleted file mode 100644
index 846cf5031..000000000
--- a/user/mesa/fix-non-altivec-ppc32.patch
+++ /dev/null
@@ -1,66 +0,0 @@
---- mesa-18.3.2/src/util/u_cpu_detect.c.old 2019-01-17 11:26:23.000000000 +0000
-+++ mesa-18.3.2/src/util/u_cpu_detect.c 2019-02-22 19:23:26.620000000 +0000
-@@ -41,6 +41,9 @@
- #if defined(PIPE_ARCH_PPC)
- #if defined(PIPE_OS_APPLE)
- #include <sys/sysctl.h>
-+#elif defined(PIPE_OS_LINUX)
-+#include <asm/cputable.h>
-+#include <linux/auxvec.h>
- #else
- #include <signal.h>
- #include <setjmp.h>
-@@ -92,7 +95,7 @@
- #endif
-
-
--#if defined(PIPE_ARCH_PPC) && !defined(PIPE_OS_APPLE)
-+#if defined(PIPE_ARCH_PPC) && !defined(PIPE_OS_APPLE) && !defined(PIPE_OS_LINUX)
- static jmp_buf __lv_powerpc_jmpbuf;
- static volatile sig_atomic_t __lv_powerpc_canjump = 0;
-
-@@ -126,7 +129,43 @@
- util_cpu_caps.has_altivec = 1;
- }
- }
--#else /* !PIPE_OS_APPLE */
-+#elif defined(PIPE_OS_LINUX)
-+ /* Taken from FFmpeg 4.1.1 (LGPL-2.1+) */
-+ // The linux kernel could have the altivec support disabled
-+ // even if the cpu has it.
-+ int i, ret = 0;
-+ int fd = open("/proc/self/auxv", O_RDONLY);
-+ unsigned long buf[64] = { 0 };
-+ ssize_t count;
-+ boolean enable_vsx = TRUE;
-+ /* VSX instructions can be explicitly enabled/disabled via GALLIVM_VSX=1 or 0 */
-+ char *env_vsx = getenv("GALLIVM_VSX");
-+ if (env_vsx && env_vsx[0] == '0') {
-+ enable_vsx = FALSE;
-+ }
-+
-+ if (fd < 0)
-+ return 0;
-+
-+ while ((count = read(fd, buf, sizeof(buf))) > 0) {
-+ for (i = 0; i < count / sizeof(*buf); i += 2) {
-+ if (buf[i] == AT_NULL)
-+ goto out;
-+ if (buf[i] == AT_HWCAP) {
-+ if (buf[i + 1] & PPC_FEATURE_HAS_ALTIVEC)
-+ util_cpu_caps.has_altivec = 1;
-+#ifdef PPC_FEATURE_HAS_VSX
-+ if (enable_vsx && buf[i + 1] & PPC_FEATURE_HAS_VSX)
-+ util_cpu_caps.has_vsx = 1;
-+#endif
-+ goto out;
-+ }
-+ }
-+ }
-+
-+out:
-+ close(fd);
-+#else /* !PIPE_OS_APPLE, !PIPE_OS_LINUX */
- /* not on Apple/Darwin, do it the brute-force way */
- /* this is borrowed from the libmpeg2 library */
- signal(SIGILL, sigill_handler);