Panfrost now supports OpenGL ES 3.1 on Midgard (Mali T760 and newer) and Bifrost (Mali G31, G52, G76) GPUs

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.

Panfrost OpenGL ES 3.1

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.

Share this:

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
5 Comments
oldest
newest
Sander
Sander
1 month ago

Question: Does ARM (maker of Mali GPU) help on these efforts? Or is it pure reverse-engineering by the OSS developers?

sander
sander
1 month ago

Ah, thanks. And apparently ARM can’t opensource their existing drivers’ code?

nobitakun
nobitakun
1 month ago

In an ideal world, they would.

Advertisements