Skip to content

Add Windows 11 on ARM to CI#605

Draft
stefanatwork wants to merge 17 commits into
masterfrom
sw/win-on-arm-ci
Draft

Add Windows 11 on ARM to CI#605
stefanatwork wants to merge 17 commits into
masterfrom
sw/win-on-arm-ci

Conversation

@stefanatwork

@stefanatwork stefanatwork commented May 26, 2026

Copy link
Copy Markdown
Collaborator

Adding Windows on ARM support to the public CI runners.

@stefanatwork stefanatwork self-assigned this May 26, 2026
@stefanatwork stefanatwork marked this pull request as draft May 26, 2026 10:11
@stefanatwork stefanatwork changed the title WIP: Windows on ARM CI workflow Windows on ARM CI workflow May 26, 2026
Agent-Logs-Url: https://github.com/RenderKit/embree/sessions/ead49f65-088a-401f-b6ff-a821bf4b5b25

Co-authored-by: stefanatwork <93931354+stefanatwork@users.noreply.github.com>
Agent-Logs-Url: https://github.com/RenderKit/embree/sessions/71a93d2a-2cfa-4e53-ad36-40765438ddee

Co-authored-by: stefanatwork <93931354+stefanatwork@users.noreply.github.com>
Copilot AI changed the title Windows on ARM CI workflow Add Windows on ARM (ARM64) CI support May 27, 2026
Copilot AI changed the title Add Windows on ARM (ARM64) CI support Force Windows ARM CI to use MSVC toolchain May 27, 2026
Copilot AI changed the title Force Windows ARM CI to use MSVC toolchain Fix Windows ARM public CI toolchain selection and failure handling May 27, 2026
Copilot stopped work on behalf of stefanatwork due to an error May 27, 2026 15:15
Copilot AI changed the title Fix Windows ARM public CI toolchain selection and failure handling Set INTERNAL tasking for Windows 11 ARM CI May 27, 2026
stefanatwork and others added 3 commits May 28, 2026 08:16
…nversion operators

On ARM64 MSVC, the arm_neon.h header from the compiler aliases __m128 and __m128i
to the same underlying type (__n128), causing C++ overload ambiguity when both
implicit conversion operators are defined. This is a less invasive solution than
removing all implicit operators and requiring explicit casts throughout the codebase.

Solution:
- Create wrapper types (__m128_wrapper, __m128i_wrapper, __m128d_wrapper) for ARM64 MSVC
- On other platforms, use identity wrappers that compile away to nothing
- Update vector types (vfloat4, vint4, vuint4, vboolf4) to use these wrappers
- Implicit conversion operators remain unchanged at call sites
- No performance overhead when inlined

This approach keeps the implicit operator API intact while disambiguating the
underlying types for ARM64 MSVC, requiring changes only to vector type declarations
rather than hundreds of call sites throughout the codebase.

Files modified:
- common/simd/arm/simd_wrapper_types.h (new file)
- common/simd/vfloat4_sse2.h
- common/simd/vint4_sse2.h
- common/simd/vuint4_sse2.h
- common/simd/vboolf4_sse2.h

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@stefanatwork stefanatwork changed the title Set INTERNAL tasking for Windows 11 ARM CI Add Windows 11 on ARM to CI Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants