Eric Smith
July 15, 2024
Reading time:
The Panthor kernel driver and Mesa Panfrost driver combination has passed an important milestone. It is now officially conformant for OpenGL ES 3.1 on Mali-G610 (a chip in the 10th generation of Mali, aka "v10" or "Valhall"). This required passing tens of thousands of conformance test cases. Passing these tests gives hardware implementers and software adopters assurance that the driver is basically sound. This doesn't mean that Panthor and Panfrost are bug-free, of course. Software being software, there are always bugs! It does mean that it's unlikely that there are major issues remaining. Users can be confident that programs using OpenGL ES 3.1 will "just work" on the tested version of Mesa (24.1.1).
This milestone is naturally just another marker on a long journey. Panfrost had already achieved conformance on the Mali G52, as described by Alyssa Rosenzweig. Various other Mesa projects have passed conformance tests too (for example, Zink and NVK).
The conformance tests ran on a Rock5b board under Linux 6.10.0-rc1. This version of Linux contains the new Panthor kernel driver for Mali v10 (see Boris's post for more information about this driver). The RK3588 SoC used in the Rock5b is a popular chip for Arm-based single board computers. Having support for it upstream in both Mesa and the kernel means that Linux distributions can now easily support graphics acceleration on these devices.
In order to pass the conformance test suite, we had to track down a number of bugs. A few of these were straightforward. For example, we fixed a rare display synchronization problem by running under Wayland directly rather than going through the Xwayland layer. Most were subtle because Panfrost had already been fairly well exercised by the continuous integration tests that Mesa runs with every check-in. The bugs that the conformance test suite revealed were mostly race conditions within the driver (typically CPU/GPU synchronization problems), or rare combinations of formats and operations that hadn't previously been tested thoroughly. Some of the bug fixes were specific to Valhall GPUs. Some apply to earlier Mali GPUs as well. A few fixes required improvements to the Mesa infrastructure as a whole and hence will benefit other drivers.
Achieving conformance was the work of many developers both at Collabora and elsewhere. Boris Brezillon of Collabora took the lead in developing the Panthor kernel module, with able assistance from Steven Price and Liviu Dudau from Arm. Alyssa Rosenzweig initiated the Panfrost project. She and Boris worked on the initial version of the Mesa support for v10, and she continues to make valuable contributions even though her focus is now on other projects. Bug fixes and improvements were contributed by Boris, Erik Faye-Lund, Robert Mader, Antonino Maniscalco, Louis-Francis Ratté-Boulianne, Constantine Shablia, Eric Smith, and others. Mary Guillemard contributed important infrastructure support for Panthor, and Faith Ekstrand and Daniel Stone provided invaluable advice to the team. And of course none of this would have been possible without the open source Mesa project and the many, many individuals who have contributed to it over the years.
Looking to the future, we are working on improving Panfrost and Panthor support for all generations of Mali devices. And while the OpenGL ES implementation has passed conformance tests, there is still room for new features and improvements. Some of the things we have planned include:
The future is looking bright for Linux graphics on Arm-based GPUs!
20/12/2024
The Rockchip RK3588 upstream support has progressed a lot over the last few years. As 2024 comes to a close, it is a great time to have…
09/12/2024
Collabora will be at NeurIPs this week to dive into the latest academic findings in machine learning and research advancements that are…
05/12/2024
Now based on Debian Bookworm, Apertis is a collaborative OS platform that includes an operating system, but also tools and cloud services…
Comments (3)
Eli:
Jul 19, 2024 at 12:36 PM
Thank you :)
We all waiting for Vulkan
Reply to this comment
Reply to this comment
Ning:
Sep 05, 2024 at 05:01 AM
Thank you make it OpenGL ES 3.1, when could it reach OpenGL 3.3?
Reply to this comment
Reply to this comment
Eric Smith:
Sep 05, 2024 at 01:19 PM
We are working on adding new features to support OpenGL ES versions later than 3.1, but this is a significant amount of work and we don't have a schedule yet for when it might be ready.
Reply to this comment
Reply to this comment
Add a Comment