⚠️ Automated build from Mesa
main: checked by CI, not tested on a device.
| Mesa | |
|---|---|
| Commit | 95b851b
|
| Commit title | amd/common: mask count for SDMA_OPCODE_WRITE in ib parser |
| Vulkan version | Vulkan 1.4.367 |
| Date | 2026-11-06 |
Downloads
| Driver | GPUs | X11 / AdrenoTools | Bannerlator Wayland | Linux runtime |
|---|---|---|---|---|
| Standard | Adreno 6xx / 7xx (8 Gen 3 and older) | Turnip-v27.0.0-20261106.zip
| Turnip-v27.0.0-20261106-Wayland.zip
| Turnip-v27.0.0-20261106-Linux.zip
|
| A8xx (experimental) | Adreno 810 / 812 / 825 / 829 / 830 / 840 (8 Elite) | Turnip-v27.0.0-20261106-A8xx.zip
| Turnip-v27.0.0-20261106-A8xx-Wayland.zip
| Turnip-v27.0.0-20261106-A8xx-Linux.zip
|
| A710 / A720 / A722 (experimental, untested on hardware) | Adreno 710 / 720 / 722 | Turnip-v27.0.0-20261106-710-720-Test.zip
| Turnip-v27.0.0-20261106-710-720-Test-Wayland.zip
| Turnip-v27.0.0-20261106-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-20261106-8G2-OneUI.zip
| Turnip-v27.0.0-20261106-8G2-OneUI-Wayland.zip
| Turnip-v27.0.0-20261106-8G2-OneUI-Linux.zip
|
| Banners-AIO (all SoC) | Every Adreno: 6xx, 7xx, 710 / 720 / 722, 8xx | Turnip-v27.0.0-20261106-Banners-AIO.zip
| Turnip-v27.0.0-20261106-Banners-AIO-Wayland.zip
| Turnip-v27.0.0-20261106-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 95b851b (2026-11-06), 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-20261106.zip
7987c2aaac54665be39ce495017fc5d38c0fc12e0d80eef8cbe0dcd5285fa6ec
Turnip-v27.0.0-20261106-Wayland.zip
e5ff1df3d7e83b4c37c6f5429c6029e9337de2451dc15d12fc2381ce40693271
Turnip-v27.0.0-20261106-Linux.zip
cb0587fee18d51f3eb734944a323db42339ddd3eda9d4d666c1624259e80787a
Turnip-v27.0.0-20261106-A8xx.zip
2c875472714aead8de02897b38ebd2d9b3cd88d18e2aec97a546a8a418ad2de8
Turnip-v27.0.0-20261106-A8xx-Wayland.zip
b0992092140ebc3d1582d89718d68881fd9e0d726b7d5b1a4d19a00640169ba0
Turnip-v27.0.0-20261106-A8xx-Linux.zip
08863554d617f10512f277f89fdeb7acd558d31e14e6af35cff9ed64b7f1e9d2
Turnip-v27.0.0-20261106-710-720-Test.zip
9b9c1d914a0ebffec555b4a0995f7540a56d94b7829d736aa3482b37657b4419
Turnip-v27.0.0-20261106-710-720-Test-Wayland.zip
eceafd4ad532862b40b0088b7a0b5077c0cb0b5d0cb630bedd8cfb38ff136f74
Turnip-v27.0.0-20261106-710-720-Test-Linux.zip
2b1c190510651652ddb49b2c745723467acf65cd157049fc29bb6962ce023e7d
Turnip-v27.0.0-20261106-8G2-OneUI.zip
f30b3a68cccbb67c33b736d5189c6e7b37255909d9af4753fdf4dabcbf321002
Turnip-v27.0.0-20261106-8G2-OneUI-Wayland.zip
68b1bff2ab00b5721809e0d21ef52ac71c53116370d9f4544312a532d21b53c3
Turnip-v27.0.0-20261106-8G2-OneUI-Linux.zip
cbf38bec30a9ed3c355c2b28bd0e176fd75a1dd260742442ab31818697dcde3e
Turnip-v27.0.0-20261106-Banners-AIO.zip
b92852d15ca9c46658dfb28072e254e57cc5440c6d4bfeb40f8070078e170a62
Turnip-v27.0.0-20261106-Banners-AIO-Wayland.zip
2dbd87cc13f0f255f70d11e103c0fea8f2c89fdb4b69904739b6ea46a97dc2b6
Turnip-v27.0.0-20261106-Banners-AIO-Linux.zip
d4c8606fc79fa6428da82826454e3b8aa9e08f6b7c2f2db809df3db2179a47ed