Fex – FEX Release FEX-2604
New update alert for FEX-2604! ๐
FEX is a high-performance x86/x86-64 emulator designed specifically for ARM64 Linux. Itโs the ultimate tool for running Windows and legacy x86 games via Wine or Proton on ARM devices like the Raspberry Pi 5, NVIDIA Jetson, or Apple Silicon Macs. Think of it as “QEMU for gamers”โbuilt to be faster, smarter, and optimized for play!
Whatโs new in this release:
Core Performance & Memory Boosts โก
- Speed Up: Enabled Transparent Huge Pages (THP) on JIT buffers to significantly boost execution speed.
- Memory Optimization: Streamlined `Memset` and `Memcpy` operations and integrated MOPS handling for leaner performance.
- Smart Caching: Now defaults to Dynamic L1 and Disabled L2 caches to create a more streamlined execution path.
- Leaner Management: Cleaned up legacy memory allocator handling.
Architecture & Instruction Support ๐ ๏ธ
- Arm64EC Efficiency: Improved performance by moving the suspend doorbell out of the hot path.
- New Instructions: Added basic stub handling for AVX10 info and improved `nop` encoding for prefetch instructions.
- Math Optimizations: JIT-inlined trigonometric functions (`F64SIN`, `F64COS`, `F64TAN`) to reduce precision overhead on x87 paths.
System & Linux Integration ๐ง
- Stable ELF Parsing: Improved stability and efficiency for ELF parsing, especially when code caching is disabled.
- Enhanced Signal Handling: Better MXCSR saving/restoring on Linux to ensure guest frame integrity.
- Faster Setup: Improved hashing performance for the RootFS Fetcher.
Developer & Build Improvements ๐๏ธ
- Faster Builds: CMake now defaults to “Release” mode, making your initial builds much quicker!
- Bug Fixes: Resolved ELF parsing crashes and fixed memory leaks in the IREmitter pool allocator.
- Streamlined CI/CD: Updated dependencies and optimized GitHub Actions/GitLab CI requirements.
Compatibility Note: ๐ณ
This release includes specific workarounds for Docker `seccomp` bugs, making FEX even more reliable when running in containerized environments!
Platforms: ARM64 Linux (Raspberry Pi 5, NVIDIA Jetson, Apple Silicon via Linux). Requires ARMv8+ hardware.
