FEX 2111 Tagged!
BMI1 is now fully supported, several linux emulation fixes, thunk cleanups, initialization optimizations and several other assorted improvements.
Core
- BMI1 extension is now supported!
- Exposed in CPUID
- Interpreter is split in to multiple files for usability
- Improved memory efficiency of some IR ops
- Allow grouping JIT symbols by library region
- Useful for thunking performance introspection
CPUID
- Expose BMI1
- Expose Hybrid flag
- Only if running on an ARM big.LITTLE CPU combination
Linux Emulation
- Fixes to execve handling with softlinks
- Fixes issues with Debian alternatives soft links failing to find binaries
- Implements 32-bit virtio ioctls
- Allows OpenGL passthrough in VMs for 32-bit applications
- No longer do magic SIGCHLD handling
- Signal flags already setup correctly, just pass through
Thunks
- Respect DESTDIR environment variable
- Useful to generate installation package
- XCB, Vulkan, and DRM cleanups
Misc
- Fixes a couple environment variable options not respecting textual names
- Some FMT changes
- Some Optimizations in x86Tables with constexpr
- Telemetry for when an application tears an atomic value
- Can be used to diagnose emulation bugs
- FEXConfig fix for 100% CPU usage
- glibc 2.34 behaviour change exposing an application bug
- Allocator reserving top 128TB of VA space on Arm64
- Linux only gives userspace 47-bit addresses
- Minor bug fix in golang
See the 2111 Release Notes or the detailed change log in Github.
Written on November 6, 2021