If you did not migrate your account yet, visit https://idp-portal-info.suse.com/
ARM Mali GPU
Upstream software, aka Lima/Panfrost
Kernel modules are included from kernel 5.2+. But, you will need kernel 5.10+ for Bifrost: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=72ef7fe96fd20d3d0e538e165b393819f99870ad
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) and kernel 5.2+. The package to install is Mesa-gallium.
You can install some test binaries to try it, such as kmscube, glmark2, Mesa-demo or Mesa-demo-x.
Mesa/Lima supports Arm Mali Utgard 400/450 embedded GPUs.
For LIMA, you may need to tweak the xorg configuration by creating /etc/X11/xorg.conf.d/20-lima.conf file: (Source: https://gitlab.freedesktop.org/lima/web#xorgconf)
Section "ServerFlags" Option "AutoAddGPU" "off" Option "Debug" "dmabuf_capable" EndSection Section "OutputClass" Identifier "Lima" MatchDriver "<display DRM driver>" Driver "modesetting" Option "PrimaryGPU" "true" EndSection
Where you replace <display DRM driver> with the right DRM driver name, depending on your SoC:
- Allwinner: sun4i-drm
- Amlogic: meson
- Exynos: exynos
- Ericsson MCDE: mcde
- Rockchip: rockchip
- Tinydrm: tinydrm
Mesa/Panfrost supports Arm Mali Midgard and Bifrost GPUs.
Mesa 19.2 and 19.3 panfrost support Mali T760, T820 and T860, which are found on RK3288, RK3399, and S912 SoC.
Mesa 20.0 panfrost adds support for Mali T720, which is found on Exynos 7580, MT6735, and MT6753 SoC.
Mesa 20.3 panfrost (and kernel 5.10) adds support for some Bifrost GPU:
- Mali G72 found in Exynos 7 9610, Exynos 9 9810, Helio P60/P70 and Kirin 970, SoC
- Mali G31 found in Amlogic S905, RK3326 and Allwinner H616 SoC
- Mali G52 found in Amlogic S922, RK3530, Kirin 810 and Helio P65/G70/G80/G85 SoC
If you try to run it on an unsupported Mali version, you will get panfrost: Unsupported model %X error message. (See pan_screen.c#L804).
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. Please note that mali-bifrost-kmp should also work on those plaforms as the kernel driver sources are shared so far
- 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: