We're hiring!
*

Taming the Panthor: OpenGL ES 3.1 conformance achieved on Mali-G610

Eric Smith avatar

Eric Smith
July 15, 2024

Share this post:

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:

  • support for performance counters to assist programmers in optimizing their graphics code
  • support for device coredump, to assist in debugging firmware and driver issues
  • support for the new Arm AFRC compression format for frame buffers 
  • improving memory management to allow better behavior in low memory situations
  • general performance improvements
  • and of course Vulkan support (although this may take a while!)

The future is looking bright for Linux graphics on Arm-based GPUs!

 

Comments (3)

  1. Eli:
    Jul 19, 2024 at 12:36 PM

    Thank you :)
    We all waiting for Vulkan

    Reply to this comment

    Reply to this comment

  2. 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

    1. 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






Allowed tags: <b><i><br>Add a new comment:


 

Search the newsroom

Latest News & Events

Upstream support for Rockchip's RK3588: Progress and future plans

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…

Academically inclining at NeurIPS 2024

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…

Apertis v2024: the new Bookworm-based release for industrial embedded devices

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…

Open Since 2005 logo

Our website only uses a strictly necessary session cookie provided by our CMS system. To find out more please follow this link.

Collabora Limited © 2005-2024. All rights reserved. Privacy Notice. Sitemap.