Skip to content

Repository files navigation

Banners-Turnip

Banners-Turnip

Discord

Automated, bleeding-edge builds of the Mesa Turnip Vulkan driver, compiled directly from the latest upstream Mesa commits. Every release ships each driver twice: for AdrenoTools-compatible apps (X11), and for Bannerlator Wayland containers.

Build Turnip (Combined) Latest Release


What Is This?

Turnip is the open-source Mesa Vulkan driver for Qualcomm Adreno GPUs — developed as part of the Mesa project and maintained by the Freedreno community. Unlike the proprietary Qualcomm driver, Turnip is fully open-source and often ships fixes and feature support ahead of official Qualcomm releases.

This repo automatically builds Turnip from the absolute latest commit on mesa/main — no waiting for official Mesa releases. A Mesa upstream watcher polls for new commits every hour and triggers a fresh build automatically whenever mesa/main advances. Each driver comes as two ZIPs from the same Mesa commit and patches:

  • an AdrenoTools-compatible ZIP you can drop straight into any compatible app (BannerHub/BCI, Winlator, Bannerlator X11, etc.);
  • a Wayland ZIP for Bannerlator Wayland containers.

Driver Variants & Downloads

Each release ships three drivers, each as two ZIPs built from the same Mesa commit and patches. Pick the driver for your GPU, then the ZIP for where you use it:

Driver GPUs X11 / AdrenoTools ZIP Bannerlator Wayland ZIP
Standard Adreno 6xx / 7xx (Snapdragon 8 Gen 3 and older) Turnip-<tag>.zip Turnip-<tag>-Wayland.zip
A8xx (experimental) Adreno 810 / 825 / 829 / 830 / 840 (Snapdragon 8 Elite) Turnip-<tag>-A8xx.zip Turnip-<tag>-A8xx-Wayland.zip
A710 / A720 / A722 (experimental) Adreno 710 / 720 / 722 Turnip-<tag>-710-720-Test.zip Turnip-<tag>-710-720-Test-Wayland.zip
  • X11 / AdrenoTools ZIP: BannerHub/BCI, Winlator, Bannerlator X11 containers and any other AdrenoTools app.
  • Wayland ZIP: Bannerlator Wayland containers only. It's a Linux-style Vulkan driver (KGSL, Wayland, bionic) with Bannerlator's zero-copy patch, built by build_turnip_wayland.sh. It doesn't load as an AdrenoTools driver, and an X11 ZIP doesn't work as a Wayland game driver.
  • CI checks every ZIP before it's attached. If a Wayland build fails, the release still ships its X11 ZIPs and the release notes say which Wayland ZIP is missing.

Download latest → · Full build history →

A6xx / A7xx — Standard

Pure Mesa main, no source patches. Compatible with Adreno 600–700 series GPUs (Snapdragon 600–800 series, including 7 Gen and 8 Gen 1–3).

A710 / A720 / A722 — Experimental / Work in Progress

Injects hardware-specific GPU entries and magic registers for Adreno 710, 720, and 722 on top of Mesa main via a710-720.py — based on community research by Vauzi-17. No upstream Mesa support exists for these GPUs yet. Early results are promising. Recommended: force sysmem mode via TU_DEBUG=sysmem until GMEM is confirmed stable. Winlator users: set WRAPPER_BLIT=1.

A8xx — Experimental

Targets Adreno 800-series (Snapdragon 8 Elite — A810, A825, A829, A830, A840). Built from Mesa main with the following on top (the same for the X11 and Wayland ZIPs):

Patch What it does
a8xx_gen8.patch 13 commits from whitebelyash's turnip/gen8 stack (as shipped in tu_v29 / StevenMXZ v33): A8xx GPU configs, UBWC gralloc detection, disable_gmem GPU property, Steam Deck spoof (TU_DEBUG=deck_emu), A810 fixes
a8xx_shared_mem.py cs_shared_mem_size 32 KiB → 64 KiB on every device entry

Tips: TU_DEBUG=sysmem if an A830 looks glitchy; TU_DEBUG=deck_emu if a game won't start. Use at your own risk.


Workflows

Workflow Trigger What it builds
Build Turnip (Combined) Auto (mesa-watcher) or manual Standard + A8xx + A710/A720/A722, Android and Wayland builds in parallel from one Mesa commit; each ZIP is checked in CI, then published as a single tagged release with notes written from what built (manual runs can set dry_run to build and verify without publishing)
Build Turnip A8xx (Experimental) Manual Standalone A8xx test build — faster iteration outside the release cycle
Build Turnip (Perf 6xx/7xx) Manual A6xx/A7xx only, compiled with -O3 + ThinLTO for performance testing

Installation

  • BannerHub / BCI: Component Manager → Add New Component → select the X11 / AdrenoTools ZIP
  • AdrenoTools-compatible apps (Winlator, Bannerlator X11, etc.): load the X11 / AdrenoTools ZIP in GPU driver settings
  • Bannerlator Wayland containers: Import Wayland game driver (.zip) → select the -Wayland.zip, then pick it as the container's Wayland game driver

Latest Build

