⚠️ AUTOMATED BUILD — Not guaranteed stable. Use at your own risk.
Mesa Upstream
| Version | 26.2.0 |
| Commit | af1669d
|
| Vulkan version | Vulkan 1.4.348 |
| Commit date | 2026-04-27 |
| Commit title | pco: reserve additional outputs for trilinear sampled coeffs |
| Build date | 20260427 |
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_ttypedef fix (native_handle.h)hnd->handlevoid-cast fix (u_gralloc_fallback.c)native_buffer->handlecast 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
gmsmmagic 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_gmemproperty tofreedreno_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.ccso 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=0x44010000to A810 so KGSL can identify the device. - Adds
disable_gmem = Trueto A810's GPU props. - Adds
chip_id=0x44030A00andchip_id=0xffff44030A00to 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.
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-20260427-r4.zip
| Pure Mesa main — Snapdragon 600–800 series, 7/8 Gen 1–3 |
| A8xx | Turnip-v26.2.0-20260427-r4-A8xx.zip
| Experimental — Snapdragon 8 Elite (A810/A825/A829/A830) |
Which file? A6xx/A7xx → standard ZIP · A8xx (Snapdragon 8 Elite) → A8xx ZIP
Installation
- BannerHub / BCI: Component Manager → Add New Component → select the ZIP
- Winlator / adrenotools: load the ZIP in GPU driver settings