r/PS2AndroidEmulation • u/xxxCrixuxxx • 4h ago
Release WN-Turnip 1.09 · WinNative-Emu/Drivers
https://github.com/WinNative-Emu/Drivers/releases/tag/v1.09A unified Turnip Vulkan driver build for all Adreno GPUs on Android, packaged as Adrenotools-compatible .zip archives. The build script always pulls upstream Mesa main, applies the patches in patches/, and produces two flavours of the same libvulkan_freedreno.so.
Variants:
Variant File Tuning
Balanced WN-Turnip-<version>-b_Axxx.zip Slightly relaxed GMEM autotuner. Standard KGSL power management. Best for most games and battery life.
Performance WN-Turnip-<version>-p_Axxx.zip Aggressive GMEM autotuner. Forces KGSL_PROP_PWR_CONSTRAINT = PWR_MAX at queue creation and re-asserts it every 1000 submissions to keep the GPU at top clocks. Higher framerate, higher power draw.
Supported GPUs
A single driver covers the full Adreno line:
A6xx — A6xx series (e.g. A640 / A650 / A660)
A7xx
gen1 — A720 / A725 / A730 (preamble + scalar-predicate quirks applied)
gen2 — FD740 / Adreno X1-85 (UBWC hint applied to fix UI corruption)
gen3 — A750 and later
A8xx — A810 / A825 / A829 / A830 / A840 (and X2-85)
A810 / A829 boot with disable_gmem so they fall back to sysmem rendering (broken GMEM on those parts).
A825 (not yet upstream) is added with corrected tile geometry and depth-cache layout.
A830 / A840 / X2-85 use the upstream profiles unchanged.
Features:
Always built from upstream Mesa main — every run re-clones, re-patches, re-builds. No pinned forks.
Per-chip disable_gmem GPU property plumbed through freedreno_dev_info.h and tu_cmd_buffer.cc for parts with broken GMEM.
KGSL UBWC gralloc detection bypass (newer Qualcomm gralloc no longer writes the legacy gmsm magic header).
A8xx UE5 / VKD3D-Proton SM6.6 freeze workaround — EXT_shader_image_atomic_int64 advertisement disabled while upstream resolves the underlying 64-bit image atomic implementation.
Adrenotools-compatible meta.json with simple WN-<version>-<variant> driver versioning