Submitted today via DRM-Misc-Next for queuing in DRM-Next until the Linux 6.16 merge window in June is the Asahi driver user-space API “UAPI” header. This is the user-space API intended for the Asahi kernel graphics driver for supporting the Apple M-Series graphics hardware under Linux. But due to being written in the Rust programming language and various kernel abstractions not yet ready among other obstacles, only the user-space API header is set to be added and not yet introducing the actual Direct Rendering Manager driver.
Alyssa Rosenzweig has been working to upstream the user-space API header file for the Asahi driver to the mainline Linux kernel to ease in building the Mesa drivers against the mainline kernel rather than requiring any out-of-tree header files. The plan is to eventually have the Asahi kernel graphics driver in the mainline Linux kernel but more upstream work needs to happen first prior to that actually materializing.
Rosenzweig explained in the patch for just adding the UAPI bits:
“This adds the UAPI for the Asahi driver targeting the GPU in the Apple M1 and M2 series systems on chip. The UAPI design is based on other modern Vulkan-capable drivers, including Xe and Panthor. Memory management is based on explicit VM management. Synchronization is exclusively explicit sync.
This UAPI is validated against our open source Mesa stack, which is fully conformant to the OpenGL 4.6, OpenGL ES 3.2, OpenCL 3.0, and Vulkan 1.4 standards. The Vulkan driver supports sparse, exercising the VM_BIND mechanism.
This patch adds the standalone UAPI header. It is implemented by an open source DRM driver written in Rust. We fully intend to upstream this driver when possible. However, as a production graphics driver, it depends on a significant number of Rust abstractions that will take a long time to upstream. In the mean time, our userspace is upstream in Mesa but is not allowed to probe with upstream Mesa as the UAPI is not yet reviewed and merged in the upstream kernel. Although we ship a patched Mesa in Fedora Asahi Remix, any containers shipping upstream Mesa builds are broken for our users, including upstream Flatpak and Waydroid runtimes. Additionally, it forces us to maintain forks of Mesa and virglrenderer, which complicates bisects.
The intention in sending out this patch is for this UAPI to be thoroughly reviewed. Once we as the DRM community are satisfied with the UAPI, this header lands signifying that the UAPI is stable and must only be evolved in backwards-compatible ways; it will be the UAPI implemented in the DRM driver that eventually lands upstream. That promise lets us enable upstream Mesa, solving all these issues while the upstream Rust abstractions are developed.”
So it’s a step forward for open-source Apple M1 and M2 graphics but with Linux 6.16 there won’t be any actual usable mainline kernel graphics driver. At this stage there is just M1/M2 support with the newest M4 hardware expected to be a struggle for Linux support.
That UAPI header for Asahi was sent in today with this drm-misc-next pull.
Subsequently the Mesa Asahi AGX/Honeykrisp drivers have seen this MR merged today for Mesa 25.1 to use that to-be-mainlined user-space API. This is intended to work with both the OpenGL and Vulkan (Honeykrisp) drivers to work out-of-the-box with the upstream Mesa and a capable kernel driver / future yet-to-be-known mainline kernel version.