Turnip v26.3.0-20260728
⚠️ AUTOMATED BUILD — Not guaranteed stable. Use at your own risk.
Mesa Upstream
| Version | 26.3.0 |
| Commit | 60654ce |
| Vulkan version | Vulkan 1.4.354 |
| Commit date | 2026-07-28 |
| Commit title | vtn/opencl: fix libclc needing fp16 lowering to fp32 |
| Build date | 20260728 |
A6xx / A7xx — Standard
The everyday driver for most Adreno phones — Snapdragon 600–800 series (7 Gen, 8 Gen 1–3). Built straight from the latest upstream Mesa with no extra patches, so it's the safest, most-compatible pick. Not sure which file to grab? It's this one.
Technical details
Pure Mesa main (latest upstream commit, no source patches). Three inline NDK r29 compatibility fixes applied at build time:
buffer_handle_ttypedef fix (native_handle.h)hnd->handlevoid-cast fix (u_gralloc_fallback.c)native_buffer->handlecast fix (vk_android.c)
A8xx — Snapdragon 8 Elite
For the newest Snapdragon 8 Elite phones — Adreno 840 / 830 / 829 / 825 / 810. This is the same A8xx driver the community runs — whitebelyash's turnip/gen8 stack (as shipped in tu_v29 and StevenMXZ v33) — rebuilt on the latest Mesa. Still experimental, so a couple of tips:
- A830 looking glitchy? Add
TU_DEBUG=sysmemto your environment. - A game won't start on Qualcomm? Try
TU_DEBUG=deck_emu(spoofs a Steam Deck).
Technical details — patches and provenance
Built from whitebelyash/mesa-unified turnip/gen8 — the canonical A8xx Turnip stack, curated to his A8xx-relevant commits (cosmetic driver-string/versioning commits and anything already in Mesa main are dropped, so this rides bleeding-edge Mesa while carrying his tuning). Credit: whitebelyash.
Applied via a8xx_gen8.patch (13 commits):
- A825 enablement + updated A8xx family configs (
gmem_size,disable_gmem). - A825/A829 offset fixes and A810 custom-resolve / off-MSAA / FDM (A810/825/829/830) tuning.
- A810 UBO-promotion coalescing (ir3) + u_gralloc always-UBWC detection + drm-shim entries.
- whitebelyash HACKs: VK1.3 without multiview, enforce
TU_DEBUG=nocb, selected A810 feature disables, SteamDeck spoof. a8xx_shared_mem.py: raises A8xx compute shared-mem 32→64 KiB.
Already in Mesa main (no patch needed): A840 (0xffff44050A31), A613, A830 properties, magic regs, UBWC 5/6 KGSL, reg_size fixes.
⚠️ Compile-verified only — not yet device-proven; A8xx owners please test and report.
A710 / A720 / A722 — Experimental
An experimental test build adding Adreno 710 / 720 / 722 support (these chips aren't in upstream Mesa yet).
- Set
TU_DEBUG=sysmemin your emulator/app environment. - Winlator users: also set
WRAPPER_BLIT=1.
It won't affect any other GPU — it only activates on those exact chip IDs, and the standard ZIP is completely unaffected.
Technical details
Pure Mesa main plus per-GPU entries injected via a710-720.py (from Vauzi-17/710), using hardware-captured magic registers:
- A710 (
0x07010000) — per-GPUa710_raw_magic_regsfrom real A710 blob traces. - A720 (
0x43020000) — per-GPUa720_raw_magic_regsfrom real A720 blob traces. - A722 (
0x43020100) — per-GPUa722_raw_magic_regs(distinctPC_MODE_CNTL=0x3f,UCHE_CACHE_WAYS=0x0).
num_ccu=3, tile_align_w=64, tile_align_h=32; other properties inherited from Mesa's a7xx_base/a7xx_gen1. None of these chip IDs exist in Mesa main or the Linux kernel device catalog.
Adreno GPU Support
| Series | File | Notes |
|---|---|---|
| A6xx / A7xx | Turnip-v26.3.0-20260728.zip |
Pure Mesa main — Snapdragon 600–800 series, 7/8 Gen 1–3 |
| A8xx | Turnip-v26.3.0-20260728-A8xx.zip |
Experimental — Snapdragon 8 Elite (A840/A830/A829/A825/A810) |
| A710 / A720 / A722 | Turnip-v26.3.0-20260728-710-720-Test.zip |
Which file? A6xx/A7xx → standard ZIP · A8xx (Snapdragon 8 Elite) → A8xx ZIP · A710/A720/A722 owners → 710-720-Test ZIP
Installation
- BannerHub / BCI: Component Manager → Add New Component → select the ZIP
- Winlator / adrenotools: load the ZIP in GPU driver settings