Boris Brezillon
March 04, 2024
Reading time:
Late last week, the long-awaited kernel driver that added support for 10th-generation Arm Mali GPUs, aka third-generation Valhall, was merged into drm-misc. This brings supports for GPUs such as the Mali-G310, and Mali-G610. With the usual Linux release cycle, we expect this driver to land in Linux v6.10.
Not long after the kernel driver was merged, the mesa merge request extending the existing Gallium driver to support these new GPUs was merged too, effectively enabling GPUs on Rockchip's RK3588 platforms.
This is a two-year effort finally coming to an end. This all started with a proof-of-concept developed by Alyssa, which was based on Arm's kernel driver. But, as has already been the case for the older generation of Mali GPUs, the intent has always been to provide a more mainstream DRM driver (I won't go over the reasons that lead us to develop a new driver, but if you are interested this was explained in this blog post).
During these two years a lot has changed. The internal DRM APIs that were discussed between Nouveau and Intel to support modern graphics API were merged. And, with the development of Panthor happening around the same time, we were able to influence their design to cover our use cases.
Another huge change is Arm officially joining the party. We were not only given access to some documentation, but they also took an active part in the review process and two developers are currently flagged as co-maintainers of the kernel driver. Some would say that this was already the case when Panfrost got merged, but we have strong reasons to believe Arm's involvement is going to grow outside the kernel space this time.
As one can imagine, making this happen was a team effort, and I would like to thank all the people involved, starting with Alyssa, without whom none of this could be possible. Big thanks to Steven Price and Liviu Dudau from Arm, who helped with the kernel driver development, and Ketil Johnsen who did a bit of review on the Gallium driver. On Collabora's side, I would like to thank Daniel Stone for his indefectible support, and Erik Faye-Lund for his help throughout the project. Last but not least, I would like to thank Danilo Krummrich for his patience and insightful suggestions when I was bothering him with Panthor needs for the DRM GPUVM framework.
Releasing an official GLES driver has been our primary goal thus far, but we have bigger plans. As some might have noticed, we are working on a Vulkan driver for these new GPUs and expect to get the existing Vulkan driver for older generations in better shape along the way. It's too early to share anything, but stay tuned.
We also have a lot of work to do on the tooling front to get the Panthor ecosystem on par with its Panfrost counterpart. We started working on an implementation for performance counters, and plan to add devcoredump support at some point. Command stream tracing is also on our TODO list, just like any other debugging infrastructure we might need to help us debug driver issues and/or provide application developers with tools they can use to optimize their applications.
Another big thing on our list is better graphics memory management; to allow the kernel to reclaim graphics memory on inactive GPU contexts when the system is under pressure, and transparently restore these graphics objects when the GPU contexts get active again.
If you're interested in helping out or simply want to know more about our progress, feel free to reach out on the #panfrost IRC channel on OFTC.
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…
03/12/2024
Initial support for Rockchip's RK3576, a new SoC introduced earlier this year, has landed in Linux kernel 6.12. With the main target being…
Comments (0)
Add a Comment