FEX-2601 released
A new version of the powerful usermode x86 and x86-64 emulator for Arm64, FEX-2601, has been released. This version tackles some tricky problems that had been showing up with specific programs.
One thing stands out: dealing with Vulkan updates from Proton and Mesa. Those recent graphics extension changes meant DXVK or vkd3d-proton would sometimes make demands on the system's existing driver setup, causing issues. But FEX-2601 has updated its own 'thunks' (basically how it connects to native functions) to handle these situations better. Games shouldn't have these sudden compatibility snags anymore.
There were also some rare freezes happening inside Wine with mutexes, those program locks. The problem was in the custom mutex code FEX uses, which originally aimed to smooth out slowdowns from dynamic code changes (code cache stuff). Turns out there were a couple of bugs hiding here: one involved weird interactions that could stall things, and another messed up how certain functions signaled threads properly. If reader threads do not wake up or if the entire system crashes, these issues should no longer occur with this fix.
Speaking of code caches, fixing jumpy gameplay caused by these new changes might help prevent other games from hitting similar self-modifying code problems better.
And while on system stuff, FEX also patched a small Linux syscall issue related to fcntl. This prevents crashes in very specific scenarios for apps like Steam. It's minor but fixes real edge cases.
Elsewhere, progress continues with that complex code caching feature; it works best for reducing stutter from programs needing JIT (Just-In-Time) compilation on both the Windows compatibility layer and your local system. Still being worked out, yes, but already helping to smooth things over when needed most.
Essentially, FEX-2601 tackles several specific bugs reported by users running certain applications under emulation, primarily related to graphics drivers handling newer Vulkan standards via Proton/Mesa hooks, issues with how Wine manages thread synchronization (mutexes), and ongoing improvements for the code cache itself.
Release FEX Release FEX-2601
As the developers awaken from their holiday induced hiberation, another release is upon us in the new year! Let's see what we managed to implement before hibernation snuck up on us.
