diff --git a/ports/ncnn/fix_uwp.patch b/ports/ncnn/fix_uwp.patch new file mode 100644 index 00000000000000..d678464aeaa3dc --- /dev/null +++ b/ports/ncnn/fix_uwp.patch @@ -0,0 +1,42 @@ +diff --git a/src/cpu.cpp b/src/cpu.cpp +index e56cd67..3ca1189 100644 +--- a/src/cpu.cpp ++++ b/src/cpu.cpp +@@ -184,6 +184,13 @@ static int g_cpu_is_arm_a53_a55; + #endif // defined __ANDROID__ || defined __linux__ + + #if defined _WIN32 ++#if WINAPI_FAMILY == WINAPI_FAMILY_APP ++static int detectisa(const void* /*some_inst*/) ++{ ++ // uwp does not support seh :( ++ return 0; ++} ++#else // WINAPI_FAMILY == WINAPI_FAMILY_APP + static int g_sigill_caught = 0; + static jmp_buf g_jmpbuf; + +@@ -213,6 +220,7 @@ static int detectisa(const void* some_inst) + + return g_sigill_caught ? 0 : 1; + } ++#endif // WINAPI_FAMILY == WINAPI_FAMILY_APP + + #if defined(__i386__) || defined(__x86_64__) || defined(_M_IX86) || defined(_M_X64) + #ifdef _MSC_VER +@@ -1966,12 +1974,12 @@ static void initialize_global_cpu_info() + + #if defined _WIN32 + #if __arm__ +- g_cpu_support_arm_neon = detectisa(some_neon); ++ g_cpu_support_arm_neon = 1; // all modern windows arm devices have neon + g_cpu_support_arm_vfpv4 = detectisa(some_vfpv4); + #if __aarch64__ + g_cpu_support_arm_cpuid = detectisa(some_cpuid); +- g_cpu_support_arm_asimdhp = detectisa(some_asimdhp); +- g_cpu_support_arm_asimddp = detectisa(some_asimddp); ++ g_cpu_support_arm_asimdhp = detectisa(some_asimdhp) || IsProcessorFeaturePresent(43); // dp implies hp ++ g_cpu_support_arm_asimddp = detectisa(some_asimddp) || IsProcessorFeaturePresent(43); // 43 is PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE + g_cpu_support_arm_asimdfhm = detectisa(some_asimdfhm); + g_cpu_support_arm_bf16 = detectisa(some_bf16); + g_cpu_support_arm_i8mm = detectisa(some_i8mm); diff --git a/ports/ncnn/portfile.cmake b/ports/ncnn/portfile.cmake index f8e846e23f2130..a3dec468a362ed 100644 --- a/ports/ncnn/portfile.cmake +++ b/ports/ncnn/portfile.cmake @@ -2,8 +2,10 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Tencent/ncnn REF "${VERSION}" - SHA512 722966b3b30c5a4df81c6d45237b1821acc69db0c78350a41e3bc60e3f40c3dc64587ae0ab223635c468314c665e477ee7e0c2d3d4cccbc72bb15aeb56dcda6c + SHA512 31bc3c2f461a00241fb8f69ca6ea8cc590af6618856b1b84a048bde924e4b474fd883ad5d54dbfbdd1e5b59015889e15ffc4fbafccb3e42e052a02071f2017b1 HEAD_REF master + PATCHES + fix_uwp.patch #https://github.com/Tencent/ncnn/pull/5328 ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) diff --git a/ports/ncnn/vcpkg.json b/ports/ncnn/vcpkg.json index fbf005e68ae177..28be929f74ac3d 100644 --- a/ports/ncnn/vcpkg.json +++ b/ports/ncnn/vcpkg.json @@ -1,6 +1,6 @@ { "name": "ncnn", - "version": "20231027", + "version": "20240102", "description": "ncnn is a high-performance neural network inference computing framework.", "homepage": "https://github.com/Tencent/ncnn", "license": "BSD-3-Clause", diff --git a/versions/baseline.json b/versions/baseline.json index d20ea4f53b468d..090c416f9120bd 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -5905,7 +5905,7 @@ "port-version": 2 }, "ncnn": { - "baseline": "20231027", + "baseline": "20240102", "port-version": 0 }, "ncurses": { diff --git a/versions/n-/ncnn.json b/versions/n-/ncnn.json index 348ed94bf90426..60b0168727164b 100644 --- a/versions/n-/ncnn.json +++ b/versions/n-/ncnn.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "322a0f4cfc94f9d73060a9636854a8e1260796fd", + "version": "20240102", + "port-version": 0 + }, { "git-tree": "2a6a2a9cc4c71cac799469f587478b987a63e0ed", "version": "20231027",