Apple Silicon GPU Driver is Now Available in Asahi Linux

We finally have a GPU driver for Apple M silicon systems on Asahi Linux.

Apple Silicon GPU Driver is Now Available in Asahi Linux

Asahi Linux aims to be a port of Linux for Apple Silicon Macs; work started on it back in 2020, right after the launch of Apple's M1 chips at the WWDC event.

A small team is behind all the development behind Asahi Linux and reverse engineering stuff; they have been quite busy since the last time we looked at their work.

Previously, they worked on improving support for Apple SoCs such as the M1, M1 Pro, and M1 Max. They provided varying levels of support for devices that used these chips.

It still is a work in progress, but promising results in 2022.

Asahi Linux Distro Improves Apple M1 Support With First Alpha Release
In 2020, Apple unveiled the M1 at the WWDC event. This reveal brought significant performance improvements and better power efficiency, although it did have one major drawback. This was the software support, as it meant that it was no longer possible to boot a “normal” X86 distro on new Apple

They have now taken it further by providing initial support for Apple Silicon GPUs by releasing drivers (in alpha).

That sounds great! 😃

Let me take you through the gist of it.

Hardware Acceleration With Desktop Environments and Old Games

asahi linux running quake3

Introduced as an alpha-stage GPU driver, it can run desktop environments and a few games smoothly.

The implementation: The driver features a work-in-progress implementation of OpenGL 2.1 and OpenGL ES 2.0 for current Apple M-series systems.

They also mention that:

These drivers have not yet passed the OpenGL (ES) conformance tests. There will be bugs!

So, you can expect plenty of hiccups along the way should you choose to run applications using these drivers.

How it works now?: In its current form, the driver can run desktop environments like GNOME and KDE Plasma with hardware acceleration.

Even older games like Quake3 and Neverball can run quite well, with these and the desktop environments running at a solid 60 fps at 4k resolution.

Many users may also notice that quite a few apps don't work with this driver right away. On that, the developers mention:

Since the driver is still in development, there are lots of known issues and we’re still working hard on improving conformance test results. Please don’t open new bugs for random apps not working! It’s still the early days and we know there’s a lot of work to do.

What does the future hold?: The developers have said that while OpenGL (ES) 2 suffices for some applications, newer applications will require new features such as multiple render targets, multisampling, and transform feedback.

All of this can be achieved with OpenGL (ES) 3, and work on that has already started. But, it will need a lot of developmental effort to get ready.

They have also hinted at support for Vulkan in the future, although it is a long time in the making.

Here's what they tell about it:

We’re working on it! Although we’re only shipping OpenGL right now, we’re designing with Vulkan in mind. Most of the work we’re putting toward OpenGL will be reused for Vulkan.

We estimated that we could ship working OpenGL 2 drivers much sooner than a working Vulkan 1.0 driver, and we wanted to get hardware accelerated desktops into your hands as soon as possible.

When a Reddit user asked about 120 Hz support for MacBook Pro, one of the maintainers had this to say:

120Hz is disabled because it still is capped at 60Hz if we do nothing and was having other weird issues. It's still unclear exactly how VRR works on macOS, we need to figure that out first.

It seems like Asahi Linux has a lot of room to grow, and improvements like this to GPU drivers on a new Silicon system should finally open up new opportunities in terms of performance.

Linux users have been asking for something like this for a long time, and it is now closer to becoming a reality than ever before.

If you are feeling adventurous and want to try the new GPU driver, you can try installing it on your Asahi Linux system. Refer to the official announcement for instructions to experiment with it.