ARM Mali GPU

Jump to: navigation, search
Warning: This has not been fully tested yet. Wayland is probably better supported than X. Please share your tests on opensuse-arm mailing list or on IRC.

Upstream software, aka Lima/Panfrost

Kernel modules

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

User-space

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.

Downstream software

Kernel modules

Installation

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

Parameters

You can set power_policy with /sys/module/mali_kbase/drivers/platform:mali/e82c0000.mali/power_policy on:

  • coarse_demand (default)
  • always_on

Binary user-space

Installation

See https://developer.arm.com/products/software/mali-drivers/user-space to download and install binaries libraries which depends on your board.


Enable OpenCL

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:

sudo clinfo

See also