Skip to content

RADV Xclipse (Based on Mesa 26.3.0-devel)

Latest

Choose a tag to compare

@JimVulkan JimVulkan released this 24 Sep 21:14

What's new

  • Based on Mesa 26.3.0-devel. The driver moves from Mesa 26.2.3 to Mesa 26.3.0-devel. All the
    Xclipse changes from the previous release (Xclipse 530 support, color compression, the faster
    frame hand-off, the profiler and the switches) carry over unchanged.
  • One source for all the drivers. The same code is also in
    mesa-unified-drivers, together with RadeonSI
    for Xclipse and PanVK and Panfrost for Mali.

Supported GPUs

GPU Chip Status
Xclipse 920 Exynos 2200 Supported. Tested on a Galaxy S22 Ultra (SM-S908B).
Xclipse 530 Exynos 1480 Supported. Tested on a Galaxy A55 (SM-A556B) with the previous release.
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.3.0-devel-0b22e72.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.3.0-devel 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

  • If a game shows black, flickering or corrupted textures, turn color compression off with
    adb shell setprop debug.radv_xclipse_dcc 0 and please report the game.
  • 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.3.0-devel-0b22e72.zip (4.4 MB), built from commit 0b22e72.

SHA-256: c3ec1a142600733831b2e0b0bc590c9c394812a8221988c53f9307a00901ba70

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.