Mesa (master): v3d: Fix build of NEON code with Mesa's cflags not targeting NEON.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Mar 1 22:23:31 UTC 2019


Module: Mesa
Branch: master
Commit: f1122f78b765ecbb5702b5c2e2bf4a03fb83d778
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f1122f78b765ecbb5702b5c2e2bf4a03fb83d778

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Mar  1 12:48:51 2019 -0800

v3d: Fix build of NEON code with Mesa's cflags not targeting NEON.

v3d may be built as part of a set of drivers in a system not requiring
NEON, but we know V3D devices will be paired with CPUs with NEON so we
should be able to use this asm.

Fixes: 0c05198d6b5b ("v3d: Always enable the NEON utile load/store code.")

---

 src/gallium/drivers/v3d/meson.build | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/v3d/meson.build b/src/gallium/drivers/v3d/meson.build
index 4f517ada9cd..7f9fdf10ac2 100644
--- a/src/gallium/drivers/v3d/meson.build
+++ b/src/gallium/drivers/v3d/meson.build
@@ -37,8 +37,6 @@ files_libv3d = files(
   'v3d_screen.h',
   'v3d_simulator.c',
   'v3d_simulator_wrapper.cpp',
-  'v3d_tiling.c',
-  'v3d_tiling.h',
   'v3d_uniforms.c',
 )
 
@@ -77,6 +75,22 @@ foreach ver : v3d_versions
 
 endforeach
 
+v3d_neon_c_args = []
+if host_machine.cpu_family() == 'arm'
+    v3d_neon_c_args = '-mfpu=neon'
+endif
+
+libv3d_neon = static_library(
+  'v3d_neon',
+  'v3d_tiling.c',
+  include_directories : [
+    inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_broadcom,
+    inc_gallium_drivers,
+  ],
+  c_args : [c_vis_args, v3d_args, v3d_neon_c_args],
+  dependencies : [dep_v3dv3, dep_libdrm, dep_valgrind, idep_nir_headers],
+)
+
 libv3d = static_library(
   'v3d',
   [files_libv3d, v3d_xml_pack],
@@ -87,7 +101,7 @@ libv3d = static_library(
   c_args : [c_vis_args, v3d_args],
   cpp_args : [cpp_vis_args, v3d_args],
   dependencies : [dep_v3dv3, dep_libdrm, dep_valgrind, idep_nir_headers],
-  link_with: per_version_libs,
+  link_with: [per_version_libs, libv3d_neon],
 )
 
 driver_v3d = declare_dependency(




More information about the mesa-commit mailing list