FEX 2110, 2109, & 2108 Tagged!

See 2110 Release Notes, 2109 Release Notes, and 2108 Release Notes.

FEX-2110

Usability

  • Adds new Thunks database config layout to make thunks easier to manage

Compatibility fixes

  • Fixes to POSIX message queues, timers, and 32-bit Linux syscalls

Performance

  • Vulkan X11 thunking to improve CPU performance
    • Wayland thunking not currently hooked up

Minor fixes

  • AOT fix a user after free
  • pressure-vessel check and install redirect
  • FEXInterpreter flush logs after print. Fixes not seeing logs on crash
  • EmulatedFilesystem allow guest to see real root. Fixes eON games
  • FEXMountDaemon race on shutdown fix
  • StructVerifier fix for comparing match across architectures

Developer usability

  • Add a script to more easily extract function signatures for thunks
  • RA Validation to check register allocation is correct

FEX-2109

Arm64

  • Fix a bug when spilling registers on POSIX signal
  • Fixes binfmt_misc install on Arch
  • unaligned cmpxchg now works on ARMv8.0
    • Thanks to CallumDev for resolving this issue!

Usability

  • FEXBash helper without arguments now starts a simple bash running under FEX
    • If any arguments are passed in then it still behaves similar to sh -c
  • FEXConfig now allows you to load an application config
    • Also a new advanced tab to show the raw config options
    • Useful for trimming application configs

Developer usability

  • FEXCore API visibility fixes
  • FEXGetConfig application for getting some FEX information
  • Option to disable static register allocation for testing

Minor fixes

  • Bunch of fixes to try and resolve dangling FEXMountDaemon mounts
    • Significantly improved but not entirely resolved
  • Fixes to POSIX signal handling
  • Fixes to 32-bit ioctl emulation
  • A couple new Linux syscalls implemented
  • Proton fixes
  • jemalloc fixes
  • 32-bit wine fixes
  • 32-bit siginfo_t fixes
    • Not fully resolved, needs more work

FEX-2108

Arm64

  • Fix static-pie crashing
  • Fix Spill slot calculation being offset by one slot
  • Unaligned atomic fixes

Usability

  • Adds static-pie option. Necessary for chroots
  • FEXMountDaemon fixes
  • Named thunk configurations

Developer usability

  • Split OpcodeDispatcher in to multiple files to make navigation easier

Minor fixes

  • CPUID TM and TM2 enable
  • Update cpack package name to resolve package name conflict
  • Memory leak in GdbStub
  • Redundant string construction removal
  • Moving some logs over to fmt format
  • More Linux syscall implementations
  • flag calculation fixes in IMUL and some ALU ops
  • Implements support for POSIX signals 32 and 33
    • Fixes SOMA
  • Wine fixes
  • binfmt_misc supporting POCF flags
    • Fixes some edge case behaviour

The detailed change log is available on Github

Written on October 8, 2021