Wine's nsiproxy reads /proc/net/dev and /sys/class/net/*/carrier for every interface on each
adapter query, and the route tables for gateways. Android refuses those opens, and each refused
open costs 60-150 us under proot before the synthesized table is returned. A refusal is now
remembered for a second per table, so repeat reads go straight to the synthesized copy.
Mortal Kombat XL asks for its adapters from the game thread about 30 times a second:
GetAdaptersAddresses 2.92 -> 2.53 ms, GetIfTable 1.79 -> 1.35 ms, winedevice 9.0 -> 7.6% CPU.
The client runs a game's install scripts through Proton at every
launch, a whole Wine start before the game's own. When the evaluator
already exited cleanly for the same scripts in this prefix and every
process they name is still marked as run, it is not started again.
Moonlighter launches went from 10.5 to 7.7 s.
gamescope polls mangoapp's queue every frame and each msgsnd/msgrcv
listed the object folder, opened and mapped the queue, then unmapped
it again. Queues are now mapped once per process; removal is marked
in the shared header so cached mappings drop it and blocked waiters
get EIDRM as on Linux.
* fix: stop the DirectAudio output while the sink is suspended
* fix: verify every session thread before reporting suspension
* fix: freeze PRoot first and stop each guest thread on suspend
---------
Co-authored-by: Detinator10 <8469261+Detinator10@users.noreply.github.com>
FEX launched through a script (Valve's _v2-entry-point) was judged 32-bit, so the
fast path stayed off in the FEX client while FEXServer bound its socket through it.
The fast path now follows #! lines before judging the program.
The live compat sync drops apps the client refuses GetCompatTools for instead of
reattaching forever.
* perf: download hand tracking models and native libs on first use
* feat: build and publish add-on packs in CI, add Xbox and Comet packs
* feat: ship proot and DirectAudio drivers as CI-built packs
* test: hand tracking readiness requires the tracking pack
* ci: attach PR test-build packs to the PR release instead of Components
Exercise keyframe and ring reads with unmapped, PROT_NONE, read-only and page-boundary destinations. Verify complete-event progress within one vector and across vectors, including a NULL destination. The Linux fakeinput suite passes 11 tests with 3 i386 skips; both native ARM64 probes pass on the Thor.
Stage ring and keyframe events before copying them with process_vm_writev. Return EFAULT for inaccessible destinations and advance the reader only for complete events delivered, preserving partial readv progress. Retested Factorio on the Thor with the exact ARM64 library.
Cover unmapped, PROT_NONE, and partially accessible iovec arrays. The probe crashes with SIGSEGV before the descriptor-copy fix and returns EFAULT afterward. The Linux fakeinput suite and native ARM64 probe pass; Factorio was manually retested on the Thor with the updated library.