Mali
The Mali series is a GPU (Graphics Processor Unit) from ARM Ltd. (ARM Holdings plc), designed for embedded systems.[1][2]
Overview
The Mali series of Graphics Processing Units (GPUs) are semiconductor intellectual property cores produced by ARM Holdings for licensing in various ASIC (Application-specific integrated circuit) designs by ARM partners. The core is mainly developed by ARM Norway, at the former Falanx company site.
Like other embedded IP cores for 3D support, the Mali GPU does not feature display controllers driving monitors (such as the combination often found in common video cards). Instead it is a pure 3D engine that renders graphics into memory and hands the rendered image over to another core that handles the display.
ARM supplies tools to help in authoring OpenGL ES shaders named Mali GPU Shader Development Studio and Mali GPU User Interface Engine.
All Mali4XX GPU Variants conform to OpenGL ES 1.1 & 2.0 as well as OpenVG 1.1.
All Mali-TXXX GPU Variants conform to OpenGL ES up to 3.1 as well as OpenVG 1.1.
All Mali-GXX GPU Variants conform to OpenGL ES up to 3.2 as well as OpenVG 1.1 and Vulkan 1.2 (panvk Vulkan driver not yet fully conformant).
Variants:
There are several generations of which two are currently used by Allwinner.
Utgard
Name | GP (Geometry Processor) / vertex shader |
PP (Pixel Processor) / fragment shader |
CPU Level 2 cache size | Allwinner implementations |
---|---|---|---|---|
Mali-400 MP | 1 | 1 | 256 KiB | A10 (sun4i), A10s (sun5i), and A13 (sun5i) |
Mali-400 MP2 | 1 | 2 | 256/512 KiB | A20 (sun7i), A23 (sun8i), A33, H3, R40 (sun8i), A64 (sun50i) |
Mali-450 MP4 | 1 | 4 | 512 KiB | H5 (sun50i) |
Midgard
Name | unified shader cores | CPU Level 2 cache size | Allwinner implementations |
---|---|---|---|
Mali-T720 MP2 | 2 | 512 KiB | H6 (sun50i) |
Mali-T760 MP2 | 2 | 512 KiB | A63 (sun50i) |
Bifrost
Name | unified shader cores | CPU Level 2 cache size | Allwinner implementations |
---|---|---|---|
Mali-G31 MP2 | 2 | ??? KiB | H616, H313 (sun50i) |
More information can be found on the ARM website.
Driver
Utgard (Mali-400 and Mali-450)
Lima driver (Open Source)
Lima is a project to develop a completely open source graphics driver which supports ARM's Mali-400 and Mali-450 GPUs.
It consists of two main parts:
- Kernel parts have been included in mainline kernel since v5.2
- Mesa (userspace) parts have been part of upstream project since April 2019.
Historical links:
- Pre-merge development of Lima kernel driver
- Pre-merge development of mesa-lima userspace driver
- based on re-engineering efforts from Archive of http://limadriver.org/
Binary driver
- Mainline Linux: Maxime Ripard (Bootlin) worked on Mali OpenGL support with mainline Linux, please refer these instructions
- Legacy Kernel (Outdated): For information on the binary driver, please refer to the binary driver installation guide.
Midgard (Mali T6xx, T7xx, T8xx) and Bifrost (G3x, G5x, G6x, G7x)
Panfrost driver (Open Source)
Panfrost is a project to develop a completely open source graphics driver which supports ARM's Mali-T6xx, Mali-T7xx, Mali-T800 and Mali-G7x GPUs. This is a work in progress and not yet ready for general use.
Panfrost results from a merge of 2 driver reverse engineering projects: chai - for Midgard GPUs (by Alyssa Rosenzweig) and BiOpenly - for Bifrost GPUs (by Lyude Paul). The merge was done due to identical command streams of the ARM Midgard and Bifrost GPUs (but different shader cores).
- WIP: Panfrost git repository
- Alyssa Rosenzweig's Blog: NIR shader compiler announce
The aim of this drivers and others such as freedreno is to finally bring all the advantages of open source software to ARM SoC graphics drivers. Currently, the sole availability of binary drivers is increasing development and maintenance overhead, while also reducing portability, compatibility and limiting choice. Anyone who has dealt with GPU support on ARM, be it for a linux with a GNU stack, or for an android, knows the pain of dealing with these binaries.
See also
References
- ↑ http://www.cnx-software.com/2013/01/19/gpus-comparison-arm-mali-vs-vivante-gcxxx-vs-powervr-sgx-vs-nvidia-geforce-ulp/ GPUs Comparison: ARM Mali vs Vivante GCxxx vs PowerVR SGX vs Nvidia Geforce ULP
- ↑ http://blog.thinkteletronics.com/all-mobile-socsolutions/ All Mobile Soc/Solutions.