From 6847e413e3357267dfe14cec3688b830cdda9dca Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 11 Nov 2025 15:44:33 +0300 Subject: [PATCH 1/8] Enabled CI for Windows ARM. --- .github/workflows/OCV-PR-Windows.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/OCV-PR-Windows.yaml b/.github/workflows/OCV-PR-Windows.yaml index b24a2410..af1f60a4 100644 --- a/.github/workflows/OCV-PR-Windows.yaml +++ b/.github/workflows/OCV-PR-Windows.yaml @@ -48,9 +48,9 @@ jobs: # NOTE: Debugging # fail-fast: true fail-fast: false - max-parallel: 2 + max-parallel: 3 matrix: - arch: [ x86, x64 ] # , arm64 + arch: [ x86, x64, arm64 ] config: [ base ] include: - arch: x86 @@ -63,12 +63,12 @@ jobs: runner: opencv-cn-win vs: 'Visual Studio 16 2019' cmake_arch: x64 - # - arch: arm64 - # config: base - # runner: windows-11-arm - # vs: 'Visual Studio 17 2022' - # cmake_arch: ARM64 - # no_opencl: true + - arch: arm64 + config: base + runner: windows-11-arm + vs: 'Visual Studio 17 2022' + cmake_arch: ARM64 + no_opencl: true branch: ${{ fromJSON(needs.branch_eval.outputs.branches )}} defaults: From 63568f4c8be374520ed705f407b0dac3c51dad25 Mon Sep 17 00:00:00 2001 From: Ivan Avdeev Date: Tue, 11 Nov 2025 21:41:48 +0200 Subject: [PATCH 2/8] Update OCV-PR-Windows.yaml --- .github/workflows/OCV-PR-Windows.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/OCV-PR-Windows.yaml b/.github/workflows/OCV-PR-Windows.yaml index af1f60a4..501b451d 100644 --- a/.github/workflows/OCV-PR-Windows.yaml +++ b/.github/workflows/OCV-PR-Windows.yaml @@ -158,8 +158,8 @@ jobs: uses: ./run-tests env: OPENCV_TEST_DATA_PATH: '${{ github.workspace }}/opencv_extra/testdata' - OPENCV_TEST_REQUIRE_DATA: 1 - OPENCV_TEST_CHECK_OPTIONAL_DATA: 1 + OPENCV_TEST_REQUIRE_DATA: ${{ matrix.arch == 'arm64' && '0' || '1' }} + OPENCV_TEST_CHECK_OPTIONAL_DATA: ${{ matrix.arch == 'arm64' && '0' || '1' }} PYTHONPATH: '${{ github.workspace }}/${{ env.MAIN_BUILD_DIR }}/python_loader:$PYTHONPATH' with: workdir: '${{ github.workspace }}' From e343fa5f5de9390fab0a7a04eeacf4bd81748bf1 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Mon, 17 Nov 2025 13:22:31 +0300 Subject: [PATCH 3/8] Disable OpenCL for experiment on Windows ARM. --- .github/workflows/OCV-PR-Windows.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/OCV-PR-Windows.yaml b/.github/workflows/OCV-PR-Windows.yaml index 501b451d..69eb131b 100644 --- a/.github/workflows/OCV-PR-Windows.yaml +++ b/.github/workflows/OCV-PR-Windows.yaml @@ -161,6 +161,7 @@ jobs: OPENCV_TEST_REQUIRE_DATA: ${{ matrix.arch == 'arm64' && '0' || '1' }} OPENCV_TEST_CHECK_OPTIONAL_DATA: ${{ matrix.arch == 'arm64' && '0' || '1' }} PYTHONPATH: '${{ github.workspace }}/${{ env.MAIN_BUILD_DIR }}/python_loader:$PYTHONPATH' + OPENCV_OPENCL_RUNTIME: 'disabled' with: workdir: '${{ github.workspace }}' builddir: '${{ env.MAIN_BUILD_DIR }}' From 11a6afb81cc4ddab9167b0e3ca967374ce217d69 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 18 Nov 2025 10:12:47 +0300 Subject: [PATCH 4/8] Tried to disable Carotene. --- .github/workflows/OCV-PR-Windows.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/OCV-PR-Windows.yaml b/.github/workflows/OCV-PR-Windows.yaml index 69eb131b..8e2540fb 100644 --- a/.github/workflows/OCV-PR-Windows.yaml +++ b/.github/workflows/OCV-PR-Windows.yaml @@ -79,6 +79,7 @@ jobs: -DCL_Z_OPTION=/Z7 -DBUILD_EXAMPLES=ON -DOPENCV_ENABLE_NONFREE=ON + -DWITH_CAROTENE=OFF ${{ matrix.no_opencl && '-DWITH_OPENCL=OFF' || '' }} ${{ matrix.arch == 'arm64' && '-DWITH_VULKAN=OFF -DBUILD_opencv_vulkan=OFF -DOPENCV_DNN_VULKAN=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Vulkan=ON' || '' }} ${{ matrix.arch == 'x86' && '-DBUILD_opencv_python3=OFF' || '' }} From 0736caafc183f0fa4cfc60c6e425bd9100f65180 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 18 Nov 2025 14:42:49 +0300 Subject: [PATCH 5/8] Limit dispatch on Windows ARM. --- .github/workflows/OCV-PR-Windows.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/OCV-PR-Windows.yaml b/.github/workflows/OCV-PR-Windows.yaml index 8e2540fb..cd37c6ca 100644 --- a/.github/workflows/OCV-PR-Windows.yaml +++ b/.github/workflows/OCV-PR-Windows.yaml @@ -81,7 +81,7 @@ jobs: -DOPENCV_ENABLE_NONFREE=ON -DWITH_CAROTENE=OFF ${{ matrix.no_opencl && '-DWITH_OPENCL=OFF' || '' }} - ${{ matrix.arch == 'arm64' && '-DWITH_VULKAN=OFF -DBUILD_opencv_vulkan=OFF -DOPENCV_DNN_VULKAN=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Vulkan=ON' || '' }} + ${{ matrix.arch == 'arm64' && '-DCPU_BASELINE="NEON" -DCPU_DISPATCH="" -DWITH_VULKAN=OFF -DBUILD_opencv_vulkan=OFF -DOPENCV_DNN_VULKAN=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Vulkan=ON' || '' }} ${{ matrix.arch == 'x86' && '-DBUILD_opencv_python3=OFF' || '' }} MAIN_BUILD_DIR: "${{ (github.event.repository.name != 'opencv_contrib') && 'build' || 'build-contrib' }}" OPENCV_FOR_THREADS_NUM: 8 From c66e0eb0926bef1f9796e179d44642aa46a0274b Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Tue, 18 Nov 2025 18:23:11 +0300 Subject: [PATCH 6/8] Disable optimizations on ARM at all for experiment. --- .github/workflows/OCV-PR-Windows.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/OCV-PR-Windows.yaml b/.github/workflows/OCV-PR-Windows.yaml index cd37c6ca..18d81ebf 100644 --- a/.github/workflows/OCV-PR-Windows.yaml +++ b/.github/workflows/OCV-PR-Windows.yaml @@ -81,7 +81,7 @@ jobs: -DOPENCV_ENABLE_NONFREE=ON -DWITH_CAROTENE=OFF ${{ matrix.no_opencl && '-DWITH_OPENCL=OFF' || '' }} - ${{ matrix.arch == 'arm64' && '-DCPU_BASELINE="NEON" -DCPU_DISPATCH="" -DWITH_VULKAN=OFF -DBUILD_opencv_vulkan=OFF -DOPENCV_DNN_VULKAN=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Vulkan=ON' || '' }} + ${{ matrix.arch == 'arm64' && '-DCV_DISABLE_OPTIMIZATION=ON -DWITH_VULKAN=OFF -DBUILD_opencv_vulkan=OFF -DOPENCV_DNN_VULKAN=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Vulkan=ON' || '' }} ${{ matrix.arch == 'x86' && '-DBUILD_opencv_python3=OFF' || '' }} MAIN_BUILD_DIR: "${{ (github.event.repository.name != 'opencv_contrib') && 'build' || 'build-contrib' }}" OPENCV_FOR_THREADS_NUM: 8 From 3a08d6615cb2286d0f558139525e9fd2264104dd Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Wed, 19 Nov 2025 12:00:55 +0300 Subject: [PATCH 7/8] Force release. --- .github/workflows/OCV-PR-Windows.yaml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/workflows/OCV-PR-Windows.yaml b/.github/workflows/OCV-PR-Windows.yaml index 18d81ebf..3ebc64ba 100644 --- a/.github/workflows/OCV-PR-Windows.yaml +++ b/.github/workflows/OCV-PR-Windows.yaml @@ -50,19 +50,9 @@ jobs: fail-fast: false max-parallel: 3 matrix: - arch: [ x86, x64, arm64 ] + arch: [ arm64 ] config: [ base ] include: - - arch: x86 - config: base - runner: opencv-cn-win - vs: 'Visual Studio 16 2019' - cmake_arch: Win32 - - arch: x64 - config: base - runner: opencv-cn-win - vs: 'Visual Studio 16 2019' - cmake_arch: x64 - arch: arm64 config: base runner: windows-11-arm @@ -80,6 +70,7 @@ jobs: -DBUILD_EXAMPLES=ON -DOPENCV_ENABLE_NONFREE=ON -DWITH_CAROTENE=OFF + -DCMAKE_BUILD_TYPE=Release ${{ matrix.no_opencl && '-DWITH_OPENCL=OFF' || '' }} ${{ matrix.arch == 'arm64' && '-DCV_DISABLE_OPTIMIZATION=ON -DWITH_VULKAN=OFF -DBUILD_opencv_vulkan=OFF -DOPENCV_DNN_VULKAN=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Vulkan=ON' || '' }} ${{ matrix.arch == 'x86' && '-DBUILD_opencv_python3=OFF' || '' }} From 75dd766d1ccfc6e21be54dcb985a709cb6920f81 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Thu, 18 Dec 2025 11:43:16 +0300 Subject: [PATCH 8/8] Update flags for ARM. --- .github/workflows/OCV-PR-Windows.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/OCV-PR-Windows.yaml b/.github/workflows/OCV-PR-Windows.yaml index 3ebc64ba..9e4425aa 100644 --- a/.github/workflows/OCV-PR-Windows.yaml +++ b/.github/workflows/OCV-PR-Windows.yaml @@ -69,10 +69,8 @@ jobs: -DCL_Z_OPTION=/Z7 -DBUILD_EXAMPLES=ON -DOPENCV_ENABLE_NONFREE=ON - -DWITH_CAROTENE=OFF -DCMAKE_BUILD_TYPE=Release ${{ matrix.no_opencl && '-DWITH_OPENCL=OFF' || '' }} - ${{ matrix.arch == 'arm64' && '-DCV_DISABLE_OPTIMIZATION=ON -DWITH_VULKAN=OFF -DBUILD_opencv_vulkan=OFF -DOPENCV_DNN_VULKAN=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Vulkan=ON' || '' }} ${{ matrix.arch == 'x86' && '-DBUILD_opencv_python3=OFF' || '' }} MAIN_BUILD_DIR: "${{ (github.event.repository.name != 'opencv_contrib') && 'build' || 'build-contrib' }}" OPENCV_FOR_THREADS_NUM: 8