# Panfrost

The Panfrost driver stack includes an OpenGL ES implementation for Arm Mali GPUs based on the Midgard and Bifrost microarchitectures. It is conformant on Mali-G52, Mali-G57 and Mali-G610, but non-conformant on other GPUs.

PanVK, the Vulkan implementation in the Panfrost driver stack, is currently non-conformant on all GPUs.

The following hardware is currently supported:

Models | Architecture | OpenGL ES | OpenGL | Vulkan
--- | --- | --- | --- | ---
T600, T620, T720 | Midgard (v4) | 2.0 | 2.1 |
T760, T820, T830 T860, T880 | Midgard (v5) | 3.1 | 3.1 |
G72 | Bifrost (v6) | 3.1 | 3.1 | 1.0
G31, G51, G52, G76 | Bifrost (v7) | 3.1 | 3.1 | 1.0
G57 | Valhall (v9) | 3.1 | 3.1 |
G310, G610 | Valhall (v10) | 3.1 | 3.1 | 1.1

Other Midgard and Bifrost chips (e.g. G71) are not yet supported.

Older Mali chips based on the Utgard architecture (Mali-400, Mali-450) are supported in the Lima driver, not Panfrost. Lima is also available in Mesa.

Other graphics APIs (OpenCL) are not supported at this time.

## Building

Panfrost’s OpenGL support is a Gallium driver. Since Mali GPUs are 3D-only and do not include a display controller, Mesa uses kmsro to support display controllers paired with Mali GPUs. If your board with a Panfrost supported GPU has a display controller with mainline Linux support not supported by kmsro, it’s easy to add support, see the commit `cff7de4bb597e9` as an example.

LLVM is not required by Panfrost’s compilers. LLVM support in Mesa can safely be disabled for most OpenGL ES users with Panfrost.

Build like `meson . build/ -Dvulkan-drivers=panfrost -Dgallium-drivers=panfrost -Dllvm=disabled` for a build directory `build`.

For general information on building Mesa, read the install documentation.

## Chat

Panfrost developers and users hang out on IRC at `#panfrost` on OFTC. Note that registering and authenticating with `NickServ` is required to prevent spam. Join the chat.

## Technical details

You can read more technical details about Panfrost here:

- drm-shim
- Instancing
- Compressed texture support
- U-interleaved tiling