Screenshot of Blender running on Apple M1 on Fedora Linux 39
The project development team AsahiLinux (the project that aims to support Linux on Apple Silicon Macs and which we have already talked about here on the blog) dio recently announced that it has achieved compatibility of support for OpenGL 4.6 and OpenGL ES 3.2 on Apple M1 and M2 chips.
It is important to point out that the native graphics drivers for Apple M1 chips They only implement the OpenGL 4.1 specification, which makes support for OpenGL 4.6 a notable advancement.
With this announcement the project has surpassed Apple's implementation by supporting OpenGL ES 3.1 and OpenGL 4.6, as Apple shifted its focus to its proprietary “Metal” graphics API, moving away from OpenGL support
Drivers that comply with 4.6/3.2 must pass more than 100.000 tests to ensure correctness. The official list of supported drivers now includes OpenGL 4.6 and ES 3.2.
While the vendor doesn't yet support graphics standards like modern OpenGL, we do. This Valentine's Day, we want to profess our love for interoperable open standards. We want to free users and developers from lock-in, allowing applications to run anywhere they want without special ports.
Among the features that stand out from the jump from OpenGL 4.1 to OpenGL 4.6, the following are mentioned:
- Compatibility with modern applications: The update promises greater support for modern OpenGL workloads, such as Blender, Ryujinx, and Citra, thanks to drivers compliant with the latest versions.
- Standards Compliance: The new drivers have passed more than 100,000 tests to ensure correctness and compliance with standards. They are now on the official list of compliant drivers for OpenGL 4.6 and ES 3.2.
- Robustness and security: The importance of robustness and security in graphics drivers is emphasized, especially in environments where untrusted shaders are handled, such as web browsers.
- Performance optimization: Despite the new features and added robustness, we seek to minimize the impact on performance, with strategies such as the efficient use of instructions and preambles for repetitive calculations.
- Mipmapping support: A specific problem related to mipmapping is detailed and a solution approach that balances efficiency and standards compliance is proposed.
Furthermore, the Khronos consortium has recognized the full compatibility of the controller Open Asahi for the AGX GPU, present in the Apple M1 and M2 chips, with OpenGL 4.6 and OpenGL ES 3.2 specifications. This driver has successfully passed all CTS tests (Kronos Conformance Test Suite) and is included in the list of 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 Fedora Remix distribution, Mesa 24.0.0 and X.Org X Server (X11_GLX).
It is important to mention thatApple's original proprietary drivers for the M1 and M2 chips are not yet included on the list of Khronos certified drivers. Obtaining this certificate allows the Asahi open controller to officially declare its compatibility with graphics standards and use the associated Khronos trademarks.
Since the M1 GPU lacks some hardware capabilities necessary to implement OpenGL ES 3.2 and OpenGL 4.2, missing functionality has been implemented using existing features. For example, geometry, tessellation, and transform feedback shaders have been implemented using computational shaders, among other methods.
Finally it is mentioned that In the future, open driver development for the Apple AGX GPU will focus on providing support for the Vulkan graphics API. The Vulkan implementation will use some of the already proven standard code used in drivers for OpenGL, representing a step forward in the ecosystem of open drivers for Apple AGX GPUs.
Ready-to-use driver packages are now available in the Fedora repositories and can be used in a specialized version of Fedora called Asahi Remix 39, designed for installation on systems with Apple ARM chips.
To install them just run:
dnf upgrade --refresh
If you are interested in knowing more about it, you can check the details In the following link.