Open Gaming & Graphics

FEX-Emu 2609 adds optional JIT disk caching and performance fixes

Key Takeaway

FEX-Emu introduces an optional disk caching mechanism for JIT-generated code to reduce stuttering during gaming.

Summary

The FEX-2609 release of the FEX-Emu ARM64 to x86 emulator introduces a new optional disk caching feature for JIT code. This feature uses a FOZ file format database to store generated code, aiming to reduce JIT-related stutter in games. The update also includes various JIT performance optimizations, instruction behavior fixes, and the removal of legacy unixlib fallbacks for Wine.

Technical improvements in FEX-2609

  • JIT Disk Caching: Users can enable caching via FEX_DISKCACHE=1 or a JSON option; cached code is stored in a FOZ database to speed up subsequent runs.
  • Performance: Optimization of the PMULHRSW instruction family and faster self-modifying-code detection for Unity games.
  • Concurrency: Reduced lock-contention in the JIT to allow better multi-threaded code generation.
  • Wine Integration: Removed hacky unixlib fallbacks, now requiring the library for specific features to prevent accidental Windows syscalls.
  • Known Limitations: The disk cache currently lacks size limits and may not invalidate correctly if file contents change.

Why it matters

The introduction of disk caching is a significant step toward smoother gaming experiences on ARM64 hardware running x86 workloads.

Original reference: github.com →