Vulkan driver for Arm Mali GPUs, for Android and for ARM Linux. On Android it is loaded by emulators that support custom GPU drivers: ARMSX2 (PlayStation 2), Dolphin (GameCube and Wii), hakuX (Xbox) and Vita3K-Plus (PlayStation Vita). On ARM Linux it is for ARMSX2.
More Mali GPUs are supported, and there is now a Linux package.
- Mali-G31, G51, G52, G76
- Mali-G57, G68, G77, G78, G78AE
- Mali-G310, G510, G610, G710
- Mali-G615, G715
Install on Android: in the emulator's custom GPU driver setting, install from file and pick malisx2-0.5.0-9632d02e2f.zip.
Install on ARM Linux: unpack malisx2-0.5.0-aarch64.tar.gz. It makes a malisx2/0.5.0/ folder. Install it from ARMSX2's driver-pack list, or start the emulator with malisx2/0.5.0/run-with-malisx2.sh -- <command>. malisx2/0.5.0/run-with-malisx2.sh --check shows which GPU and driver it finds. It needs glibc 2.34 or newer, libdrm and libgbm.
What's new since 0.4.1
- New GPUs: the Mali-G31, G51, G310, G510, G610 and G710. Nothing changes for the GPUs supported before: on the Mali-G615, Mali-G57 and Mali-G52 the pictures are identical to 0.4.1 and the speed is the same.
- ARM Linux package. For Linux boards and handhelds that use Arm's own Mali kernel driver, such as RK3588, RK3566 and RK3562 systems running ROCKNIX or Debian. It is not for systems that use the open-source panfrost or panthor drivers.
Good to know
- On Android and on Linux, it needs a system that uses Arm's own Mali kernel driver. A board running only the open-source Linux Panthor driver is not covered.
- On the Mali-G51 and G31, a few advanced shader features are not available (indexing a list of textures with a different value for each pixel, and image gathers with non-constant offsets). A shader that needs one fails to build there instead of drawing wrongly.
- The version number is part of the driver's
driverInfo, so ARMSX2 throws away and rebuilds its pipeline cache once after this update. The first moments of the first game may be slower than usual. - MSAA is not implemented. An app that assumes 4x multisampling exists may not start.
- Reporting a problem: on Android, take a bug report or a logcat right after it happens; on Linux, keep the terminal output. In both cases keep the emulator's own log.
Contributors
- @bmdhacks
- @Matheus290: the Mali-G610 and G710 groundwork, and the fix for Arm's window-system layer on Linux
Build
For support:
- malisx2
0.5.0, commit 9632d02 - Mesa: branch
malisx2of bmdhacks/armsx2-turnip, commit 45ff8fac44d9132118d0dddd2ff49f5d827533fb malisx2-0.5.0-9632d02e2f.zipsha25671c1e3dc68ef1396d469f245019d42ab73980e48034095453b7be776195c3641; Androidlibvulkan_malisx2.sosha256b80af8f6ed1d88a1e19d0538564e90de8f7e46f4e32f8daec7cb7a772e292721malisx2-0.5.0-aarch64.tar.gzsha2567e31c5fd431407ccd6d4b1b98206aa5d1455d26befb08b4f1f3a1c1379526a27; Linuxlibvulkan_malisx2.sosha256956622d47dbeaf727148b1a361532f239616b05dcece7f3ababb0e5fb1697f4a