Asahi Linux boasts running AAA Windows games

"Control" running on Asahi Linux

«Control» running on Asahi Linux

It seems that all the wonders that were painted about the “Asahi Linux” project will not be just words, since the developers of the distribution have been working hard since the announcement of the project to take this Linux distribution to another level.

Asahi Linux is just over three years old development and in such a short time it has managed to differentiate itself from other distributions, not only because of its feature of running on computers with the Apple chip M1, ProM1, MaxM2, M2, ProM2, Max and M2 ultra, but also for making great strides in the graphics department of Linux.

And it is that recently The Asahi Linux development team has introduced a set of tools that allow you to run AAA games on computers with the Apple M1 chip and it is mentioned that one of the main technical challenges was the difference in the size of the memory pages, since programs compiled for the x86 architecture are designed to use 4K pages, while Apple systems use 16K pages.

To resolve this discrepancy, A second Linux kernel was implemented in a virtual environment, specifically assembled to handle different memory page sizes. This is achieved thanks to the muvm tools that allow games to run on independent virtual machines, each with its own kernel.

There is one problem: page size. Operating systems allocate memory in fixed-size “pages.” If an application expects pages smaller than the system uses, they will crash due to insufficient alignment of the allocations. That’s a problem: x86 expects 4K pages, but Apple systems use 16K pages.

While Linux can't mix page sizes between processes, it can virtualize another Arm Linux kernel with a different page size. So we run games inside a small virtual machine using muvm , going through things like the GPU and game drivers. The hardware is happy because the system is 16K, the game is happy because the VM is 4K, and you're happy because you can play Fallout 4 .

The tools are designed to support AAA games available on Steam, originally compiled for the x86_64 architecture. The toolkit combines drivers developed by Asahi Linux, that implement the Vulkan 1.3 and OpenCL 3.0 APIs, along with components that emulate the x86_64 architecture and provide support for Windows games.

Fallout4 - Asahi Linux

Fallout 4 on Asahi Linux

As for more graphically demanding games, such as The Witcher 3 and Ghostrunner, which rely on the use of tessellation and geometry shaders, Computational shader emulation is used for them to work correctly.

However, some key features are still in development. For example, the Honeykrisp driver already supports sparse textures, an essential feature for games using DX12 such as Cyberpunk 2077, but details are being fine-tuned to improve performance. Additionally, optimizations are being worked on to ensure games reach a smooth 60 FPS in these emulated environments.

It is worth mentioning that Packages required to enable this functionality are now available in the standard repository of the Fedora Asahi Remix distribution. To run games, users only need to update drivers using the command:

sudo dnf update --refresh

After that you can install Steam with

sudo dnf install steam

And it will automatically install all the required dependencies.

Finally, it is also worth mentioning that it includes the Vulkan Honeykrisp driver, the FEX emulator (which allows running x86 applications on ARM systems), the Wine project, and the DXVK and vkd3d-proton layers, which implement the DirectX API on top of Vulkan.

The developers mention that due to the overhead introduced by the emulation process, it is recommended that systems have at least 16GB of RAM and that they also already work in general-purpose x86 emulation.

Finally, if you are interested in knowing more about it, you can consult the details in the following link