OpenGL ES 3.0 experimental support for Panfrost open-source Arm Mali GPU driver was announced in February 2020 and culminate with the release of Mesa 20.3 with Panfrost support last December.
Collabora has now started to work on Panvk, Panfrost Vulkan driver, but that does not mean OpenGL ES work is done, and the company has just published a blog post about OpenGL ES 3.1 support in Panfrost.
Alyssa Rosenzweig explains OpenGL ES 3.1 extends to both the older Midgard GPUs that include Mali T760 and newer version, and the more recent Bifrost GPUs with Mali-G31, Mali-G52 and Mali-G76.
Compared to OpenGL ES 3.0, OpenGL ES 3.1 adds compute shaders, indirect draws, and no-attachment framebuffers. Boris Brezillon, Italo, Nicola, Alyssa, and the wider Mesa community especially focused on Mali-G52 GPU, found for instance in Amlogic A311D and Rockchip RK3566, with Panfrost driver passing essentially all of drawElements Quality Program and Khronos conformance tests, with the ultimate goal of becoming formally OpenGL ES 3.1 conformant. The work on Bifrost also helped Midgard support with, for instance, Mali T860 passing about 99.5% of tests required for OpenGL ES 3.1 conformance.
Other changes made to Panfrost driver include the addition of an instruction scheduler to the Bifrost compiler, and the implementation of “dirty tracking“, a common graphics driver optimization that tracks state changes to monitor “dirty” (modified) and “clean” (unmodified) states in order to only emit commands for the dirty state, reducing CPU overhead, and the work required by the GPU. Dirty tracking in Panfrost improved draws per second in one unnamed synthetic benchmark by about 400%.
Going forward, Panfrost OpenGL ES 3.1 support will be polished for the Mesa 21.2 release next month, followed by some Bifrost performance improvements, and support for Arm Valhall GPUs (Mali G77 and newer) will be introduced later on.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Question: Does ARM (maker of Mali GPU) help on these efforts? Or is it pure reverse-engineering by the OSS developers?
Yes, they do: https://www.cnx-software.com/2020/09/18/arm-officially-supports-panfrost-open-source-mali-gpu-driver-development/
Ah, thanks. And apparently ARM can’t opensource their existing drivers’ code?
In the past, Arm was not happy about projects like lima (for Mali-400), and I think they came late for Panfrost, but as they say “better late than never”.
I think Arm can’t just release their source because of legal issues (patents), at least that should be one of the reasons.
In an ideal world, they would.