From 1869dc14d498be4dbe771a898b995ae6eb372083 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Mon, 16 Nov 2020 12:42:33 -0800 Subject: [PATCH] Use WinAPI functions to check for NEON support --- alc/cpu_caps.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/alc/cpu_caps.cpp b/alc/cpu_caps.cpp index a480f77b..ab6c2d4b 100644 --- a/alc/cpu_caps.cpp +++ b/alc/cpu_caps.cpp @@ -3,6 +3,14 @@ #include "cpu_caps.h" +#if defined(_WIN32) && (defined(_M_ARM) || defined(_M_ARM64)) +#define WIN32_LEAN_AND_MEAN +#include +#ifndef PF_ARM_NEON_INSTRUCTIONS_AVAILABLE +#define PF_ARM_NEON_INSTRUCTIONS_AVAILABLE 19 +#endif +#endif + #ifdef HAVE_INTRIN_H #include #endif @@ -105,6 +113,9 @@ void FillCPUCaps(int capfilter) #ifdef HAVE_NEON #ifdef __ARM_NEON caps |= CPU_CAP_NEON; +#elif defined(_WIN32) && (defined(_M_ARM) || defined(_M_ARM64)) + if(IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE)) + caps |= CPU_CAP_NEON; #else al::ifstream file{"/proc/cpuinfo"}; if(!file.is_open())