Skip to content
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

Add ARM64 targets for Windows and Linux #170

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft

Conversation

kvnp
Copy link

@kvnp kvnp commented May 14, 2024

This PR attempts to add ARM64 targets for Windows and Linux. The arm64 build for Windows seems to work out of the box.

There are two issues I'm currently facing:

  1. Squirrel does not distinguish between multi-target builds. The releasified package does not take into account the architecture, which is given by changing the filename of the packed .nupkg file. This means that packages built for other Windows targets will be replaced, as will the entries in the RELEASES file. According to this issue How to release both x64 and ia32 versions Squirrel/Squirrel.Windows#554, a separate endpoint per target is required. This means that a separate release per architecture is required in osus releases page to solve this problem, which is not a pretty solution. What are your thoughts on this?

  2. The Linux builds compile but do not currently run. It's not clear to me how the dependencies in the folder ./osu/osu.Desktop/bin/Debug/net8.0/runtimes/linux-arm64/ are collected, as no error messages appeared during compilation. Some libraries are missing when compared to those under win-arm64. For example, bass_fx. Any advice on this matter is greatly appreciated.

@smoogipoo
Copy link
Contributor

x86 builds will never be supported. Please remove.

@smoogipoo
Copy link
Contributor

smoogipoo commented May 14, 2024

Here's a list of tasks:

Also, I don't currently own a win-arm64 machine to test with, complicating things a bit (will look into it, but this is not a priority because it emulates win-x64 anyway and otherwise has a low userbase).

@kvnp kvnp changed the title Add x86 and ARM targets (Windows and Linux) Add ARM64 targets for Windows and Linux May 14, 2024
@kvnp
Copy link
Author

kvnp commented May 15, 2024

I rewrote the build script for SDL3 using Docker, and while the build times are not great, it looks promising. However, Git is not happy for some reason.

https://github.com/kvnp/SDL3-CS/actions/runs/9088862218

@kvnp
Copy link
Author

kvnp commented May 19, 2024

PRs for SDL3-CS, Veldrid-Spirv and ffmpeg have been opened.

How should I approach this? Just add these to a PR?

  • Anticheat is not compiled for linux-arm64. This is somewhat difficult to do at the moment.

Is there anything I can do to get this task done?

@ThatStella7922
Copy link

Figured I'd add, Windows ARM64 is exceptionally easy to test with because of Apple Silicon Macs. VMWare Fusion is free and runs Windows 11 ARM64. It's able to run osu!lazer perfectly fine with the Veldrid DX11 and OpenGL renderers, and you have the full suite of Visuai Studio ARM64 dev tools as well.

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.

3 participants