1*4882a593SmuzhiyunFrom e3b47c1b84964c62b3e1fa782f1ffa4be0ae62f9 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Peter Seiderer <ps.report@gmx.net> 3*4882a593SmuzhiyunDate: Mon, 9 Mar 2020 13:01:14 +0100 4*4882a593SmuzhiyunSubject: [PATCH] vc4: add meson option to disable optional neon support 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunNot all toolchains are able to compile the runtime 7*4882a593Smuzhiyunoptional vc4 neon support, so add an meson option 8*4882a593Smuzhiyunto force disabling it at compile time. 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun[Upstream: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4114] 11*4882a593SmuzhiyunSigned-off-by: Peter Seiderer <ps.report@gmx.net> 12*4882a593SmuzhiyunSigned-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> 13*4882a593Smuzhiyun[rebased for 20.2.0, 20.3.0 & 21.1.0] 14*4882a593Smuzhiyun--- 15*4882a593Smuzhiyun meson_options.txt | 7 +++++++ 16*4882a593Smuzhiyun src/gallium/drivers/vc4/meson.build | 4 ++-- 17*4882a593Smuzhiyun src/gallium/drivers/vc4/vc4_tiling.h | 4 ++-- 18*4882a593Smuzhiyun 3 files changed, 11 insertions(+), 4 deletions(-) 19*4882a593Smuzhiyun 20*4882a593Smuzhiyundiff --git a/meson_options.txt b/meson_options.txt 21*4882a593Smuzhiyunindex a39596a6f19..0f6b6c62b55 100644 22*4882a593Smuzhiyun--- a/meson_options.txt 23*4882a593Smuzhiyun+++ b/meson_options.txt 24*4882a593Smuzhiyun@@ -123,6 +123,13 @@ option( 25*4882a593Smuzhiyun choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 26*4882a593Smuzhiyun description : 'enable gallium va frontend.', 27*4882a593Smuzhiyun ) 28*4882a593Smuzhiyun+option( 29*4882a593Smuzhiyun+ 'gallium-vc4-neon', 30*4882a593Smuzhiyun+ type : 'combo', 31*4882a593Smuzhiyun+ value : 'auto', 32*4882a593Smuzhiyun+ choices : ['auto', 'disabled'], 33*4882a593Smuzhiyun+ description : 'enable gallium vc4 optional neon support.', 34*4882a593Smuzhiyun+) 35*4882a593Smuzhiyun option( 36*4882a593Smuzhiyun 'va-libs-path', 37*4882a593Smuzhiyun type : 'string', 38*4882a593Smuzhiyundiff --git a/src/gallium/drivers/vc4/meson.build b/src/gallium/drivers/vc4/meson.build 39*4882a593Smuzhiyunindex 5ce5af5f6b4..e3f7d8d62ae 100644 40*4882a593Smuzhiyun--- a/src/gallium/drivers/vc4/meson.build 41*4882a593Smuzhiyun+++ b/src/gallium/drivers/vc4/meson.build 42*4882a593Smuzhiyun@@ -84,7 +84,7 @@ files_libvc4 = files( 43*4882a593Smuzhiyun vc4_c_args = [] 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun libvc4_neon = [] 46*4882a593Smuzhiyun-if host_machine.cpu_family() == 'arm' 47*4882a593Smuzhiyun+if host_machine.cpu_family() == 'arm' and get_option('gallium-vc4-neon') != 'disabled' 48*4882a593Smuzhiyun libvc4_neon = static_library( 49*4882a593Smuzhiyun 'vc4_neon', 50*4882a593Smuzhiyun 'vc4_tiling_lt_neon.c', 51*4882a593Smuzhiyun@@ -93,7 +93,7 @@ if host_machine.cpu_family() == 'arm' 52*4882a593Smuzhiyun ], 53*4882a593Smuzhiyun c_args : '-mfpu=neon', 54*4882a593Smuzhiyun ) 55*4882a593Smuzhiyun- vc4_c_args += '-DUSE_ARM_ASM' 56*4882a593Smuzhiyun+ vc4_c_args += '-DVC4_TILING_LT_NEON' 57*4882a593Smuzhiyun endif 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun if dep_simpenrose.found() 60*4882a593Smuzhiyundiff --git a/src/gallium/drivers/vc4/vc4_tiling.h b/src/gallium/drivers/vc4/vc4_tiling.h 61*4882a593Smuzhiyunindex 66767e7f1f8..7446f1c3d0c 100644 62*4882a593Smuzhiyun--- a/src/gallium/drivers/vc4/vc4_tiling.h 63*4882a593Smuzhiyun+++ b/src/gallium/drivers/vc4/vc4_tiling.h 64*4882a593Smuzhiyun@@ -89,7 +89,7 @@ vc4_load_lt_image(void *dst, uint32_t dst_stride, 65*4882a593Smuzhiyun void *src, uint32_t src_stride, 66*4882a593Smuzhiyun int cpp, const struct pipe_box *box) 67*4882a593Smuzhiyun { 68*4882a593Smuzhiyun-#ifdef USE_ARM_ASM 69*4882a593Smuzhiyun+#ifdef VC4_TILING_LT_NEON 70*4882a593Smuzhiyun if (util_get_cpu_caps()->has_neon) { 71*4882a593Smuzhiyun vc4_load_lt_image_neon(dst, dst_stride, src, src_stride, 72*4882a593Smuzhiyun cpp, box); 73*4882a593Smuzhiyun@@ -105,7 +105,7 @@ vc4_store_lt_image(void *dst, uint32_t dst_stride, 74*4882a593Smuzhiyun void *src, uint32_t src_stride, 75*4882a593Smuzhiyun int cpp, const struct pipe_box *box) 76*4882a593Smuzhiyun { 77*4882a593Smuzhiyun-#ifdef USE_ARM_ASM 78*4882a593Smuzhiyun+#ifdef VC4_TILING_LT_NEON 79*4882a593Smuzhiyun if (util_get_cpu_caps()->has_neon) { 80*4882a593Smuzhiyun vc4_store_lt_image_neon(dst, dst_stride, src, src_stride, 81*4882a593Smuzhiyun cpp, box); 82*4882a593Smuzhiyun-- 83*4882a593Smuzhiyun2.25.1 84*4882a593Smuzhiyun 85