ARM Mali GPU
Upstream software, aka Lima/Panfrost
Kernel modules are included from kernel 5.2+. But only few boards have GPU enabled in the device tree.
- Lima supports Utgard Mali GPU: Mali-400 / Mali-450 GPU
- Panfrost supports Bifrost and Midgard Mali GPU: Mali-Gxx GPU and Mali-T6xx / Mali-T7xx / Mali-T8xx GPU
For user-space, you need Mesa 19.2+ (19.1.x is not very stable nor usable for lima/panfrost).
Mesa 19.2 panfrost supports Mali T760, T820 and T860, which are found on RK3288, RK3399, and S912 SoC. Mali Gxx (Bifrost) are not yet supported due to the lack of compiler.
If you try to run it on an unsupported Mali version, you will get panfrost: Unsupported model %X error message. (See pan_screen.c#L739).
You can install some test binaries to try it, such as kmscube, glmark2, Mesa-demo or Mesa-demo-x.
Mali kernel packages are available in devel:ARM:Factory:Contrib:Mali:
- mali-bifrost-kmp: Mali-Gxx GPU kernel modules
- mali-midgard-kmp: Mali-T6xx / Mali-T7xx / Mali-T8xx GPU kernel modules
- mali-utgard-kmp: Mali-400 / Mali-450 GPU kernel modules
You may need to update your device tree to enable it. You can check if mali node is already in your Device Tree with:
sudo dtc -I fs /proc/device-tree | grep mali
For details to add the mali node, see driver/product/kernel/Documentation/devicetree/bindings/* files in packages sources: devel:ARM:Factory:Contrib:Mali
Here is an example how to add the mali node for HiKey960: https://git.linaro.org/people/manivannan.sadhasivam/hikey.git/commit/?id=a20633b159f885bc8a62234831e9b7a0151a151b
You can set power_policy with /sys/module/mali_kbase/drivers/platform:mali/e82c0000.mali/power_policy on:
- coarse_demand (default)
See https://developer.arm.com/products/software/mali-drivers/user-space to download and install binaries libraries which depends on your board.
Once kernel driver and user-space libraries are installed, you can enable OpenCL support with:
echo "libmali.so" | sudo tee /etc/OpenCL/vendors/mali.icd
And check it is found with: