From e07a5d5ab0722a312f7d100028088667e6b2cbdb Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 19 Apr 2017 13:43:01 +0100 Subject: [PATCH] add patch to disable NEON on aarch64 for vc4 driver (fixes FTBFS) --- mesa.spec | 1 + vc4-Only-build-the-NEON-code-on-arm32.patch | 41 +++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 vc4-Only-build-the-NEON-code-on-arm32.patch diff --git a/mesa.spec b/mesa.spec index 2fc1b1a..e21360a 100644 --- a/mesa.spec +++ b/mesa.spec @@ -78,6 +78,7 @@ Patch1: 0001-llvm-SONAME-without-version.patch Patch2: 0002-hardware-gloat.patch Patch3: 0003-evergreen-big-endian.patch Patch4: 0004-bigendian-assert.patch +Patch5: vc4-Only-build-the-NEON-code-on-arm32.patch # glvnd support patches # non-upstreamed ones diff --git a/vc4-Only-build-the-NEON-code-on-arm32.patch b/vc4-Only-build-the-NEON-code-on-arm32.patch new file mode 100644 index 0000000..1456d95 --- /dev/null +++ b/vc4-Only-build-the-NEON-code-on-arm32.patch @@ -0,0 +1,41 @@ +From patchwork Fri Apr 14 17:47:45 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [Mesa-dev,v3,4/4] vc4: Only build the NEON code on arm32. +From: Eric Anholt +X-Patchwork-Id: 150580 +Message-Id: <20170414174745.14223-4-eric@anholt.net> +To: mesa-dev@lists.freedesktop.org +Date: Fri, 14 Apr 2017 10:47:45 -0700 + +NEON is sufficiently different on arm64 that we can't just reuse this +code. Disable it on arm64 for now. + +Signed-off-by: Eric Anholt +--- + src/gallium/drivers/vc4/vc4_tiling_lt.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/gallium/drivers/vc4/vc4_tiling_lt.c b/src/gallium/drivers/vc4/vc4_tiling_lt.c +index c9cbc65e2dbc..7de67b652daa 100644 +--- a/src/gallium/drivers/vc4/vc4_tiling_lt.c ++++ b/src/gallium/drivers/vc4/vc4_tiling_lt.c +@@ -61,7 +61,7 @@ static void + vc4_load_utile(void *cpu, void *gpu, uint32_t cpu_stride, uint32_t cpp) + { + uint32_t gpu_stride = vc4_utile_stride(cpp); +-#if defined(VC4_BUILD_NEON) && defined(__ARM_ARCH) ++#if defined(VC4_BUILD_NEON) && defined(__ARM_ARCH) && __ARM_ARCH <= 7 + if (gpu_stride == 8) { + __asm__ volatile ( + /* Load from the GPU in one shot, no interleave, to +@@ -118,7 +118,7 @@ vc4_store_utile(void *gpu, void *cpu, uint32_t cpu_stride, uint32_t cpp) + { + uint32_t gpu_stride = vc4_utile_stride(cpp); + +-#if defined(VC4_BUILD_NEON) && defined(__ARM_ARCH) ++#if defined(VC4_BUILD_NEON) && defined(__ARM_ARCH) && __ARM_ARCH <= 7 + if (gpu_stride == 8) { + __asm__ volatile ( + /* Load each 8-byte line from cpu-side source,