Caution: This version is provided for testing purposes only. It may lead to game instability or crashes. Use at your own risk.
Proton Wine Build based on Valve Wine
Proton Version: 11.0-2
Built from commit: b71efff
Architectures
- x86_64 (Intel/AMD 64-bit)
- arm64ec (ARM64EC)
Single SDK 28 build with 16KB page size support (works on Android 9+ and Android 15+).
Features
- Experimental userspace ntsync (via ntsync-android, commit
7ce6435) + fsync, with wineserver-sidentsync_event_setsupport WINE_FAST_YIELDfast-yield hook inNtYieldExecution- FEX integration (stats shm,
SkipThreadAttachdetach guard) via bylaws' arm64ec patches - FEX unixlib loader:
MemoryWineLoadUnixLibByName/ wow64 / unload support with$PREFIX/lib/winefallback WINEVMEMMAXSIZEvirtual-address cap for FEX environments- Integrated lsteamclient built into Proton (supports GameNative bionic Steam)
- Stripped,
-g0 -O2build: smaller tree, faster install (zstd-packed.wcp)
ntsync-android changelog (d00ac47..7ce6435)
- Adaptive spin-before-block (
NTSYNC_SPIN_ITERS, default off) — a waiter spins briefly on a read-only acquire check before sleeping on the futex; a signal landing in the window avoids a sleep+wake pair entirely. Per-thread adaptive credit (JVM-style) self-throttles threads with long waits. Measured on device: Persona 5 Royal avoids 25-28% of blocked-wait sleeps during sync bursts (60-76% spin win rate); Dishonored / Lies of P / Hades II correctly self-throttle to ~0.2% CPU. See the README per-game tuning guide. - Wait-path trims + sweep-trigger RSS fix — WAIT_ALL rollback no longer zeroes 1 KB of stack per call; auto-sweep triggers moved off the lock-free signal ops into wait paths only (a dead-process scan can never land on a latency-critical signaler); bounded sweep scans fix a sparse-page RSS spike (664 kB -> 112 kB when a sweep ran).
- Auto-sweep of dead processes' objects (layout v9) — wait paths run a rate-limited region-wide sweep (default 30 s,
NTSYNC_SWEEP_INTERVAL_SECto tune,0to disable), replacing manualntsync_sweep_dead()reliance; the stuck-wait debug dump shows creator pid liveness. Fixes a plausible cause of 60 sRtlpWaitForCriticalSection ... blocked by 0000stalls after a Wine process crashes. - Wait-path CPU reductions — wake-latency instrumentation is now debug-gated,
futex_wakewakes exactly one waiter, and all per-wait heap allocations became fixed stack arrays. Measured vs. baseline: cross-process RPC -17%, multi-process contention -25%, Wine mixed load -8% CPU per op. - Lazy region init (layout v8) — the ~960 KB shm file is no longer bulk-zeroed at init: mapped RSS drops from 976 kB to ~16 kB (sparse pages, negligible flash writeback), growing only as objects/waiters actually arrive.
NTSYNC_NO_SIGUSR1_BLOCK=1opt-out — skips the twopthread_sigmasksyscalls per region-lock acquisition (~13% per-op under multi-process contention). Default stays on; only safe outside Wine.- Wine-workload benchmark suite — 7 benches (shm footprint, signaled fast path, cross-process RPC, mixed load, fork/exec multi-process contention) with a JSON baseline for regression gating.
- On-device stats (
NTSYNC_DEBUG=1) — per-process counters (waits, fast-path hits, sleeps, wake walks, wake latency, spin wins/exhaustion) dumped every 10 s; validated at scale in four games with zero lock contention and zero EAGAIN churn.
Android / bionic fixes
- Anonymous PE-image mapping for bionic (vc4 devices);
LC_ALL=C.UTF-8default; shell32 drive-root path fix - Android clipboard bridge (user32/win32u) and Android URL/intent launching in winebrowser
- dnsapi libresolv bionic port; nsiproxy interface/route enumeration without netlink; ws2_32 socket tweaks
- winepulse audio period fix, MIDI mapper rework, SDL gamepad init fixes
- winex11 window/keyboard/mouse/GL/desktop tweaks; explorer desktop sizing;
GetUserNameAon Android
Credits
Compile optimizations (ccache, -g0/strip, zstd packaging) and runtime improvements — WINE_FAST_YIELD fast-yield, FEX unixlib loader, WINEVMEMMAXSIZE VA cap, vc4 bionic fixes (anonymous PE mappings, LC_ALL=C.UTF-8, shell32 drive-root fix), and xrandr/xrender enablement — are adopted from The412Banner/proton-wine release build-p11-20260821 (merged in commit b08376b).
WCP Files
Proton Type:
proton-11.0-2-x86_64.wcp- For GameNativeproton-11.0-2-arm64ec.wcp- For GameNative
Wine Type:
proton-wine-11.0-2-x86_64.wcp.xz- For Winlator for CMOD & Ludashiproton-wine-11.0-2-arm64ec.wcp.xz- For Winlator for CMOD & Ludashi