Reviewed-by: Marek Olšák <marek.ol...@amd.com> Marek
On Tue, Jul 18, 2017 at 3:20 AM, Tomasz Figa <tf...@chromium.org> wrote: > Commit 463b7d0332c5("gallium: Enable ARM NEON CPU detection.") > introduced CPU feature detection based Android cpufeatures library. > Unfortunately it also added an assumption that if PIPE_OS_ANDROID is > defined, the library is also available, which is not true for the > standalone build without using Android build system. > > Fix it by defining HAS_ANDROID_CPUFEATURES in Android.mk and replacing > respective #ifdefs to use it instead. > > v2: > - Add a comment explaining why the separate flag is needed (Emil). > > Signed-off-by: Tomasz Figa <tf...@chromium.org> > --- > src/gallium/auxiliary/Android.mk | 1 + > src/gallium/auxiliary/util/u_cpu_detect.c | 11 +++++++++-- > 2 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/auxiliary/Android.mk > b/src/gallium/auxiliary/Android.mk > index 356390dfde..26938384fb 100644 > --- a/src/gallium/auxiliary/Android.mk > +++ b/src/gallium/auxiliary/Android.mk > @@ -50,6 +50,7 @@ LOCAL_MODULE := libmesa_gallium > LOCAL_STATIC_LIBRARIES += libmesa_nir > > LOCAL_WHOLE_STATIC_LIBRARIES += cpufeatures > +LOCAL_CFLAGS += -DHAS_ANDROID_CPUFEATURES > > # generate sources > LOCAL_MODULE_CLASS := STATIC_LIBRARIES > diff --git a/src/gallium/auxiliary/util/u_cpu_detect.c > b/src/gallium/auxiliary/util/u_cpu_detect.c > index 76115bf8d5..3d6ccb5822 100644 > --- a/src/gallium/auxiliary/util/u_cpu_detect.c > +++ b/src/gallium/auxiliary/util/u_cpu_detect.c > @@ -67,7 +67,7 @@ > #include <unistd.h> > #endif > > -#if defined(PIPE_OS_ANDROID) > +#if defined(HAS_ANDROID_CPUFEATURES) > #include <cpu-features.h> > #endif > > @@ -304,7 +304,14 @@ PIPE_ALIGN_STACK static inline boolean sse2_has_daz(void) > static void > check_os_arm_support(void) > { > -#if defined(PIPE_OS_ANDROID) > + /* > + * On Android, the cpufeatures library is preferred way of checking > + * CPU capabilities. However, it is not available for standalone Mesa > + * builds, i.e. when Android build system (Android.mk-based) is not > + * used. Because of this we cannot use PIPE_OS_ANDROID here, but rather > + * have a separate macro that only gets enabled from respective > Android.mk. > + */ > +#if defined(HAS_ANDROID_CPUFEATURES) > AndroidCpuFamily cpu_family = android_getCpuFamily(); > uint64_t cpu_features = android_getCpuFeatures(); > > -- > 2.13.2.932.g7449e964c-goog > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev