⚠️ Automated build from Mesa
main: checked by CI, not tested on a device.
| Mesa | |
|---|---|
| Commit | c0235ef
|
| Commit title | freedreno/a5xx: program the 2D source and use BLIT_OP_SCALE |
| Vulkan version | Vulkan 1.4.367 |
| Date | 2026-11-07 |
Downloads
| Driver | GPUs | X11 / AdrenoTools | Bannerlator Wayland | Linux runtime |
|---|---|---|---|---|
| Standard | Adreno 6xx / 7xx (8 Gen 3 and older) | Turnip-v27.0.0-20261108.zip
| Turnip-v27.0.0-20261108-Wayland.zip
| Turnip-v27.0.0-20261108-Linux.zip
|
| A8xx (experimental) | Adreno 810 / 812 / 825 / 829 / 830 / 840 (8 Elite) | Turnip-v27.0.0-20261108-A8xx.zip
| Turnip-v27.0.0-20261108-A8xx-Wayland.zip
| Turnip-v27.0.0-20261108-A8xx-Linux.zip
|
| A710 / A720 / A722 (experimental, untested on hardware) | Adreno 710 / 720 / 722 | Turnip-v27.0.0-20261108-710-720-Test.zip
| Turnip-v27.0.0-20261108-710-720-Test-Wayland.zip
| Turnip-v27.0.0-20261108-710-720-Test-Linux.zip
|
| 8 Gen 2 One UI | Adreno 740 (8 Gen 2) with UI flicker, e.g. Samsung One UI | Turnip-v27.0.0-20261108-8G2-OneUI.zip
| Turnip-v27.0.0-20261108-8G2-OneUI-Wayland.zip
| Turnip-v27.0.0-20261108-8G2-OneUI-Linux.zip
|
| Banners-AIO (all SoC) | Every Adreno: 6xx, 7xx, 710 / 720 / 722, 8xx | Turnip-v27.0.0-20261108-Banners-AIO.zip
| Turnip-v27.0.0-20261108-Banners-AIO-Wayland.zip
| Turnip-v27.0.0-20261108-Banners-AIO-Linux.zip
|
Which one?
- X11 (Bannerlator, Winlator, BannerHub, any AdrenoTools app): import the normal zip as a GPU driver. Not sure which driver? Use Standard.
- Banners-AIO: one zip for every Adreno. Each GPU family keeps its own changes: the A8xx recipe only on A8xx chips, the A722 registers only on the A722. Its recipe was tested on an Adreno 830, 750 and 722 before it joined these builds; each hourly build is still only checked by CI.
- Bannerlator Wayland containers: Import Wayland game driver (.zip), then pick the
-Waylandzip. - Bannerlator Linux runtime (gamescope + the native ARM64 Steam client): the
-Linuxzip. It is a glibc Vulkan ICD and it is what draws the client and every game the client launches (needs glibc 2.38 or newer). It is not an AdrenoTools driver and it does not load in a Wine container; the Android zip still puts the finished frame on the screen.
Tips: A8xx: TU_DEBUG=sysmem if an A830 looks glitchy, TU_DEBUG=deck_emu if a game won't start. A710 / A720 / A722: TU_DEBUG=sysmem (in Winlator also WRAPPER_BLIT=1). 8 Gen 2 One UI: only if the Standard driver makes the phone's UI glitch or flicker; on other 8 Gen 2 devices it causes that glitch. The same switch without changing driver: FD_DEV_FEATURES=enable_tp_ubwc_flag_hint=1.
What's in each driver
Tap a driver to see which GPUs it is for, what it changes on top of Mesa, where each change came from and who wrote it.
Every driver: what all five share
main at c0235ef (2026-11-07), built for KGSL.
1da50a1b, MR 44838). See SOURCE.
apply_common.sh, not in Mesa yet): MIO: Memories in Orbit and UNCHARTED: Legacy of Thieves Collection turn on tu_enable_ssbo_emulation on Adreno 7xx, so their large storage buffers work (MIO report). The option itself is Mesa's, by Job Noorman. With other Turnip builds from after 2026-06-10, set tu_enable_ssbo_emulation=true yourself.
Standard: Adreno 6xx / 7xx (8 Gen 3 and older)
main plus Every driver above. No GPU-specific patches, no mesh shaders, no wave32.
A8xx: Adreno 8xx (Snapdragon 8 Elite)
a8xx_gen8.patch: whitebelyash's turnip/gen8 stack (mesa-unified): A8xx GPU entries, UBWC gralloc detection, the disable_gmem property, the Steam Deck spoof (TU_DEBUG=deck_emu), A810 / A812 fixes. Commits and authors:
a8xx_shared_mem.py: compute shared memory 32 → 64 KiB on every entry (whitebelyash, dcbb41b2). Known: Vulkan conformance tests above 32 KiB fail on an Adreno 830; Banners-AIO keeps 32 KiB.
a8xx_no_double_threadsize.py: keeps Mesa's supports_double_threadsize = False for A8xx. DVD's "update a8xx family configs" commit above turns it on, and then subgroup math in compute shaders (subgroupAdd, shuffle, ballot, …) returns wrong results on an Adreno 830; with Mesa's value the same tests pass and speed is unchanged (Banners-Turnip, 2026-11-05).
0001-tu-Emulate-VK_EXT_mesh_shader-with-compute.patch mesh shaders emulated with compute and 0002-tu-ir3-Support-a-required-subgroup-size-of-half-a-wa.patch wave32 (DirectX 12 Ultimate games such as FINAL FANTASY VII REBIRTH and Alan Wake 2); 0003-ir3-Sanitize-cube-map-directions-on-A8XX.patch, 0004-tu-Invalidate-bindless-descriptors-through-the-A8XX-.patch, 0005-tu-kgsl-Fetch-A8XX-command-streams-through-a-virtual.patch three GPU hang fixes. His IB cache (0006) is left out: it broke the Linux driver on some Adreno 840s.
TU_DEBUG=sysmem if an A830 looks glitchy, TU_DEBUG=deck_emu if a game won't start.
A710 / A720 / A722: Adreno 710 / 720 / 722
main itself (upstream since September 2026).
a710-720.py: swaps Mesa's A730-based A722 entry for Vauzi-17/710's registers captured on real A722 hardware (num_ccu = 2). Credit: Vauzi-17.
01-u_gralloc-always-use-ubwc-detection.patch: UBWC gralloc fix (whitebelyash), as shipped in Vauzi-17/710's releases.
TU_DEBUG=sysmem; in Winlator also WRAPPER_BLIT=1.
8 Gen 2 One UI: Adreno 740 on newer firmware
8g2_oneui.py (Banners-Turnip): turns on enable_tp_ubwc_flag_hint for the Adreno 740, to match newer system drivers such as Samsung One UI. Mesa leaves it off to match the older system driver.
FD_DEV_FEATURES=enable_tp_ubwc_flag_hint=1.
Banners-AIO: every Adreno, one driver
libvulkan_freedreno.so for every Adreno; Turnip picks each GPU's settings by chip ID. one_gpu_gates.py (Banners-Turnip) keeps the A8xx-wide changes on A8xx chips, so every other GPU behaves as in its own driver here. Compute shared memory is 32 KiB on every GPU.
turnip/gen8 stack and Max's WinNative 0001-0005 as in the A8xx driver (without the 64 KiB script, with a8xx_no_double_threadsize.py); LRZ controls reset after the end-of-pass flush (Gustash); buffer descriptors of 1 GiB and more keep their size (airidosas252, now also in Mesa); RB_RESOLVE_CR_CNTL and LRZ color mask as the Qualcomm driver (adapted from Vauzi-17/710); extra chip IDs for the A829, A845 and A850, and no category-4 repeat on the A845 / A850 (misakayuuki); GMEM off on the A810 and A829.
one_fixes.py and SOURCE.md. Its recipe was tested on an Adreno 830, 750 and 722 before it joined these builds.
Build details and checksums
kgsl-drm-node.patch and kgsl-no-calibrated-timestamps.patch. They ship the ICD and its manifest only: the libraries are the runtime's own. CI checks each one.
File
SHA-256
Turnip-v27.0.0-20261108.zip
6ca33692b0c1ae46bb97b2e38f12be03b0c58261e9432e2c73890dbf040cb403
Turnip-v27.0.0-20261108-Wayland.zip
75f74f4cb8f7f7122c85e2bf6c2e130140a97cc5ed8ce9246cff458000fe8f20
Turnip-v27.0.0-20261108-Linux.zip
462a80e9453748cff1807aa864f815b288237fcee66c5d67769c6e32518e1cb7
Turnip-v27.0.0-20261108-A8xx.zip
f1882b128435361895e4ee44ba3030ce64508d983007f89ba28010636c90e6a8
Turnip-v27.0.0-20261108-A8xx-Wayland.zip
35b02963a328f3131381640923f8af712a17b575d52fe6572252f7390e1a38b9
Turnip-v27.0.0-20261108-A8xx-Linux.zip
beaa25dcdaf493c3c45ce3c99fcdbf761239c45d3d9bac62ae001df79e66df21
Turnip-v27.0.0-20261108-710-720-Test.zip
a8f429e238f6c911fcbea55284c93ba6393994ff5ec7fba95b4368f435ffbd17
Turnip-v27.0.0-20261108-710-720-Test-Wayland.zip
642f7105f8fd3adf82b1e14710977735a8781345091996a47e20fd129f933d5c
Turnip-v27.0.0-20261108-710-720-Test-Linux.zip
2f4559a4da32a92cd48f05583b1460a720c85ac8831eceb33bd9bf48214c3381
Turnip-v27.0.0-20261108-8G2-OneUI.zip
7aef17702760a9e8c17eb1a23bb6f9b131f1b497244ad348f70009d79d3aa3e1
Turnip-v27.0.0-20261108-8G2-OneUI-Wayland.zip
2149724a4706d1fd1b94c1b86a3794689950e1821735544fb0c8d30e0218bc99
Turnip-v27.0.0-20261108-8G2-OneUI-Linux.zip
3237de338eaebc23ac2cc8bbbe3a97c528c74dfe4001c0bfdf3a1efa8cf8df4d
Turnip-v27.0.0-20261108-Banners-AIO.zip
b0b131c8d08804c588af81a2c2578cc560c56989037bef780c1862c8a94f4db1
Turnip-v27.0.0-20261108-Banners-AIO-Wayland.zip
3501ce303e72f1aa2e6dfc018fd2fe30f3b3d5c0a4d0f1eba81d5b25836cf17b
Turnip-v27.0.0-20261108-Banners-AIO-Linux.zip
8fdf29476a836340cacb8a737ade002ae1c4cdca1b29d158f2be7e7a886c9497
Names files
symbols-<build ID>.tsv.gz: function names and Mesa source lines of the Android drivers above, for the source-code view in DriverLab. Not needed to use the drivers.