We're hiring!
*

Experimental Panfrost GLES 3.0 support has landed in Mesa

Alyssa Rosenzweig avatar

Alyssa Rosenzweig
February 27, 2020

Share this post:

Reading time:

In the early days of Panfrost, the free and open-source graphics driver for Mali GPUs, we focused on OpenGL ES 2.0. Many applications and games work have basic support for ES 2.0 but for advanced rendering require the newer, more featureful OpenGL ES 3.0... for which Panfrost now has initial support!

ES 3.0 adds dozens of new features to ES 2.0 to enable faster and more realistic rendering. To support it, we've added features to Panfrost like instanced rendering, primitive restart, uniform buffer objects, 3D textures, and multiple render targets (on Mali T760 and up). Features like instanced rendering and primitive restart allow developers to write faster graphics applications, to render efficiently scenes more complex than possible in ES 2.0. Features like uniform buffer objects and 3D texture give developers a more natural environment to write efficient graphics shaders, again allowing for more complex fast applications. Finally, features like multiple render target enable a range of modern rendering techniques like deferred shading.

By adding these features and more to Panfrost, games like SuperTuxKart now work with their preferred modern renderers, for instance using instancing for particle systems and new texturing operations to add shadows. SuperTuxKart's ES 3.0 non-deferred renderer now works with Panfrost, so grab the latest code and give it a play!

To ensure OpenGL ES 3.0 continues working smoothly with Panfrost and only improves over time, we've added ES 3.0 to Panfrost's continuous integration infrastructure. Every change to upstream Mesa is verified against the drawElements Quality Program (dEQP) test suite on Panfrost hardware, now including ES 3.0 testing on Mali T860 in our continuous integration lab. Panfrost currently passes 95% of dEQP's ES 3.0 tests, and with continuous integration in place, this number can only grow.

Panfrost's ES 3.0 support has landed in upstream Mesa and works with a mainline Linux kernel. While the code is still experimental, it can be accessed compiling the latest Mesa and setting the environment variable PAN_MESA_DEBUG=gles3. The support is still early, but if you're feeling adventurous, feel free to give it a try on your favourite ES 3.0 applications and games. You might be pleasantly surprised!

SuperTuxKart running with Open GL ES 3.0 on Panfrost

 

Search the newsroom

Latest Blog Posts

Sunscreen, a stylus, and 16 hours of pair programming with an AI

02/11/2026

An AI-assisted side project turned a missing KDE tablet feature into a working handwriting mode, combining open source recognition, stylus…

Upstreaming Tyr: Rust, DRM, and the Linux Kernel

21/10/2026

Tyr has reached a major milestone by booting the Arm Mali-G610 GPU’s MCU using upstream Rust DRM memory-management abstractions, while helping…

Building Tyr in Rust, part 3: Managing GPU memory

26/08/2026

Tyr’s latest Rust GPU kernel driver work puts GPU memory management in place, from VM binding and GPUVM to GEM-backed buffers and firmware…

The power of APIs: The unsung hero of AI interface

07/07/2026

AI development is shifting from implementing models from scratch to composing powerful capabilities via APIs, enabling developers to integrate…

Simplifying Bluetooth qualification for Linux/BlueZ: New upstream documentation

26/05/2026

New upstream BlueZ documentation helps simplify Bluetooth qualification for Linux-based products by mapping supported profiles, test requirements,…

Building Tyr in Rust, part 2: CSF architecture and booting the MCU

14/05/2026

See how Tyr moves beyond MCU firmware boot to build the group, queue, VM, submission, and completion paths needed to run real Vulkan workloads…

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-2026. All rights reserved. Privacy Notice. Sitemap.