15277 Commits
Author SHA1 Message Date
Ryan Houdek 741e146fdf Merge pull request #6039 from Sonicadvance1/274
arm64ec: Have synchronous faults skip fault overhead
2026-10-17 18:53:39 -07:00
Ryan Houdek 761369f590 InstcountCI: Update 2026-10-13 20:06:49 -07:00
Ryan Houdek 27cfd41bf9 FEXCore: Wire up the fault free synchronous fault handling
Changes the code generation on arm64ec so the version needs to bump.
2026-10-13 19:55:36 -07:00
Ryan Houdek 07abec317c Arm64ec: Wire up non-faulting synchronous faults 2026-10-13 19:55:33 -07:00
Ryan Houdek 461b286a8a Dispatcher: Adds unused synchronous dispatch handler 2026-10-13 18:07:22 -07:00
Ryan Houdek 5285020de0 Merge pull request #6037 from javelina-pkwy/fix/rpmalloc-vmdata
Allocator: Commit rpmalloc memory on demand due to RLIMIT_DATA
2026-10-13 13:02:50 -07:00
Justin Becker 679d6c7be6 Allocator: Commit rpmalloc memory on demand for RLIMIT_DATA 2026-10-13 12:33:06 -07:00
LC 7780a436b7 Merge pull request #6036 from Sonicadvance1/272
unittests: Also fix LLVM 23
2026-10-13 15:16:21 -04:00
Ryan Houdek d1d772c05e Merge pull request #6035 from junknewera/test/sar-sign-extension
unittests/ASM: Test SAR sign extension for 8 and 16 bit
2026-10-13 11:47:58 -07:00
Ryan Houdek a3104f4f84 unittests: Also fix LLVM 23 2026-10-13 11:44:38 -07:00
oleg 8c0044f914 unittests/ASM: Test SAR sign extension for 8 and 16 bit 2026-10-13 20:50:15 +03:00
Ryan Houdek e9c103412a Merge pull request #6032 from javelina-pkwy/tests/slim-python-runners
Tests: Reduce wall clock time spent in "ninja tests"
2026-10-12 18:52:39 -07:00
Ryan Houdek cb508dfbfe Merge pull request #6031 from Sonicadvance1/269
Thunks: Fixes LLVM 23
2026-10-12 18:52:26 -07:00
LC eef303f69a Merge pull request #6033 from Sonicadvance1/271
DiskCache: Fixes a race condition on the data blob
2026-10-12 20:38:34 -04:00
Ryan Houdek b49837f0c3 DiskCache: Fixes a race condition on the data blob
Found this through introspection, only a real problem with -O0.
We were moving a fextl::vector in to a shared pointer so it can be long
living, this causes a change in ownership which was causing the
`BlobData` pointer to be stale. This was then passed to the work queue
to be consumed. In -O1 and above a std::move of a fextl::vector is a
proper move, but -O0 it turns in to a copy.

Easy fix is to just create the shared_ptr early and reference that, so
the pointer is long lived and no references become stale.
2026-10-12 15:57:06 -07:00
LC fb925d6fc5 Merge pull request #6030 from Sonicadvance1/268
Linux/SignalDelegator: Support SA_RESETHAND
2026-10-12 18:53:32 -04:00
Justin Becker 9f610975ea Tests: Reduce wall clock time spent in "ninja tests" 2026-10-12 13:08:52 -07:00
Ryan Houdek dab12ae78e Merge pull request #6020 from javelina-pkwy/fix/main-stack-growth
Linux: Track main stack usage more accurately in VmData
2026-10-12 12:51:37 -07:00
Ryan Houdek e3c1c1e425 Merge pull request #6024 from javelina-pkwy/fix/stat-nullptr
Linux: Return EFAULT for stat() of a null path
2026-10-12 12:49:14 -07:00
Ryan Houdek 94ff2b0c66 Merge pull request #6021 from tarikbc/arm64ec-lutsize-ldr
ARM64EC: Fix the NtDllRedirectionLUT bounds check in CheckCall
2026-10-12 12:48:44 -07:00
Ryan Houdek 896a869122 Thunks: Fixes LLVM 23
Fixes #6025
2026-10-12 12:37:56 -07:00
Ryan Houdek f96bf07a10 FEXLinuxTests: Adds SA_RESETHAND test 2026-10-12 12:13:05 -07:00
Ryan Houdek 0152660af2 Linux/SignalDelegator: Support SA_RESETHAND
This is fairly trivial to support.

Fixes #6028
2026-10-12 12:12:44 -07:00
Justin Becker 30398c371d Clang format 2026-10-09 11:25:10 -07:00
Justin Becker e94ad12400 NIT 2026-10-09 11:24:50 -07:00
Justin Becker 3e2b2aadff Also add ENOENT tests 2026-10-09 11:03:12 -07:00
Justin Becker 13bc7faee3 Syscall: stat of nullptr shouldn't abort() 2026-10-08 17:01:36 -07:00
Tarik Caramanico 3a2b1c0b43 ARM64EC: Don't read past the end of NtDllRedirectionLUT in CheckCall
NtDllRedirectionLUT has NtDllRedirectionLUTSize entries, so valid
offsets are 0 to NtDllRedirectionLUTSize - 1. The bounds check used
b.hi, which let an offset equal to the size through and read one entry
past the end of the allocation.
2026-10-08 09:35:05 -03:00
Tarik Caramanico 4dbb046d62 ARM64EC: Load NtDllRedirectionLUTSize as 32-bit in CheckCall
NtDllRedirectionLUTSize is a uint32_t, but CheckCall loaded it with a
64-bit ldr. The upper half of the bound then comes from whatever follows
the variable in memory, and the :lo12: offset of a 64-bit ldr needs an
8-byte aligned symbol, so the link fails with "misaligned ldr/str offset"
when the variable ends up on a 4-byte boundary.

