Repository navigation
malisx2 0.3.1
Vulkan driver for Android devices with an Arm Mali GPU, loaded by emulators that support custom GPU drivers: ARMSX2 (PlayStation 2), Dolphin (GameCube and Wii) and hakuX (Xbox).
Dolphin now starts. It asks the driver for occlusion queries as soon as it opens its graphics device, which this release supports.
- Mali-G615 / G715 — tested on the Anbernic RG 477V.
- Mali-G57, G68, G77, G78, G78AE — tested on the Anbernic RG 476H. The other GPUs in this family are untested.
- Mali-G52 / G52 r1 — experimental: for trying out, not yet for everyday play.
- Mali-G76 — new, and untested by us; a contributor reports it working on their phone. See "Good to know".
Install: in the emulator's custom GPU driver setting, install from file and pick malisx2-0.3.1-8cdb0f68cd.zip.
- ARMSX2: Settings → custom GPU driver → install from file.
- Dolphin: Settings → Graphics → GPU Driver → Install driver.
- hakuX: Settings → GPU driver → Add a driver.
hakuX and Dolphin can only load a custom driver on Mali once these are merged (until then, use a build with them applied):
- hakuX: rfandango/hakuX#11
- Dolphin: dolphin-emu/dolphin#14958
What's new since 0.3.0
- Dolphin runs. The occlusion queries Dolphin creates at startup are implemented on all three GPU families, so its Vulkan backend opens instead of failing, and Super Mario Sunshine runs at full speed on the Mali-G57.
- hakuX is much faster on the Mali-G615. On the RG 477V's class of GPU a heavy scene is about 1.7 times faster at 3x and 4x internal resolution, mostly from compressing the render targets the driver picks and from not writing vertex outputs the fragment shader never reads. On the Mali-G57 it is about a third faster at 1x. The picture is unchanged.
- VkEvent, query pools and clip distances work on the Mali-G615. Dolphin, hakuX and ARMSX3 all use these; on the G615 they were only partly there before. Some draws also skip an early depth test where its result cannot be seen, which is free speed.
- Mali-G76 phones are accepted. The driver's Bifrost path now recognises the G76 as well as the G52 (contributed).
- Dolphin on the Mali-G52 (experimental): the G52 path gained the same occlusion queries, so Dolphin starts there too.
- The shader compiler is newer. Several small code-generation improvements make Dolphin a few percent faster; ARMSX2's own shader workload compiles to the same or slightly shorter code than before.
- ARMSX2 is unchanged: the same 22-dump accuracy corpus and the same frame times, on both the Mali-G57 and the Mali-G615.
Good to know
- 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. Vulkan requires drivers to offer at least 4x multisampling; malisx2 reports 1x until it can render it. An app that assumes 4x exists may not start.
- Mali-G52 is experimental, and Mali-G76 is untested by us: one contributor reports the driver loading and games running on a G76 phone. If a game misbehaves on either, use the system driver.
- Mali-G57 family: if the driver does not start on your device, ARMSX2 uses the system driver; please send a log.
- A few HUD colours can come out slightly brighter than on a real PS2 (for example Gran Turismo 4's speedometer). Other drivers show the same.
- Reporting a problem: take a bug report or a logcat right after it happens, and keep ARMSX2's
logs/emulog.txt(it is overwritten when the app starts again).
Contributors
- @bmdhacks
- @TheGammaSqueeze: Mali-G52 support, and Dolphin on the Mali-G52
- @Jessewb786: Mali-G76 support
Build
For support:
- malisx2
0.3.1, commit 8cdb0f6 - Mesa: branch
malisx2of bmdhacks/armsx2-turnip, commit 81113fce01b0e3974cdbb2683449e8619d0639e0 malisx2-0.3.1-8cdb0f68cd.zipsha25634da06a52a0349c3e6ae07f7fb7d2dc5b76203c62b256b8d517e8df2509bb364libvulkan_malisx2.sosha2564227225277ce5cfdc8c480eb3175e7e993e433f9fdbaa05467f12f0eced6d658