Skip to content

Turnip v26.3.0-20260728

Choose a tag to compare

@github-actions github-actions released this 28 Jul 01:22

⚠️ 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_t typedef fix (native_handle.h)
  • hnd->handle void-cast fix (u_gralloc_fallback.c)
  • native_buffer->handle cast 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=sysmem to 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). ⚠️ Not yet verified on real hardware. If you try it:

  • Set TU_DEBUG=sysmem in 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-GPU a710_raw_magic_regs from real A710 blob traces.
  • A720 (0x43020000) — per-GPU a720_raw_magic_regs from real A720 blob traces.
  • A722 (0x43020100) — per-GPU a722_raw_magic_regs (distinct PC_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 ⚠️ UNVERIFIED — Adreno 710/720/722 test build, needs hardware testing

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