github The412Banner/Banners-Turnip v26.2.0-20260429-r5
Turnip v26.2.0-20260429-r5

5 months ago

⚠️ AUTOMATED BUILD — Not guaranteed stable. Use at your own risk.


Mesa Upstream

Version 26.2.0
Commit aac8787
Vulkan version Vulkan 1.4.348
Commit date 2026-04-29
Commit title radv: remove radv_device_cache_key
Build date 20260429

A6xx / A7xx — What's In This Driver

Pure Mesa main — built directly from the latest upstream commit with no source patches.

Three inline NDK r29 compatibility fixes are 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)

Targets Snapdragon 600–800 series, 7 Gen and 8 Gen 1–3 (Adreno 600–700 series).


A8xx — What's In This Driver

Same NDK r29 fixes as above, plus the following A8xx-specific changes on top of Mesa main:

Applied via tu8_kgsl_26.patch:

  • u_gralloc UBWC fix — disables the gmsm magic check for Qualcomm gralloc buffer detection, which stopped working in newer gralloc versions. Without this, UBWC detection fails and you get a distorted or broken picture on screen.
  • drm-shim entries — adds A810/A825/A829 to the Mesa drm-shim device table (used for offline tracing/testing, not runtime critical).

Applied via fix_a8xx_dev_info.py:

  • Adds disable_gmem property to freedreno_dev_info.h — a flag that tells the driver to skip GMEM entirely for GPUs that can't use it reliably (specifically A810).
  • Adds the GMEM disable check in tu_cmd_buffer.cc so A810 uses the sysmem path instead of crashing.

Applied via apply_a8xx_gpus.py:

  • Adds A825 GPU entry — completely missing from mesa/main.
  • Adds chip_id=0x44010000 to A810 so KGSL can identify the device.
  • Adds disable_gmem = True to A810's GPU props.
  • Adds chip_id=0x44030A00 and chip_id=0xffff44030A00 to A829 so additional device revisions are recognised.

Already in mesa/main (no patching needed):

UBWC 5/6 KGSL support, A830/A829/A810 base entries, A8xx magic regs, reg_size fixes, and TU_DEBUG_FLUSHALL removal are all upstreamed and included automatically.


A710 / A720 / A722 Test Build — What's In This Driver

⚠️ UNVERIFIED — Needs testing on real hardware before this is merged into the standard build.

Pure Mesa main plus chip ID entries for Adreno 710, 720, and 722 injected via a710-720.py:

  • A710 (chip_id=0x07010000) — chip IDs from binary analysis of MrPurple666's T27-toasted driver; GPU properties tuned from Vauzi-17/mesa-tu8 gen8-clean-26 (a7xx_gen1, a730_magic_regs, num_ccu=2, tile_align_w=32)
  • A720 (chip_id=0x43020000) — chip IDs from binary analysis of MrPurple666's T27-toasted driver; GPU properties reuse A730 entry per whitebelyash/mesa-tu8 gen8 (a7xx_gen1, a730_magic_regs, num_ccu=4)
  • A722 (chip_id=0x43020100) — chip ID extracted from binary analysis of Vauzi-17/710 v2.5.2; same 0x43 family as A720 (minor revision 0x01), shares A720 GPU properties

None of these chip IDs exist in Mesa main or the Linux kernel device catalog. The standard ZIP is completely unaffected — this variant only activates on devices reporting exactly those chip IDs.

Recommended: use sysmem mode. GMEM tile rendering is not disabled but relies on A730 magic registers which may not match your hardware — this can cause GPU hangs or corruption. Force sysmem via TU_DEBUG=sysmem in your emulator/app environment until GMEM is confirmed stable on real hardware.

Winlator users: set WRAPPER_BLIT=1 in your environment variables.


Compared to the Original whitebelyash/mesa-tu8 Patchset

Based on patchset-head-v2. The original had 11 commits — most have since been merged into mesa/main, so this build uses only 2 of them directly:

Original Patch Status
UBWC_5/6 KGSL support ✅ Already in mesa/main — merged upstream
u_gralloc UBWC fix ✅ Applied — still needed
disable_gmem property ✅ Applied via Python script — context drifted too far to patch cleanly
Remove TU_DEBUG_FLUSHALL ✅ Already in mesa/main — merged upstream
A8xx magic regs common ❌ Dropped — register renamed (VPC_UNKNOWN_9313 → VPC_UNKNOWN_CNTL), caused build failure
A830 properties ✅ Already in mesa/main — merged upstream
reg_size for a8xx_gen1 ✅ Already in mesa/main — merged upstream
gmem cache offset ✅ Already in mesa/main — already removed
Enable A810/A825/A829 ✅ Applied via Python script — GPU entries partially in mesa/main, script handles the rest
drm-shim A810/A825/A829 ✅ Applied — still needed
Comment dual_wave_dispatch ❌ Dropped — context drifted, upstream has it enabled

Adreno GPU Support

Series File Notes
A6xx / A7xx Turnip-v26.2.0-20260429-r5.zip Pure Mesa main — Snapdragon 600–800 series, 7/8 Gen 1–3
A8xx Turnip-v26.2.0-20260429-r5-A8xx.zip Experimental — Snapdragon 8 Elite (A810/A825/A829/A830)
A710 / A720 / A722 Turnip-v26.2.0-20260429-r5-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

Don't miss a new Banners-Turnip release

NewReleases is sending notifications on new releases.