FEX 2509 released: Enhancements for Seamless x86 Application Execution on ARM64 Linux Devices
The latest version of FEX (2509) has been released, providing a range of improvements to ensure smooth execution of x86 applications on ARM64 Linux devices. Built upon the existing capabilities of qemu-user and box64, FEX enables broad compatibility with both 32-bit and 64-bit binaries, along with support for forwarding API calls to host system libraries like OpenGL or Vulkan.
Key Features:
- Advanced Binary Recompiler: FEX boasts an advanced binary recompiler that supports all modern extensions of the x86(-64) instruction set, including AVX/AVX2.
- Custom IR Generation: A custom intermediate representation (IR) allows for optimized code generation, reducing emulation overhead and minimizing in-game stuttering.
- Per-App Configuration System: Users can tweak performance settings per game, such as skipping costly memory model emulation.
- User-Friendly FEXConfig GUI: Explore and modify settings using a user-friendly graphical interface.
New Improvements in FEX 2509:
- JIT Enhancements: Multiple improvements to the Just-In-Time (JIT) compiler, including:
- Improved branch target lookup
- Fixed zero-extend semantics on CMPXCHG instructions
- Support for JMPF/CALLF/RETF with operating mode switch
- Optimized x87 FTW calculation
- IEEE 754 unordered comparison fixes in x87
- Mono Performance Hacks: Specific optimizations for Mono's JIT, addressing issues related to self-modifying code and code invalidation.
- Disable 3DNow! by Default on Wine WOW64 Binary: To prevent black screen rendering in games like Fallout: New Vegas, due to specific optimized code routines using the D3D9X support library.
- Fix BRK Size Calculation: Corrected size calculation for the program break memory allocation, preventing potential emulation bugs and allowing for efficient use of virtual address space.
Downstream FEX Packages Updates:
- Apple Silicon Users Running Fedora Asahi Remix: Fixed graphical FEXConfig tool to no longer override muvm's internal RootFS setup.
- Library Forwarding Support: Added support for library forwarding on NixOS, thanks to the merged nixpkgs pull request.
Overall, FEX 2509 offers a more refined experience for running x86 applications on ARM64 Linux devices, with enhanced performance and compatibility features.
Release FEX Release FEX-2509 · FEX-Emu/FEX
Read the blog post at FEX-Emu's Site! After last month's enormous improvements, this release will look quite tame in comparison. Although we still did a bunch of work, so let's dive in. More JIT im...