Mesa version 26.3.0
Vulkan version Vulkan 1.4.363
Commit 2bd8a61
Commit date 2026-09-18
Commit title kraid: Warn on dead code
Build date 20260918
Downloads X11 / AdrenoTools: 3 ZIPs · Bannerlator Wayland: 3 ZIPs
Release v26.3.0-20260918-r3

Recent Builds (Last 24 Hours)

Tag Date Commit Description Vulkan
v26.3.0-20260918-r3 2026-09-18 2bd8a61 kraid: Warn on dead code Vulkan 1.4.363
v26.3.0-20260918-r2 2026-09-18 df634b7 compiler: add UINT16 sampler and image types Vulkan 1.4.362
v26.3.0-20260918 2026-09-18 51dd427 nv30: Fix for loops in fragment shaders on nv40 Vulkan 1.4.362
v26.3.0-20260917-r5 2026-09-17 f63d087 ac/gpu_info, radeonsi, radv: allow initialization without GFX or compute queues Vulkan 1.4.362
v26.3.0-20260917-r4 2026-09-17 03f434a vc4: skip draws whose clip window is empty Vulkan 1.4.362
v26.3.0-20260917-r3 2026-09-17 466be35 radv: Avoid some VALU during ray traversal Vulkan 1.4.362

Release Tags

Tags follow the format v{mesa-version}-{YYYYMMDD}:

Tag Meaning
v26.2.0-20260427 First build of the day
v26.2.0-20260427-r2 Second build of the same day
v26.2.0-20260427-r3 Third build of the same day

The -r counter starts fresh each day. Multiple builds on the same day happen when Mesa receives more than one commit within 24 hours — each new upstream commit triggers a new build.


Forking / Self-Hosting

You can fork this repo and get fully automated builds running with minimal setup — no custom secrets or external accounts required. All CI uses the built-in GITHUB_TOKEN.

After forking:

  1. Enable Actions — GitHub disables Actions on forks by default. Go to Settings → Actions → General and set it to Allow all actions.

  2. Enable write permissions for Actions — Under Settings → Actions → General → Workflow permissions, select Read and write permissions. This is required for the watcher to commit hash files, update the README, and trigger builds.

  3. Reset state files — The repo ships with state files that track upstream positions. Reset them so your fork starts clean:

    • mesa_hash.txt — clear or delete (watcher records the current Mesa HEAD here; a stale value skips the first build trigger)
    • steven_last_tag.txt — clear or delete (same, for the StevenMXZ release watcher)
    • perf_build_number.txt — set to 1 (incremented and committed by the perf build workflow; leaving it at the current value just means your first perf build gets a higher number, which is harmless but confusing)
  4. Keep the branch named A8xx — The README auto-update step in turnip_build_combined.yml has A8xx hardcoded in four places (git fetch/checkout/pull/push origin A8xx). If you rename the branch, that step will fail and your README won't auto-update. Either keep the branch as A8xx or do a find-and-replace in .github/workflows/turnip_build_combined.yml to match your branch name.

  5. Update cosmetic repo references (optional) — A few strings in the workflows reference the original repo: patch links in release note bodies and "author" in meta.json. Search for The412Banner in .github/ and in build_turnip*.sh, and update to your own username/repo if desired. These don't affect build functionality.

  6. Kick off your first build — GitHub Actions schedules don't fire automatically on forks until the repo sees some activity. Manually trigger either:

    • Mesa Upstream WatcherRun workflow — records the current Mesa HEAD and fires a combined build if it's new
    • Build Turnip (Combined)Run workflow — builds and publishes a release immediately without waiting for the watcher

Once those steps are done, the watcher polls Mesa upstream every hour and triggers a fresh build automatically — no further maintenance needed.


Credits

This project wouldn't exist without the hard work and dedication of these community members. A huge thank you to each of them for sharing their knowledge, publishing their work openly, and being available to help — they're the reason any of this is possible.

Mesa / Freedreno The open-source project that Turnip is part of — without Mesa and the Freedreno community's ongoing development, none of this exists.
whitebelyash Author of the mesa-tu8 A8xx patchset — the foundation of our A8xx driver variant. His research into A810/A825/A829/A830 GPU enablement, KGSL support, and UBWC fixes made Snapdragon 8 Elite Turnip support possible.
Vauzi Author of the A710/A720/A722 GPU enablement work — hardware-specific magic registers, tuned GPU properties, and chip ID research that our experimental 710/720/722 test build is built on.
bylaws Creator of libadrenotools — the driver loading framework that makes all of this usable on Android without root. Without libadrenotools, custom Turnip builds would have no delivery mechanism.
Kimchi Maintainer of AdrenoToolsDrivers — one of the most well-established and trusted custom driver repositories in the Android GPU community, built on top of libadrenotools.
StevenMXZ For his ongoing Turnip builds and releases that the community relies on, and for making his work openly available for others to build upon.

Also thanks to anyone I forgot and not listed — the Android GPU community is full of people whose contributions quietly make things work, and they deserve recognition too.


Support on Ko-fi

Community

Join our Discord: https://discord.gg/n8S4G2WZQ4

About

Automated bleeding-edge Mesa Turnip Vulkan driver builds for Qualcomm Adreno GPUs — packaged for AdrenoTools, updated on every upstream Mesa commit.

Resources

Stars

152 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages