FEX 2105 Tagged!

This is our fifth tagged release, and it comes with loads of compatibility fixes, and performance improvements.

Major new features include ioctl32 marshaling, which allows FEX to run 32-bit OpenGL applications without a modified kernel, for supported drivers, as well as offline AOTIR which makes it possible to translate applications and libraries ahead of time to reduce loading times.

Compatibility & Bug Fixes

  • New, simpler ELF Loader
  • ioctl32 marshaling for several device drivers
  • Handle more cases of an application pinging self
  • binfmt_misc fixes to support AppImage
  • Several system call fixes (eventfd, eventfd2, openat, creat, trucnate, clock_nanosleep, pselect6, sendmsg, recvmsg)
  • Signal fixes
  • Better handling of /proc/self/, /proc/pid-self/
  • Implements support for CLFLUSH

Performance

  • Faster AOTIR file loading
  • AOTIR offline generation
  • Switch to xxhash from fasthash
  • IR structure optimizations
  • Adds Long Divide removal pass
  • Zero-cost asserts

Misc

  • Fixes host thread stacks ending up in lower 32-bit VA
  • Remove reliance on librt and libnuma
  • Default hidden visibility and strip symbols
  • FEX now uses jemalloc

The detailed change log is available on Github

Written on May 5, 2021