Asahi Open Source Driver Receives Certification for OpenGL 4.6 Support on Apple M1 and M2 Chips

In Asahi, an open source driver for the Apple AGX GPU, provided support for OpenGL 4.6 and OpenGL ES 3.2 for Apple M1 and M2 chips. It is noteworthy that the native graphics drivers for Apple's M1 chips only implement the OpenGL 4.1 specification, and support for OpenGL 4.6 was the first to appear in an open driver. Ready-made driver packages are already included in the Fedora repositories and are available for use in a specialized build Fedora Asahi Remix 39designed for installation on systems with Apple ARM chips.

Moreover, the Khronos consortium, which develops graphics standards, has recognized the full compatibility of Asahi's open driver for the AGX GPU, supplied in Apple M1 and M2 chips, with the OpenGL 4.6 and OpenGL ES 3.2 specifications. The driver successfully passed all tests from the CTS (Kronos Conformance Test Suite) and included V list certified drivers. The test was performed on Apple M1, M1 Pro/Max/Ultra, M2 and M2 Pro/Max devices in an environment with the Asahi Linux distribution Fedora Remix, Mesa 24.0.0 and X.Org X Server (X11_GLX). Apple's original proprietary drivers for the M1 and M2 chips are not yet included in the list of Khronos certified drivers. Obtaining the certificate allows you to officially declare compatibility with graphics standards and use the associated Khronos trademarks.

Advertisement

The M1 GPUs lack some hardware capabilities required to implement OpenGL ES 3.2 and OpenGL 4.2, so such missing functionality was implemented using existing features. For example, geometry shaders, tessellation and transform feedback are implemented using compute shaders, cull distance is implemented through interpolation, and clip control is implemented through the vertex shader epilogue. In the future, the development of open drivers for the Apple AGX GPU will focus on providing support for the Vulkan graphics API, the implementation of which is planned to use part of the already tested standard code used in drivers for OpenGL.

To support the GPU AGX chips Apple M1 and M2, two drivers are being developed that work in conjunction with each other: DRM driver (Direct Rendering Manager) drm-asahi for the Linux kernel, written in Rust, and driver asahi for Mesa, written in C. The kernel-level driver is designed from the ground up to support future Vulkan API support, and the user-space interface is designed to take advantage of the UAPI provided by the new Intel Xe driver. Because Apple's M1/M2 chips use a proprietary GPU that runs proprietary firmware and uses fairly complex shared data structures, the development of independent drivers involves reverse engineering the drivers from macOS.

Thanks for reading:

Advertisement