Repository navigation
Replies: 2 comments
|
Eden Emulator runs very smoothly on my Poco Pad, getting 40–60 FPS with the Snapdragon 7s Gen 2 and Adreno 710. |
0 replies
|
Only good driver i've found for my 7s gen 4 A810, literally life and sanity saver. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Support
Changes in v4.5
Driver Variants
Turnip-710-720-722-v4.5.zip):Universal build based directly on upstream Mesa for broad compatibility across different emulators and native applications.
Turnip-710-720-722-v4.5-sw.zip):Specifically tuned and optimized for Nintendo Switch emulators (Eden, etc.) on Adreno 7xx and 8xx.
Turnip-710-720-722-v4.5-win.zip):Specifically tuned and optimized for Winlator and Windows/DirectX emulation environments on Android.
Environment Configuration (
default_env.conf) (Optional)Download: default_env.conf
File Placement
Save the downloaded
default_env.conffile to:/sdcard/Android/data/<package_name>/files/default_env.conf/sdcard/Android/data/<package_name>/files/default_env.conf/sdcard/Android/data/com.winlator/files/default_env.conf/sdcard/default_env.confBuild Info
02f13375231b(2026-10-24)Applied Patches
Regular / Universal (Upstream)
01-u_gralloc-always-use-ubwc-detection.patch— u_gralloc: always use the UBWC detection pathSwitch (SW)
01-u_gralloc-always-use-ubwc-detection.patch— u_gralloc: always use the UBWC detection path02-tu-lrz-reuse-dont-care-in-sysmem.patch— tu/lrz: reuse LRZ state for DONT_CARE depth when rendering in sysmem06-a8xx-cube-coord-sanitize.patch— ir3: Sanitize cube map directions on A8XX07-a8xx-kgsl-ib-vbo-alias.patch— tu/kgsl: Fetch A8XX command streams through a virtual BO08-tu-kgsl-cache-retired-a8xx-ib-storage.patch— tu/kgsl: Cache retired A8XX IB storage09-tu-ir3-subgroup-half-warp.patch— tu,ir3: Support a required subgroup size of half a wave11-wn-fix-a8xx-dev-info.py— Idempotent fixup for freedreno_dev_info.h and tu_cmd_buffer.cc12-wn-apply-a8xx-gpus.py— WN-Turnip A8xx GPU support applicator for freedreno_devices.py14-wn-apply-a7xx-gen2-ubwc-hint.py— WN-Turnip A7xx_gen2 UI-corruption fix for FD740 / Adreno X1-8515-wn-add-aimapper-gralloc.py— Add the IMapper5 stable-C gralloc backend (SP-HAL loaded) to Mesa16-wn-add-ubwc-swapchain-usage.py— Request UBWC-compressed swapchain buffers on Adreno17-wn-apply-perf-variant.py— Apply aggressive autotune and variant-specific GPU clock forcing for performance18-wn-a8xx-shared-mem.py— Robust equivalent of whitebelyash/mesa-unified turnip/gen8 commit20-default-env.py— Built-in default environment variables for Turnip with app override support30-tu-z-mutable.py— Turnip-Z port: keep MUTABLE_FORMAT images tiled (and UBWC) on all GPUs31-tu-z-lrz-rescue.py— Turnip-Z port: LRZ rescue on in-render-pass depth clears32-tu-z-texfast.py— Turnip-Z port: cheaper texture sampling33-tu-z-bgra-swap.py— Turnip-Z port: real color swap for B8G8R8A8 on tiled images36-tu-z-sysmem-only.py— Turnip-Z port: force sysmem rendering, and keep the bin-restore preamble37-tu-z-bgra-companion.py— Turnip-Z port: BGRA8 companion changes with multi-mode color swap support40-fd710-blob.py— FD710: consolidated hardware property and register tuning from Adreno 710 blob analysis (V@0615)48-a8xx-lrz-color-mask.py— A8xx: Emit GRAS_LRZ_COLOR_COMP_MASK (0x810c) in blend dynamic state50-fd720-blob.py— FD720: register tuning from Adreno 720 blob analysis (V@0676)51-fd810-blob.py— FD810: unified Adreno 810 hardware tuning from Vulkan blob trace analysis (V@0800.74)52-a8xx-resolve-cr-cntl.py— A8XX: Emit REG_A8XX_RB_RESOLVE_CR_CNTL=1 in preamble magic registers53-a8xx-lrz-bidir-disable.py— A8XX: Set FORCE_BI_DIR_LRZ_DISABLE in sysmem and disabled LRZ render passes54-a8xx-sp-hysteresis.py— A8XX: Initialize Shader Processor hysteresis thresholds in context preamble55-tu-lrz-dir-change-no-invalidate.py— Preserve LRZ state across draws on depth compare-op direction change56-fd722-blob.py— FD722: register tuning and hardware properties for Adreno 722 from Qualcomm blob analysis (chip_id 0x43020100)60-tu-sysmem-wfi-relax.py— Relax subpass slice wait from WFI to WAIT_FOR_ME in sysmem mode61-tu-lrz-fs-sideeffects-no-invalidate.py— Preserve LRZ state across draws when fragment shader has side effects62-tu-draw-state-skip-identical.py— Avoid redundant dynamic draw state packet emission63-ir3-sched-prefer-lower-live.py— Prioritize instructions with lower live register effect during pressure growth65-tu-z-shader-cache.py— Turnip-Z port: optional on-disk shader cache for Android emulatorsWinlator / Windows (WIN)
01-u_gralloc-always-use-ubwc-detection.patch— u_gralloc: always use the UBWC detection path02-tu-lrz-reuse-dont-care-in-sysmem.patch— tu/lrz: reuse LRZ state for DONT_CARE depth when rendering in sysmem06-a8xx-cube-coord-sanitize.patch— ir3: Sanitize cube map directions on A8XX07-a8xx-kgsl-ib-vbo-alias.patch— tu/kgsl: Fetch A8XX command streams through a virtual BO08-tu-kgsl-cache-retired-a8xx-ib-storage.patch— tu/kgsl: Cache retired A8XX IB storage09-tu-ir3-subgroup-half-warp.patch— tu,ir3: Support a required subgroup size of half a wave11-wn-fix-a8xx-dev-info.py— Idempotent fixup for freedreno_dev_info.h and tu_cmd_buffer.cc12-wn-apply-a8xx-gpus.py— WN-Turnip A8xx GPU support applicator for freedreno_devices.py14-wn-apply-a7xx-gen2-ubwc-hint.py— WN-Turnip A7xx_gen2 UI-corruption fix for FD740 / Adreno X1-8515-wn-add-aimapper-gralloc.py— Add the IMapper5 stable-C gralloc backend (SP-HAL loaded) to Mesa16-wn-add-ubwc-swapchain-usage.py— Request UBWC-compressed swapchain buffers on Adreno17-wn-apply-perf-variant.py— Apply aggressive autotune and variant-specific GPU clock forcing for performance18-wn-a8xx-shared-mem.py— Robust equivalent of whitebelyash/mesa-unified turnip/gen8 commit20-default-env.py— Built-in default environment variables for Turnip with app override support32-tu-z-texfast.py— Turnip-Z port: cheaper texture sampling40-fd710-blob.py— FD710: consolidated hardware property and register tuning from Adreno 710 blob analysis (V@0615)48-a8xx-lrz-color-mask.py— A8xx: Emit GRAS_LRZ_COLOR_COMP_MASK (0x810c) in blend dynamic state50-fd720-blob.py— FD720: register tuning from Adreno 720 blob analysis (V@0676)51-fd810-blob.py— FD810: unified Adreno 810 hardware tuning from Vulkan blob trace analysis (V@0800.74)56-fd722-blob.py— FD722: register tuning and hardware properties for Adreno 722 from Qualcomm blob analysis (chip_id 0x43020100)60-tu-sysmem-wfi-relax.py— Relax subpass slice wait from WFI to WAIT_FOR_ME in sysmem mode61-tu-lrz-fs-sideeffects-no-invalidate.py— Preserve LRZ state across draws when fragment shader has side effects62-tu-draw-state-skip-identical.py— Avoid redundant dynamic draw state packet emission63-ir3-sched-prefer-lower-live.py— Prioritize instructions with lower live register effect during pressure growth7c14092ffb50622f78f9c466d92f2a6c0fce71a7.patch— ir3: Only prefetch UBO descriptorsec5a9a6d86133c45d3e42bd3583ba3ad9572c3a2.patch— ir3: Remove texture descriptor prefetch supporttu-sample-shading-gate.patch— tu: only force per-sample interpolation for shaders that use itUpstream Freedreno Changes Since 4.4-exp
38 commits under
src/freedreno, grouped by commit title.A7xx (1)
73c57838dafreedreno/ci: lower the a702 job timeoutsTurnip (tu) (17)
8aa6218125tu: Restore old predicated binning workaround for a630_sqe.fwe14789a70etu: Report unsigned and mixed 4x8 dot acceleration with dp4accf0bc8697b5tu: Mark signed 4x8 integer dot products as acceleratedfe3e563cebtu: Set prefer_gmem for Sweet Surrender VR7e29b87af3tu: Prefer GMEM on Beat Saber64245a20b7tu: Add back float16 3D path for multisampled copiesa1e9f88842tu/kgsl: Fix BDA capture/replay failures due to deferred VA freesa799b0bacatu: Apply tu_enable_ssbo_emulation workaround to all UE5 games69f1f21f02tu: upload draw_id_offset through driver_params UBO9a7372e8f7tu: split VS driver params constants setup and emissionfd5a6795e3tu: rename skip_vfd to indirect in struct tu_vs_params7638039f12tu: Split large indirect count draws on A8xx14656cee8ctu: Split large indirect draws on A8xxcadc7e42fbtu/a6xx: Invalidate shared consts before disabling themaf60682ce5tu: modify hull shader programming4f6314dc9ctu: Drop reference taken with get_vis_stream_patchpoint_cs()761d5c8a54tu/a6xx: Set correct value for GRAS_MODE_CNTLCompiler (ir3) (11)
ed2b00fa28ir3: assemble the block copy between global memory and local42177b5f4fir3: decode the block copy between global memory and local8d2fe6ed62ir3: implement global atomics on a5xxfe46ccc999ir3: implement global load/store for a5xxae42351705ir3: move the ldg/stg offset handling to a headerb8141939d2ir3: print the half prefix on local and private load/store05950e40bfir3: reserve image dimensions for read-write images on a5xx07fd8b3603ir3: keep a5xx shaders below the descriptor window in the constant file7656cf464dir3: do not let full-register writes reset half-register delays before a6xx29db4909d4ir3/ra: fix DOUBLE_ONLY register limit unit1ae1558b89ir3: lower draw_id to use draw_id_offsetOther (9)
02f1337523mesa: don't read past the name when matching a resource without its [0]ca442f8209freedreno/a5xx: swap components when storing to an image724b21ef16freedreno/a5xx: let half arithmetic overflow to infinity07f52057cafreedreno/a5xx: decompose strips and fans in the D3D order for the first-vertex conventione5c0aa8e52freedreno/a5xx: keep hardware-binned bins below 1024 rows57fea5146fci/lava: uprev lava-job-submitterd1337cf9f7freedreno/ci: reenable dEQP UBO tests0e8f40efb0freedreno: Fixup incorrectly copied A6XX_TPL1_DBG_ECO_CNTL for A650d1526c1885freedreno/devices: Add the Adreno 829 msm chip idGPU Support
Supports all GPUs currently supported by Mesa, including Adreno 6xx, 7xx, and 8xx series.
For the complete and up-to-date device list, see:
https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/freedreno/common/freedreno_devices.py
Notes
TU_DEBUG=sysmem).This discussion was created from the release Turnip Adreno 710,720,722 v4.5.
All reactions