The developer Alyssa Rosenzweig has published an initial free 3D graphics driver called AGX for the GPU in Apple’s ARM SoC M1 as open source.
The driver code is based on the userspace library Mesa and uses its internal Gallium3D infrastructure, on which many other free 3D drivers are based.
As Rosenzweig writes in a blog post published on this, the driver that is now available is an implementation of large parts of the OpenGL 2.1 and OpenGL ES 2.0 specifications. With the help of the free driver and the associated compiler, it is possible to display simple OpenGL applications on Apple M1. Rosenzweig names the Glxgears contained in Mesa or scenes from the Glmark2 benchmark collection as examples.
The Gallium framework enables the focus on the work on the driver backend, since in the frontend, for example, for OpenGL, a lot of existing parts can be reused, says Rosenzweig. This obviously helps a lot, especially with the driver code for the Apple M1 GPU, since the developer lists numerous specific examples she uses.
Despite the published userspace driver, according to Rosenzweig, the implementation of the Linux kernel driver remains. This is usually rather simple, and the complex part lies in the userspace part of the driver.
Rosenzweig writes — “The good news is many of these elements can be simplified when we write a Linux kernel driver. The bad news is that they do need to be reverse-engineered and implemented in Mesa if we would like native Vulkan support on Macs.”
The reverse engineering of the Apple GPU in the ARM SoC M1 by Rosenzweig and other parties involved is part of the Asahi Linux project, which is aiming for a Linux port on the new Macs with the so-called Apple Silicon CPU. The first part of the work required for this has already landed in the Linux kernel.