GPU
Summary
The Banana Pro and Banana Pi are powered by the Allwinner A20 SoC, which includes a Mali-400 MP2 GPU. This page covers the GPU's capabilities, available driver options, hardware video decoding, and practical guidance for getting the best graphical performance from your board.
Who This Is For
Users who want to understand GPU acceleration on the Banana Pro/Pi, whether for desktop use, media playback, OpenGL ES applications, or embedded graphical interfaces.
What You Will Learn
- GPU hardware specifications.
- Available driver options (proprietary and open-source).
- Hardware video decoding with CedarX.
- Configuration for desktop and framebuffer environments.
GPU Hardware Overview
The Mali-400 MP2 is a dual-core GPU supporting:
- OpenGL ES 1.1 and 2.0 — suitable for 2D-accelerated desktops and lightweight 3D applications.
- OpenVG 1.1 — for hardware-accelerated 2D vector graphics.
- Clock speed: Up to 384 MHz (may vary by kernel configuration).
Note that the Mali-400 does not support OpenGL ES 3.0 or desktop OpenGL. Applications requiring these APIs will not run with hardware acceleration.
Driver Options
Option A — Mali Proprietary Binary Blob
ARM provides a closed-source user-space driver for the Mali-400. This offers the best compatibility with OpenGL ES 2.0 applications and is used in most legacy Allwinner Linux images.
- Works with the fbdev (framebuffer) backend or X11 via a wrapper.
- Install by copying the
libMali.soand related libraries to/usr/lib. - Some distributions (e.g., Armbian) package this as
mali-sunxi.
Option B — Lima (Open-Source, Mainline Kernel)
The Lima driver is a reverse-engineered, open-source driver included in the mainline Linux kernel since version 5.2. It provides:
- OpenGL ES 2.0 support via Mesa.
- Wayland and X11 compatibility through standard DRM/KMS.
- Active development and improving performance.
To use Lima, ensure your kernel is 5.2 or later and install Mesa with Lima support:
sudo apt install mesa-utils
glxinfo | grep "OpenGL renderer"
You should see Mali 400 in the renderer string if Lima is active.
Hardware Video Decoding — CedarX
The Allwinner A20 includes a dedicated video processing unit (VPU) called CedarX, separate from the Mali GPU. CedarX provides hardware-accelerated decoding of:
- H.264 (AVC) — up to 1080p at 30 fps.
- H.265 (HEVC) — partial support depending on firmware.
- MPEG-1, MPEG-2, MPEG-4, VP8.
To use CedarX on legacy kernels, install the libcedarx libraries and use a compatible media player such as mpv with the --hwdec=cedar option. On mainline kernels, the cedrus V4L2 driver provides stateless video decoding.
Configuring for Desktop Use
For a smooth desktop experience:
- Use a lightweight desktop environment such as XFCE or LXDE.
- Enable GPU compositing only if using the Lima driver with DRM/KMS.
- Allocate sufficient framebuffer memory in the Fex file (
fb0_width,fb0_height). - Avoid heavy desktop environments like GNOME or KDE — the Mali-400 MP2 lacks the performance for them.
Performance Expectations
The Mali-400 MP2 is a modest GPU by modern standards. Expect smooth performance for 2D desktops, basic OpenGL ES games, and hardware-decoded video playback. 3D-intensive applications will be limited to low resolutions and simple scenes.
Troubleshooting
- No GPU acceleration (software rendering): Check that the Mali or Lima driver is loaded. Run
glxinfoand look forllvmpipe— this indicates software rendering. - Screen tearing during video playback: Enable VSync in your window manager settings or use
mpv --vo=drmfor direct rendering. - Black screen after enabling DRM/KMS: Your kernel or device tree may not support DRM for the A20. Fall back to the fbdev driver.
- OpenGL ES application crashes: Ensure the application targets OpenGL ES 2.0, not desktop OpenGL or ES 3.0.
Related Pages
Author: LeMaker Documentation Team
Last updated: 2026-02-10