From d87885b5e6e5b1654358a18fd27576942e4aa0cd 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 107c8f3a46459162e7ab1678c586b448b2de74a5 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 1280d38ad9464f7a0b630d8b85adfcf4a0da0fb1 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 a80cb8aeb2e528131e5d7bb490d631aef869f0f4 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 9eaed47b726247bf852721048c2fec4ebbe29701 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 e55b483bc17d3866221bae62444f5ab404b2b881 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 ec036777123d307104314e3db83e028e3a5461c7 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 9b455b308bfd0bf1b38d25228a3ebaad1c6d2dda 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