From f719e942dde0a46a9ff0080001cb3466012ffcc0 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Mon, 9 Mar 2020 13:01:14 +0100 Subject: [PATCH] vc4: add meson option to disable optional neon support Not all toolchains are able to compile the runtime optional vc4 neon support, so add an meson option to force disabling it at compile time. Upstream: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4114 Signed-off-by: Peter Seiderer Signed-off-by: Bernd Kuhls [rebased for 20.2.0, 20.3.0, 21.1.0, 23.1.0 & 23.2.0] Signed-off-by: Peter Seiderer [fix syntax error after previous rebases] --- meson_options.txt | 7 +++++++ src/gallium/drivers/vc4/meson.build | 4 ++-- src/gallium/drivers/vc4/vc4_tiling.h | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/meson_options.txt b/meson_options.txt index 8e0bf2a..1cf0e07 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -124,6 +124,13 @@ option( description : 'enable gallium va frontend.', ) +option( + 'gallium-vc4-neon', + type : 'feature', + deprecated: {'true': 'enabled', 'false': 'disabled'}, + description : 'enable gallium vc4 optional neon support.', +) + option( 'va-libs-path', type : 'string', diff --git a/src/gallium/drivers/vc4/meson.build b/src/gallium/drivers/vc4/meson.build index 84da951..7f950de 100644 --- a/src/gallium/drivers/vc4/meson.build +++ b/src/gallium/drivers/vc4/meson.build @@ -84,7 +84,7 @@ files_libvc4 = files( vc4_c_args = [] libvc4_neon = [] -if host_machine.cpu_family() == 'arm' +if host_machine.cpu_family() == 'arm' and not get_option('gallium-vc4-neon').disabled() libvc4_neon = static_library( 'vc4_neon', 'vc4_tiling_lt_neon.c', @@ -93,7 +93,7 @@ if host_machine.cpu_family() == 'arm' ], c_args : '-mfpu=neon', ) - vc4_c_args += '-DUSE_ARM_ASM' + vc4_c_args += '-DVC4_TILING_LT_NEON' endif if dep_simpenrose.found() diff --git a/src/gallium/drivers/vc4/vc4_tiling.h b/src/gallium/drivers/vc4/vc4_tiling.h index 5afe329..919b299 100644 --- a/src/gallium/drivers/vc4/vc4_tiling.h +++ b/src/gallium/drivers/vc4/vc4_tiling.h @@ -89,7 +89,7 @@ vc4_load_lt_image(void *dst, uint32_t dst_stride, void *src, uint32_t src_stride, int cpp, const struct pipe_box *box) { -#ifdef USE_ARM_ASM +#ifdef VC4_TILING_LT_NEON if (util_get_cpu_caps()->has_neon) { vc4_load_lt_image_neon(dst, dst_stride, src, src_stride, cpp, box); @@ -105,7 +105,7 @@ vc4_store_lt_image(void *dst, uint32_t dst_stride, void *src, uint32_t src_stride, int cpp, const struct pipe_box *box) { -#ifdef USE_ARM_ASM +#ifdef VC4_TILING_LT_NEON if (util_get_cpu_caps()->has_neon) { vc4_store_lt_image_neon(dst, dst_stride, src, src_stride, cpp, box); -- 2.41.0