Load it with a 32-bit ldr, which zero-extends into x17 for the compare.
2026-10-08 09:24:45 -03:00
Ryan Houdek 14c92681f4 Docs: Update for release FEX-2610 FEX-2610 2026-10-07 11:42:33 -07:00
Justin Becker 62580ceba0 Linux: Track stack usage more accurately in VmData for RLIMIT_DATA 2026-10-07 11:40:24 -07:00
Ryan Houdek 992349f555 Merge pull request #6019 from Sonicadvance1/267
Scripts/InstallFEX: Add new ubuntu versions
2026-10-07 09:44:57 -07:00
Ryan Houdek 2fd969cbe7 Scripts/InstallFEX: Add new ubuntu versions
Fixes #6016
2026-10-07 09:15:23 -07:00
Ryan Houdek e9373bfaec Merge pull request #6011 from javelina-pkwy/perf/gather-all-ones
Peephole optimization for VPCMPEQD + VGATHERDPS
2026-10-07 09:13:24 -07:00
Ryan Houdek d58a4e0da2 Merge pull request #6017 from javelina-pkwy/fix/avx-required-test-python
Tests: Enable a handful of tests, and fix small bug in python test runner script
2026-10-07 05:17:03 -07:00
Justin Becker eed344e869 Tests: enable some tests that were disabled, and small fix to guest_test_runner.py 2026-10-06 12:16:07 -07:00
Justin Becker e638b8ef37 clang format 2026-10-06 10:59:36 -07:00
LC 7d3090f782 Merge pull request #6010 from Sonicadvance1/266
FEXCore: Update readme with supported ISAs
2026-10-05 18:50:28 -04:00
Justin Becker b2dffb5a8a InstCountCI: Bump DiskCache version 2026-10-05 15:17:58 -07:00
Justin Becker 5ec147109e Implement peephole optimization for vpcmpeqd + vgatherdps
This peephole removes unnecessary masking operations when the mask is
provably all 1s. This improves performance in GB7 'Asset Compression' by
about 2% with SVE and about 4% without SVE.
2026-10-05 15:17:58 -07:00
Justin Becker ec4cc9401c Create peephole instruction count tests for vpcmpeqd + vgatherdps 2026-10-05 15:03:54 -07:00
Ryan Houdek 435dbdd014 FEXCore: Update readme with supported ISAs
Nothing interesting
2026-10-05 13:45:44 -07:00
Ryan Houdek d2b6e371e2 Merge pull request #6008 from Sonicadvance1/265
DiskCache: Support FileID hash with gnu build-id
2026-10-05 11:26:53 -07:00
Ryan Houdek 902d433a00 Merge pull request #6007 from Sonicadvance1/264
CMake: Stop searching for a bunch of projects when building for Steam
2026-10-05 11:26:05 -07:00
Ryan Houdek f11c8c747e Merge pull request #6006 from javelina-pkwy/tests/add-top-level-ninja-command
Tests: add 'ninja tests' which runs all tests, with large pages
2026-10-05 11:25:39 -07:00
Ryan Houdek 47be6ad720 Merge pull request #5997 from javelina-pkwy/fix/windows-arm64ec-syscall-stubs
Windows: Don't hardcode NT syscall numbers for ARM64EC
2026-10-05 11:23:39 -07:00
Ryan Houdek 12326d7e71 Merge pull request #5998 from rogersnm/no-procfs-no-va-steal
FEXCore/Allocator: Don't hang when /proc/self/maps can't be opened
2026-10-05 11:23:08 -07:00
LC 3648ee97e8 Merge pull request #6005 from Sonicadvance1/263
Externals/code-format-helper: Update for dependabot
2026-10-02 23:22:02 -04:00
Ryan Houdek e3f402a38a DiskCache: Support FileID hash with gnu build-id
This doesn't fully fix #5912 but gets a step closer. Instead of just
hashing the filename, hash in the build-id as well when it exists.

This isn't all encompassing because the build-id may not exist in all
cases. Crypt Of the Necrodancer for example doesn't ship with the
build-id on their 64-bit build. Although their legacy 32-bit build had
it.

The build-id is always a hash, depending on tool it is either 64-bit or
160-bit in all the executables I found. Although it can be anything so
make sure to be flexible enough to support everything.
2026-10-02 17:38:09 -07:00
Ryan Houdek 2aeff14e45 CMake: Stop searching for a bunch of projects when building for Steam
Just to ensure if someone is injecting a built FEX in to the Steam
depot, it doesn't happen to pick up on their system installed packages.

When built under SteamRT4 this isn't an issue as they don't exist, but
locally I'm usually not spinning up the docker instance each time and I
tend to get libxxhash-dev installed since Mesa needs it.
2026-10-02 17:36:12 -07:00