Skip to content

CI: Android custom Vulkan driver packages - #30

Closed
Davey-Hughes wants to merge 3 commits into
masterfrom
android-custom-vulkan-driver
Closed

Davey-Hughes wants to merge 3 commits into
masterfrom
android-custom-vulkan-driver

Conversation

@Davey-Hughes

Copy link
Copy Markdown
Owner

Fork-internal CI run for the upstream PR; not for merging.

Davey-Hughes and others added 3 commits October 30, 2026 20:04
The files of bylaws/libadrenotools 8fae8ce and its linkernsbypass
submodule that load a custom Vulkan driver into its own linker
namespace on Android, unmodified, with their licenses. README.md names
the commits, the files and what was left out. Nothing builds them yet.
Sideloaded arm64 builds can load a Vulkan driver package (a zip with
meta.json and one .so, such as Mesa's Turnip) on Adreno GPUs with
Android 9 or later, through libadrenotools. The new
video_vulkan_driver_path setting names the zip; empty is the system
driver, and core, content-directory and game overrides carry it. The
package is checked and extracted to internal storage once per version.

Packages from any vendor are accepted. Only Mesa ones have been
tested, so any other vendor logs that it is untested and that its load
cannot be confirmed. A Mesa package that leaves the stock Qualcomm
driver running, as the loader does when the custom library fails to
load, counts as failed.

When the custom driver fails to create an instance, a device or the
first swapchain, the context is redone on the system driver in the same
process. A driver that takes the process down during its init is turned
off for that core until it is picked again, and a "Safe start" launcher
shortcut starts RetroArch once on the system driver. Play Store, Quest
and API 16 builds do not carry any of it.

Co-authored-by: lim2222 <johnlky222@gmail.com>
Settings > Video > Output gains a Custom Vulkan Driver row on builds
and devices that can load one. OK opens a browser for driver zips in
<system>/vulkan_drivers, Start goes back to the system driver, and the
sublabel says when the chosen driver crashed during its last start and
is off for the running core. While RetroArch runs from the Safe start
shortcut, the row reads "System (Safe start)" and the sublabel names
the driver the next normal start uses. The choice applies at the next
Vulkan start; picking a driver never restarts video.

Co-authored-by: lim2222 <johnlky222@gmail.com>
@Davey-Hughes

Copy link
Copy Markdown
Owner Author

Upstream PR: libretro#19955

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant