Skip to content

Commit

Permalink
2024-10-07-FEX-2410.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Sonicadvance1 committed Oct 7, 2024
1 parent 35ef99f commit 96f360d
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions _posts/2024-10-07-FEX-2410.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
layout: post
title: FEX 2410 Tagged
author: FEX-Emu Maintainers
---

A bit of a slower month for this release as our developers prepare for the [X.Org Developer's Conference 2024](https://indico.freedesktop.org/event/6/) and
the [GStreamer Conference 2024](https://gstreamer.freedesktop.org/conference/2024/)!

We're going to keep this release short and sweet as GStreamer conference has already started and XDC is kicking off in two days.

## ARM64EC changes
This month we had some ARM64EC changes to fix some AVX bugs around state saving and restoring when running under Wine. In addition some changes to dynamically determine Windows syscall numbers under WINE rather than hardcoding it.
Additionally some fixes around the how the call checker works, which fixes issues when applications hook function calls early using the Win32 APIs.

For any user that wants to tinker with these, you can find instructions for how to [build & install on our wiki](https://wiki.fex-emu.com/index.php/Development:ARM64EC).

## JIT optimizations
We had some optimizations land in the JIT this month which speeds up the time it takes the JIT to emit code. In some microbenchmarks this has shown up
to 9% less CPU time spent JIT'ing code. This is very important for reducing stutters when encountering new code inside of applications.

## JIT fixes
We fixed multiple bugs in the JIT emulation this month, one of which was fixing the x87 FPREM instruction. This instruction is interesting because x87
actually offers another variant called FPREM1, which FEX did emulate correctly. Once we found the bug in the implementation, it actually managed to
fix a major issue where Steam's login was **super** flaky and had to attempt it about a dozen times before it worked. This also happened to fix
[Touhou Luna Nights](https://wiki.fex-emu.com/index.php/Touhou_Luna_Nights) which rendered its 2D tiles incorrectly before this change.

We also fixed an issue where **Halls of Torment** was copying data from a thread-local object using vector instructions and FEX had mistakenly broken
vector memory accesses to TLS objects. Fixing this solves this game problem, and probably many other games that happens to inline a memcpy accelerated
using vector operations!

We also happened to fix a bug with the SSE MAXSS instruction where in the face of NaNs we were returning the incorrect result. Only affected some edge
case behaviour, but nice to see little bug fixes like this.

## An aside
Make sure to check out the XDC livestreams over the next few days! You [definitely won't want to miss it!](https://indico.freedesktop.org/event/6/contributions/284/)

See the [2410 Release Notes](https://github.com/FEX-Emu/FEX/releases/tag/FEX-2410) or the [detailed change log](https://github.com/FEX-Emu/FEX/compare/FEX-2409...FEX-2410) in Github.

0 comments on commit 96f360d

Please sign in to comment.