Skip to content

RADV Xclipse (Based on Mesa 26.2.3)

Choose a tag to compare

@JimVulkan JimVulkan released this 21 Sep 10:38
· 3 commits to main since this release

What's new

  • Updated driver to Mesa 26.2.3;
  • Fixed garbled block textures in Minecraft Java (and other affected games/apps).
    Blocks showed pieces of other textures inside them, with both the Zink and Vulkan renderers,
    while the GUI, mobs and items looked fine. The driver was building one kind of texture read
    (a textureGrad with 2D coordinates) in a way the driver on the Xclipse 920 doesn't support,
    so the vertical texture coordinate was read from the wrong place. Minecraft 26.x draws its terrain
    with exactly that read. Any other game or app that uses textureGrad could have had the same
    problem, and gets the same fix.

Supported GPUs

GPU Chip Status
Xclipse 920 Exynos 2200 Supported. Tested on a Galaxy S22 Ultra (SM-S908B).
Xclipse 530 Exynos 1480 Highly experimental and broken. Off unless you enable it (see the README).
Other Xclipse GPUs Not supported.

Requires Android 14 or newer and an app that loads custom Vulkan drivers from a zip, such as Eden or
Winlator.

Installing

  1. Download radv-xclipse-26.2.3-d58ca5e.zip. Don't extract it.
  2. In the app's GPU driver settings, remove the previous RADV Xclipse entry if you have one. Some
    apps otherwise keep using the old driver they already extracted.
  3. Install the new zip and select it.
  4. Clear the game's shader cache. Pipelines cached with another driver can render incorrectly or run
    slower.

If the app crashes

This includes the app closing by itself, freezing, a black screen, or a "device lost" error.

  1. Reboot the phone before opening any game or emulator again. After a GPU hang, the GPU can stay
    stuck even though the app closed, and the next app that uses it can make the whole phone reboot.
  2. Clear the game's shader cache and try again.
  3. If it crashes again, switch back to the system driver. If the crash goes away, it's this driver:
    please open an issue with a log (see Capturing a log).

If the phone crashes

This means the phone freezes and restarts by itself.

  1. Wait for the phone to start up completely. The restart is a safety reset by the phone and doesn't
    damage it, but unsaved game progress is lost.
  2. Don't repeat the same thing right away. Switch back to the system driver for that game until the
    issue is looked at.
  3. Save the crash record before the phone crashes again, because only the last few are kept. It
    needs adb, but no root. List the records, newest first:
    adb shell "ls -t /data/log | grep lastkmsg"
    
    Then pull the one whose date and time match the crash, for example:
    adb pull /data/log/dumpstate_lastkmsg_20260921_213000_1_DP.log.gz
    
  4. Open an issue and attach the file. A normal log can't help here, because the phone's log is
    erased by the restart.

Capturing a log

A log shows what the driver was doing. You need adb on a computer (USB or Wireless debugging).

  1. Turn on driver logging:
    adb shell setprop debug.radv_xclipse_log 1
    
  2. Clear the old log:
    adb logcat -c
    
  3. Start the app and reproduce the problem.
  4. Save the log on the phone and copy it to the computer:
    adb shell "logcat -d -v time > /sdcard/radv-log.txt"
    
    adb pull /sdcard/radv-log.txt
    
  5. Turn logging off (it also turns off when the phone restarts):
    adb shell setprop debug.radv_xclipse_log 0
    

With logging on, the log starts with a [BUILD] Mesa 26.2.3 api=34 line, which confirms the app is
really using this driver, and an [ARM] line showing any debug switches that are set.

Logs and crash records can contain personal information, such as app names and device identifiers.
Look through them before posting them publicly.

In the issue, include: phone model, Android version, the app and its version, the game, the driver
zip name, what happened, and the log or crash record.

Known issues

  • The Xclipse 530 is still broken.
  • The phone can still reboot by itself, especially after a GPU hang. The cause is in the phone's
    kernel GPU driver; this driver avoids the known trigger but can't fully prevent it.
  • A game that uploads BC4-BC7 textures every frame can stutter, because the driver decodes those
    formats on the GPU. For emulators like Eden, adb shell setprop debug.radv_xclipse_no_bc_emu 1
    hides those formats so the game uses others. Don't use it with Windows games in Winlator, which
    usually need BC7.

Other switches are listed in the README.

Download

radv-xclipse-26.2.3-d58ca5e.zip (4.3 MB), built from commit d58ca5e.

SHA-256: 09ea8b4f35c99ebf416bb13058197a492b702adbae2ed3ccf0be5ea12709b707

The zip contains vulkan.radeon.so, meta.json and NOTICE.txt (licenses of the code built into
the driver). The Xclipse changes are MIT licensed; files from Mesa keep their own licenses.