It's not that simple. The biggest issue is that Apple Silicon uses 16K memory page sizes instead of the 4K pages used by pretty much every other architecture out there. This means you'd need a kernel patched for 16K pages - but that would also cause an issue with drivers and other apps designed with 4K pages in mind. So there's a lot of work done in that area to get both the kernel and apps working. Even then, some apps may never work, and so you'd have to resort to using hacks like microVMs to run a 4K kernel and then run the app on top of it, but that introduces it's own set of issues of course.
Then there's the issue of hardware components - of course Apple hasn't open-sourced any of their firmware/drivers, so most of the Asahi drivers were developed by reverse engineering. The GPU was the biggest piece of work, the reverse engineering done to get it to a workable state by the Asahi team was nothing short of genius. In fact the current state of the OpenGL driver is so good that it's far, far more compliant to the spec compared to macOS itself - macOS only supports OpenGL upto 4.1 and is not certified either (and technically no longer supported by Apple), whereas Asahi supports up till 4.6 - and it's still being improved. See: https://arstechnica.com/gadgets/2024/02/asahi-linux-projects-opengl-support-on-apple-silicon-officially-surpasses-apples/
Similarly, a lot of wizardry was done to get the sound going, and not only did they get it going - they even improved the DSP so it sounds even better than macOS! (Scroll down to the speakers section here: https://asahilinux.org/2024/01/fedora-asahi-new/).
But in spite of all that, there's still a lot of work to be done, such as getting Thunderbolt and DisplayPort going, as well as improving compatibility with x86 apps (using krun and FEX) and more GPU improvements etc and support for the M3 and newer chips.. Even then, Asahi is already in a usable daily-driver state for many users, and it's improving at a rapid pace.
So long story short, the Asahi team had to do a ton of work to get it all going on a complex, closed piece of hardware like Apple Silicon - and it's genius levels of work, the level of which I can barely comprehend - and isn't something any random distro can pull off.
In the footnotes they mention GPT-3.5. Their argument for not testing 4 was because it was paid, and so most users would be using 3.5 - which is already factually incorrect now because the new GPT-4o (which they don't even mention) is now free. Finally, they didn't mention GPT-4 Turbo either, which is even better at coding compared to 4.
Bazzite. Here's why:
But since you said:
how to squeeze the best performance out of this
and if you're really serious about squeezing the best performance, then check out the Arch-based CachyOS - unlike most other Linux distros, Cachy has optimised x86-64-v3 and v4 packages in their repos, which means apps can make use of advanced CPU instructions such as SSE3, AVX512 etc. Most other Linux distros on the other hand still use x86-64-v1 for compatibility reasons, which unfortunately means that you'd be missing out on all the cool new optimised CPU instructions introduced over the past 16 years.
You can read more about microarchitecture levels (aka MARCH
) here: https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
In addition to the MARCH
, Cachy's packages have other optimisations such as LTO/PGO, optimised kernel with the BORE and Rusty schedulers which are better for gaming, plus several performance-oriented tweaks which you'd otherwise have to do manually on Arch (such as makepkg.conf tweaks, pacman.conf tweaks etc).
Finally, Cachy are always on the bleeding edge when it comes to gaming/driver/kernel/performance related stuff, so you'll get all the good stuff even before Bazzite or other optimised distros. For instance, Cachy was the first distro to include the new nVidia driver which has explicit sync support for better Wayland compatibility, and they're always on top of major Arch developments and provide detailed announcements which are relevant to gamers and performance freaks.
Eg, here's their recent recent nVidia announcement:
Hi @here,
as you maybe noticed, we have rolled out the new NVIDIA Driver, which includes the explicit sync protocol and tearing for Vulkan. We have been prioritized to move this forward to finally resolve the wayland situation. Additionally arch has pushed CUDA to 12.5, which is NOT compatible with the current 550 driver (it needs the 555 Driver).
The beta driver is not perfect, but so far we are applying some fixes to avoid issues and restore performance problems with disabling the GSP Firmware load. This is handled via the "cachyos-settings" package.
Anyways, since some people maybe have problems with this driver, here is a short instruction to manually downgrade and block the driver:
[...]
If you are facing issues with the new NVIDIA Driver, reproduce the issues and then run "sudo nvidia-bugreport.sh" and report it to their forum: https://forums.developer.nvidia.com/c/gpu-graphics/linux/148
We are also shipping now an precompiled nvidia-open module. This will be also as default installed for users, which have supported cards as soon NVIDIA releases the 560 drivers.
The CachyOS Team
So as you can see, they're pretty on to it with this sorta stuff.
Now the Bazzite team are also like the Cachy guys and keep up with this stuff, but because they're based on Fedora, they can't be as bleeding edge or as optimised as Arch. So it's up to you - if you prefer stability, a primarily gaming-focused optimisations, and want something that "just works" then get Bazzite; or if you want an ultra-optimised distro to squeeze out the most performance out of your box but also don't mind ocassionally diving into the terminal and getting your hands dirty, then get CachyOS.
I wouldn't recommend it in your case. Mind you, Arch is easy enough to install with the archinstall script or say using EndeavourOS, but the issues come afterwards. For starters, you'll need to occasionally deal with .pacsave/.pacnew files when you do an update, keep up with Arch news and be aware of breaking changes which may require some non-trivial manual intervention, like in this post for example: https://lemmy.nz/post/7648427
So if you're after something that "just works", then Arch isn't for you. Since you're into gaming and you're lazy, Bazzite would be an excellent choice as its an immutable OS with atomic updates (updates either work or don't, there's no middle/broken state). But if you're after a more traditional distro (ie, non-immutable), Nobara or Pop!_OS also work well for gaming.
You'll need to bind a hotkey to a third-party tool such as ydotool.
Eg using ydotool, the command would be ydotool click 0xC1
I've heard of Intel Arc users for instance not able to play certain games because it checks for AMD/nVidia, so you'd have to fake the GPU vendor to get it to work.
Eg see stuff like this: https://www.phoronix.com/news/Intel-Graphics-Hogwarts-Legacy
Or https://www.phoronix.com/news/The-Finals-Intel-Arc-Graphics
If you want to make it fancy we could do a presentation type thing, like via slidesgo.com or similar, but since this is on/for Lemmy, I think we should just keep it simple and make it a normal post.
Woah, can't believe it's been an year already!
For the anniversary day, maybe we could have a post showcasing a few highlights of our community over the past year, something like Spotify's Wrapped, but for Lemmy - so maybe a highlight of the most upvoted posts/comments, most profilic posters, membership counts, major server changes and little victories (maybe share some of your experiences in keeping the ship afloat)?
@d3Xt3r
@lemmy.nz