-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Known IssuesIt crashed after moonlight connect
|
0ccee19
to
4039fec
Compare
src/config.cpp
Outdated
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.
The changes in this file don't make sense.
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.
clangarm64 not support std
must use ::std
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.
its necessary for clangarm64
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.
What about the other hundreds of files?
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.
There is no problem.
After changing this file, clangarm64 works correctly
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 think it only happend in config::amd
namespace, might it same error on x86?
Can u check it on Clang64?
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
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.
that's a great resolution
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.
the problem is actually caused by ln 115-117 in config.cpp
. it imports headers in namespace amd
, and the headers include std
headers, which makes std
redefine in namespace amd
:
Lines 115 to 117 in a3ee774
#include <AMF/components/VideoEncoderAV1.h> | |
#include <AMF/components/VideoEncoderHEVC.h> | |
#include <AMF/components/VideoEncoderVCE.h> |
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. |
|
||
// conditional includes | ||
#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(__amd64__) || defined(_M_AMD64) | ||
#include <MinHook.h> |
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 think we can/should do this. It might work now by luck because none of the Windows ARM64 machines out in the wild have a discrete GPU, but it is definitely not guaranteed to continue working. We should look into hooking libraries that support ARM64, like Detours.
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.
MediaTek + NVIDIA SoCs in 2026
I'm not sure if this is integrated or discrete graphics.
At least until then, we don't have to do this.
We don't have any discrete GPU drivers for windows on arm
Step by step, complete the initial support first
MinHook does not support arm64, add conditional check Signed-off-by: Coia Prant <[email protected]> Co-authored-by: ReenigneArcher <[email protected]>
Steam Audio Driver unavailable on Windows Arm64, add check Signed-off-by: Coia Prant <[email protected]>
For AMF `#include`, clang will resolve `std` to `config::amd::std` Use `::std` to force resolution to the global namespace Signed-off-by: Coia Prant <[email protected]> Co-authored-by: Ricky8955555 <[email protected]>
SyntheticPointerDevice does not support arm64, add conditional check Signed-off-by: Coia Prant <[email protected]>
CLANGARM64 does not have libatomic which used by googletest, disable it Signed-off-by: Coia Prant <[email protected]>
6862e9c
to
b720ab7
Compare
Boost v1.87.0 is not currently compatible with WoA, backport the following context: Support building assembly files for mingw-w64 on arm64 with CMake Link: boostorg/context@f82483d uuid: Do not link to libatomic under any Clang/Windows Link: boostorg/uuid@434329f Signed-off-by: Coia Prant <[email protected]>
Add windows arm64 documents. Signed-off-by: Coia Prant <[email protected]> Co-authored-by: ReenigneArcher <[email protected]>
nsis does not support arm64, so we cannot create an installer at this time Signed-off-by: Coia Prant <[email protected]> Co-authored-by: ReenigneArcher <[email protected]>
Add missing TOSTRING for ICON Signed-off-by: Coia Prant <[email protected]>
|
Description
This PR adds an arm64 build for Windows.
Todo:
Cross compile build-deps for arm
Some dependencies not available in clang-aarch64 environment
Screenshot
Issues Fixed or Closed
Type of Change
.github/...
)Checklist
Question
Should we need disable all x86 hardware accel (nvenc, intel quicksync and amdvce) on windows arm64 build?