Uh oh!
There was an error while loading. Please reload this page.
build(windows): add arm64 support - #3905
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
rbqvq
commented
Jun 2, 2025
Can we use this hardware encode? 🤔 |
ReenigneArcher
commented
Jun 2, 2025
I think MF encoder is already included with the FFmpeg build, so why not? |
rbqvq
commented
Jun 2, 2025
Well, I didn't read the source code of sunshine. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Bundle ReportBundle size has no change ✅ |
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
All thing done. Pre-built portable can find at https://github.com/rbqvq/Sunshine/actions/runs/21646290004 |
Delete the `#warning` emitted for non-x64 architectures in src/platform/windows/audio.cpp. Update cmake/compile_definitions/windows.cmake to suppress specific GCC warnings when building for Windows ARM64. Add flags to SUNSHINE_COMPILE_OPTIONS for CMAKE_SYSTEM_PROCESSOR=ARM64 to silence warnings. - `-Wno-dll-attribute-on-redeclaration` for Boost - `-Wno-unknown-warning-option` for ViGEmClient - `-Wno-unused-variable` for Boost Signed-off-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Replace variable-length arrays with std::vector in src/platform/windows/input.cpp and src/platform/windows/misc.cpp for safety and portability. Add <vector> includes, allocate wide-character buffer with std::vector<WCHAR> and pass wide.data() to MultiByteToWideChar, and replace WSABUF VLA with std::vector<WSABUF> and use .data() for msg.lpBuffers. These changes avoid non-standard VLAs and reduce stack-allocation risks. Signed-off-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Drop the HMODULE dll = nullptr; declaration from src/nvenc/nvenc_d3d11_on_cuda.h. This removes an unused module handle field from the nvenc D3D11-on-CUDA wrapper to reduce unnecessary state. Signed-off-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Add CI build for Windows ARM64. Signed-off-by: Coia Prant <coiaprant@gmail.com> Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Add windows arm64 documents. Signed-off-by: Coia Prant <coiaprant@gmail.com> Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
ReenigneArcher
commented
Feb 7, 2026
Thank you. Please no more force pushing. |
rbqvq
commented
Feb 7, 2026
Thanks, I went back to sleep. |
Insert a 'Debug nsis' step into .github/workflows/ci-windows.yml that always runs and prints the NSISOutput.log using the msys2 shell. This captures NSIS installer build logs for troubleshooting; the step uses '|| true' to avoid failing the job. The step is placed before the existing 'Debug wix' step.
Make NSIS detailed logging conditional on the target architecture by adding NSIS_LOGSET_COMMAND (set to "LogSet on" only when CMAKE_SYSTEM_PROCESSOR matches AMD64) and using it in CPACK_NSIS_EXTRA_INSTALL_COMMANDS and CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS instead of always calling LogSet. Update docs/getting_started.md to note that the install.log under %PROGRAMFILES% is available on AMD64 only.
Uh oh!
There was an error while loading. Please reload this page.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@## master #3905 +/- ##
=========================================
Coverage ? 14.11% =========================================
Files ? 95 Lines ? 19859 Branches ? 9189 =========================================
Hits ? 2804 Misses ? 13523 Partials ? 3532
Flags with carried forward coverage won't be shown. Click here to find out more.
|
ReenigneArcher
commented
Feb 8, 2026
@rbqvq unfortunately, now arm64 is failing in Debian/Ubuntu images. We don't build these for PRs because they take 3+ hours. Do you have some idea how we can conditionally use these additions to the package.json? "@rollup/wasm-node": "4.57.1"},"overrides": {
"rollup": "npm:@rollup/wasm-node@4.57.1" |
rbqvq
commented
Feb 8, 2026
I think we can provide two package.json and use script to rename them. |
ReenigneArcher
commented
Feb 8, 2026
Can we have a second package.json that depends on the first one? And use second one only when we need the override? If we can reduce the duplication that would be ideal. |
rbqvq
commented
Feb 8, 2026
Or we can build them on a unified CI, and the CI of each OS builder only needs to pull the static resources that have been built. |
rbqvq
commented
Feb 8, 2026
@ReenigneArcher It should be fix in #4687 Actions for windows build still working: |
ReenigneArcher
commented
Feb 9, 2026
Any idea why dxgi.exe would be flagged for arm64? dxgi-info.exe: https://www.virustotal.com/gui/file/65c17513dd24e3e846be1ab518f99c2933cd795985763847d80d46f9be8fa0ec/detection |
So the expected result should be x86/x64? dxgi.exe is compiled by us or packed from somewhere? |
ReenigneArcher
commented
Feb 9, 2026
It's compiled in our CI, from the tools directory. Being compiled as arm64 is correct, I'm just wondering why it might be flagged for the arm64 version, but not the original version. Not a big deal though. |
rbqvq
commented
Feb 9, 2026
I think it might be website design, because most windows applications are x86/x64? You can try other arm64 and x86/x64 exe to see if there are some clues. |
EdgeUpdate.exe Tags:
bash.exe (Git For Windows) Tags:
git.exe (Git For Windows) Tags:
dxgi-info.exe Tags: |



Description
This PR adds an arm64 build for Windows.
Issues Fixed or Closed
Type of Change
.github/...)Checklist