FEX 2202 Tagged!

Lots of good changes this month

  • pressure-vessel hang fixes in preparation of supporting Proton on AArch64
  • The start of implementing SSE4.2
  • Fixes an x87 FREM issue, fixing camera rotation in Source engine games and Binding of Isaac
  • Linux 32-bit socket fixes resolving some controller bugs
  • FEXRootFSFetcher doing some additional checks to make the user experience better
  • Removes the IR Interpreter option since it isn’t userful for end users
  • FEXLogServer bug fixed which was causing FEX asserts to be missed

FEX Ubuntu RootFS updated on 2022-02-05

The RootFS image now provides Mesa 22.0-rc1! The size is slightly smaller than previous release.

Make sure to pick it up with the FEXRootFSFetcher tool if you want this new version!

FEXCore

  • AArch64
    • Single instruction optimization for AESKeyGenAssist (6744a06a)
  • CPUID
    • Fixes ASAN problem with reading midr (6022715a)
  • OpcodeDispatcher
    • Fixes CRC32 decoding in 0F_38 table (1c242061)
    • Implements PCMPGTQ (caffad85)
    • Implements CRC32 instruction (b7a76af7)
    • Removes extraneous extract in VFCMP (4c92b562)
    • Fixes ptest flags calculation. (0a8717d9)
    • Fixes signed displacement wraparound on 32-bit (e2798e37)
  • IR
    • Fixes some wrong offsets in passes (c252f8bf)
    • Fixes SSA ID printing (a2aa9f3f)
  • Softfloat
    • Stop doing special handling for FREM (9d084519)
  • Misc
    • Defer a significant number of ALU flag calculation (832d013c)

Linux

  • Fixes for older build environments (ade0d0f2)
  • Fixes 32-bit getsockopt and setsockopt (d9149548)
  • Handles the remaining 32-bit siginfo_t usage (7768f696)
  • Fixes emulatedpath with symlink following (5dda3a15)

Thunks

  • Add meta data to libvulkan_device (a0026c92)

Tools

  • SocketLogging
    • Fixes MsgHandler not syncing with Assert level (9eb5ba5a)
  • FEXLogServer
    • Stop duplicating and dropping messages (eb17edec)
  • FEXRootFSFetcher
    • Fixes some edge case behaviours (13f35f7b)
    • Check if curl is installed and fail before running (784cbdd9)
  • FEXLoader
    • Resolve the absolute path to rootfs if possible (023aaaae)

CMake

  • Always use local xxhash to statically link (59781431)
  • Adds TUNE_ARCH option (e36beb8d)

FMT

  • Update fmt to 8.1.1 (140e9824)

Vixl

  • Point vixl submodule towards FEX’s fork (a3a138ef)
  • Update vixl (8e3893df)

Unit tests

  • Revise POSIX tests known failures and disabled (ea76de0f)
  • Fixes ROOTFS needing to be defined prior to cmake (7c08b67d)
  • Adds a BCD unit test (609587f9)
  • Fixes InterruptableConditionVariable test to use the syscal… (82e59777)

Misc

  • Fixes FEXConfig build (d308a438)
  • Adds an option to disable the IR interpreter (11a51055)
  • Fix pressure vessel hangs (334a8ef8)
  • Fixes some of the warnings that cropped up (bf581dec)

See the 2202 Release Notes or the detailed change log in Github.

Written on February 5, 2022