-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
build(windows): add arm64 initial support #3905
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
0ccee19 to
4039fec
Compare
b158d6d to
283ab4c
Compare
|
Can we use this hardware encode? 🤔 |
|
I think MF encoder is already included with the FFmpeg build, so why not? |
Well, I didn't read the source code of sunshine. |
This comment was marked as resolved.
This comment was marked as resolved.
9d0c82c to
b0e2234
Compare
48376c4 to
a3ee774
Compare
|
ci has been refactored a bit, the windows build is now in a separate workflow. It's already setup for a matrix build so should be easy to adapt your changes. |
|
Builds failed with |
Bundle ReportBundle size has no change ✅ |
| option(BUILD_DOCS "Build documentation" ON) | ||
| option(BUILD_TESTS "Build tests" ON) | ||
|
|
||
| # CLANGARM64 does not have libatomic which used by googletest, disable it |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you open an issue here? https://github.com/google/googletest/issues
It seems like there's really only one place where atomic is used, maybe they can easily work around it when it's not available. https://github.com/search?q=repo%3Agoogle%2Fgoogletest%20atomic&type=code
Or we should use the gtest provided by msys2? https://github.com/msys2/MINGW-packages/tree/ab284e9ffd0590397c948f56ac889208464fb0dd/mingw-w64-gtest
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know, I think you can open a issue for it
:(
|
wix installer is working now, could you test it in combination with the arm build? I still need to make a few tweaks to that PR though. |
|
Wow, its a good news. I will test it later. |
MinHook does not support arm64, add conditional check Signed-off-by: Coia Prant <coiaprant@gmail.com> Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Steam Audio Driver unavailable on Windows Arm64, add check Signed-off-by: Coia Prant <coiaprant@gmail.com>
52fb69c to
885b977
Compare
Use ::std:: fully qualified namespace in template functions to avoid ambiguity with clang namespace resolution. Signed-off-by: Coia Prant <coiaprant@gmail.com> Co-authored-by: Ricky8955555 <rkmiao@duck.com>
Clang does not have libatomic which used by googletest, So disable it Signed-off-by: Coia Prant <coiaprant@gmail.com>
Add windows arm64 documents. Signed-off-by: Coia Prant <coiaprant@gmail.com> Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
nsis does not support arm64, so we cannot create an installer at this time Signed-off-by: Coia Prant <coiaprant@gmail.com> Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
Add missing TOSTRING for ICON Signed-off-by: Coia Prant <coiaprant@gmail.com>
Add vendor ID detection for Qualcomm Adreno GPUs: - 0x4D4F4351: "QCOM" in ASCII (reversed as little-endian) - 0x5143: Alternate Qualcomm vendor ID When a Qualcomm GPU is detected, only Media Foundation encoders (h264_mf, hevc_mf, av1_mf) are considered compatible, as Qualcomm doesn't support NVENC, AMF, or QSV encoder APIs.
Add Windows Media Foundation hardware encoder support for platforms that don't have NVENC, AMF, or QSV (primarily Qualcomm Snapdragon). Encoders added: - h264_mf: H.264 via Media Foundation - hevc_mf: HEVC via Media Foundation - av1_mf: AV1 via Media Foundation Configuration: - Uses D3D11VA hardware device for GPU texture input - CBR rate control with display_remoting scenario for streaming - Only supports SDR 4:2:0 8-bit (Qualcomm MF encoder limitation) - Fixed GOP size of 120 frames since MF doesn't support on-demand IDR The mediafoundation encoder is probed after quicksync and amdvce, serving as a fallback for ARM64 Windows devices.
…llup - Add `@rollup/wasm-node` to devDependencies. - Use npm overrides to force Rollup to use the WASM version. - Fixes "Node-API symbol not loaded" and "parseAsync is not a function" errors specifically occurring in MSYS2 ClangARM64 environment. Signed-off-by: Coia Prant <coiaprant@gmail.com>
|
All thing done. Pre-built portable can find at https://github.com/rbqvq/Sunshine/actions/runs/21646290004 |
|
|
I think we can provide only portable version for windows arm64 currently, installer will be delay. OBS Studio also don't have a installer, only portable. So I think its okay. If you agree I will update markdown docs |



Description
This PR adds an arm64 build for Windows.
Todo:
Cross compile build-deps for arm
Some dependencies not available in clang-aarch64 environment
Type of Change
.github/...)Checklist
Question
Should we need disable all x86 hardware accel (nvenc, intel quicksync and amdvce) on windows arm64 build?