meson: Enable VC4's NEON assembly support.
authorEric Anholt <eric@anholt.net>
Wed, 8 Nov 2017 22:07:38 +0000 (14:07 -0800)
committerEric Anholt <eric@anholt.net>
Thu, 9 Nov 2017 17:40:30 +0000 (09:40 -0800)
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Tested-by: Timothy Arceri <tarceri@itsqueeze.com>
meson.build
src/gallium/drivers/vc4/meson.build

index ce97fa95af7698677fa132d3e52187212ceac4d0..ddd76804c5436be6a867f8e74f1df20e45982df0 100644 (file)
@@ -489,8 +489,8 @@ endif
 
 # FIXME: enable asm when cross compiler
 # This is doable (autotools does it), but it's not of immediate concern
-if meson.is_cross_build()
-  message('Cross compiling, disabling asm')
+if meson.is_cross_build() and host_machine.cpu_family().startswith('x86')
+  message('Cross compiling, disabling x86/x86_64 asm')
   with_asm = false
 endif
 
index 38b47fbdd97759890222a778852073603a18dc2d..572d4b4fa9aaa15723a3a1781c1b9b36405b5094 100644 (file)
@@ -81,6 +81,18 @@ files_libvc4 = files(
   'vc4_uniforms.c',
 )
 
+libvc4_neon = []
+if with_asm_arch == 'arm'
+  libvc4_neon = static_library(
+    'vc4_neon',
+    'vc4_tiling_lt_neon.c',
+    include_directories : [
+      inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_broadcom
+    ],
+    c_args : '-mfpu=neon',
+  )
+endif
+
 simpenrose_c_args = []
 dep_simpenrose = dependency('simpenrose', required : false)
 if dep_simpenrose.found()
@@ -94,6 +106,7 @@ libvc4 = static_library(
     inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_broadcom,
     inc_gallium_drivers, inc_drm_uapi,
   ],
+  link_with: libvc4_neon,
   c_args : [c_vis_args, simpenrose_c_args],
   cpp_args : [cpp_vis_args],
   dependencies : [dep_simpenrose, dep_libdrm, dep_valgrind],