Ryan Houdek
153d20ca59
Rename SHMStats
2025-07-29 12:02:19 -07:00
Billy Laws
f44a7c95f6
Windows: Force-disable SVE usage for now
2025-07-28 17:21:57 +01:00
Billy Laws
56b6b96def
InvalidationTracker: Fix queries in the non-intersecting RWX case
...
This needs to return the base of the non-RWX interval, with a size
that when added to the base is the start of the RWX interval.
2025-07-24 22:58:02 +01:00
Billy Laws
132de3160a
Windows: Implement common call-ret stack helpers
...
Allocate the stack with uncommited guard pages on either side, if
any faulting accesses to these occur then the call-ret SP value is
reset to the default and execution resumed.
2025-07-24 14:53:09 +01:00
Billy Laws
7e5c0d7174
LookupCache: Move CodePages to GuestToHostMap
...
Prevents invalidations being missed under the following circumstances:
Thread A JITs block A into the global codebuffer, adding the guest to host
mapping to its CodePages, thread A is then killed.
Thread B then performs SMC on block A. An exception will be triggered but
as CodePages was stored per-thread, and thread A is now killed when all
threads are iterated over by the frontend to perform invalidations it
will be missed.
The accumulator is introduced to handle the case where multiple threads
have the same code entry in their local caches but share the same codebuffer.
Consider a thread C in the above example that also has block A in its cache,
without an accumulator, when invalidating thread B the entrypoint of A is erased
from the shared guest to host map. So when C is invalidated, the local cache entry
for A is not removed since it was removed from CodePages when invalidating B.
2025-07-24 14:52:54 +01:00
Ryan Houdek
fe61aabc52
Merge pull request #4701 from bylaws/noexecwin
...
Windows: Correctly report noexec faults
2025-07-22 12:54:28 -07:00
Billy Laws
8e6fbe7615
Windows: Correctly report noexec faults
2025-07-22 19:30:31 +01:00
Alexandre Julliard
a71a0ed137
WinAPI: Avoid sign-extension of processor count in GetSystemInfo
2025-07-22 19:28:36 +01:00
Paulo Matos
5267cde60e
Whole-tree reformat with clang-format-19
2025-07-17 08:10:00 +02:00
Billy Laws
96bd6ce3e5
Windows: Implement SyscallHandler executable mapping queries
2025-07-10 16:00:24 +01:00
Tony Wasserka
23b69271eb
Use consistent log message formatting for all modules
2025-06-16 13:54:03 +02:00
Tony Wasserka
992d86bbc1
LogManager: Shorten debug level strings to a single letter
2025-06-13 14:31:25 +02:00
Sasha Finkelstein
b1bbc37c59
Windows: Fix building with llvm-libcxx
...
Libcxx uses GetSystemTimePreciseAsFileTime if _WIN32_WINNT specifies
a version new enough to have it.
2025-05-07 23:47:24 +02:00
Billy Laws
e3088686db
InvalidationTracker: Track executable mappings
2025-04-19 14:09:48 +01:00
Billy Laws
771162cf14
InvalidationTracker: Track the protection of regions mapped at startup
...
Code can be injected into a process by e.g. the chromium sandbox before
FEX is loaded.
2025-04-19 14:09:48 +01:00
Ryan Houdek
7ca757bb6d
FEXCore: Move CPUInfo to FEX
...
This is only ever used in the frontend now.
2025-04-08 22:54:43 -07:00
Billy Laws
51281f6a3a
ARM64EC: Load volatile metadata
2025-03-24 22:01:49 +00:00
Billy Laws
f51fd6c78d
Move IntervalList to FEXCore
2025-03-24 22:01:49 +00:00
Billy Laws
03cf15a9e1
Windows: Add IntervalList batch Insert and Contains methods
2025-03-24 22:01:49 +00:00
Billy Laws
7097532ddf
Windows: Support newer mingw toolchains
2025-03-05 21:24:30 +00:00
Tony Wasserka
b968ea7e7e
Windows: Add atoll symbol used by json_getInteger
2025-02-16 13:15:40 +01:00
Ryan Houdek
602c530615
Wine: Add support for magic fex+wine shm path
...
Fallback to the previous path if it doesn't exist.
2025-02-11 13:42:45 -08:00
Ryan Houdek
c8c27f26f7
Review
2025-02-11 13:42:45 -08:00
Ryan Houdek
dcebe85f3a
Wine: Implements support for profile stats
...
This is a little trickier, we actually open the
`/dev/shm/fex-<pid>-stats` file directly using Windows APIs that way
Mangohud (which is going to be on the Linux side, or potentially even
embedded in to Gamescope) can safely pick up the stats.
A little quirky plus doesn't support expanding its size since WINE
doesn't support NtExtendSection, but that's fine.
2025-02-11 12:56:11 -08:00
Ryan Houdek
f6e3689f30
WinAPI: Implement support for DeleteFile
2025-02-11 12:56:11 -08:00
Ryan Houdek
854e699589
WINE: Fixes FEX_PORTABLE usage
...
Completely didn't listen to FEX_PORTABLE. Necessary otherwise it can
read configs from some random locations when portable is enabled.
2025-02-06 15:36:27 -08:00
LC
fd09ded049
Merge pull request #4277 from bylaws/wine
...
Windows: Fix wine check
2025-01-15 13:55:49 -05:00
LC
8e2b4a306d
Merge pull request #4260 from Sonicadvance1/profile_win32
...
Profiler: Setup for usage on Windows
2025-01-15 13:54:54 -05:00
Billy Laws
f5decb5f83
Windows: Fix overcommit size logic in the wine path
2025-01-14 20:27:10 +00:00
Ryan Houdek
4c9adab58d
Windows/CRT: Fixes FD leak
...
Noticed that the FEXCore config file was open forever.
2025-01-09 15:27:12 -08:00
Ryan Houdek
4c9f1b105d
CRT/IO: Fixes sharing rules when writing is used
...
Fixes trace file opening since it needs to share with other users
opening the file for writing.
2025-01-09 14:25:48 -08:00
Billy Laws
3487d120ec
Windows: Treat PAGE_EXECUTE_WRITECOPY memory as RWX
2024-12-10 15:26:23 +00:00
Billy Laws
07394d6a6e
Windows: Track RWX regions in mapped images
...
As section permissions are set on the unix side we don't get a
protection callback for them, workaround this by iterating over
the sections of all executables after mapping and tracking the RWX
ones.
2024-12-10 15:24:54 +00:00
Billy Laws
830bd347c5
WOW64: Set the software CPU area flag
...
This is required for wow64.dll to setup the cross-process queue
that is used to pass through e.g. memory unmap events.
2024-11-18 16:18:31 +00:00
Ryan Houdek
048e967546
FEXCore: Adds support for CPU Index through TPIDRRO
2024-10-25 15:07:57 -07:00
Tony Wasserka
682b8ef705
Build host tools without jemalloc
...
Jemalloc blocks use on platforms with 16K pages.
2024-09-30 20:38:24 +02:00
Billy Laws
21604708ca
Windows: Commonise the linker loadcfg and support CFGuard toolchains
2024-09-29 19:42:13 +00:00
Billy Laws
5fec6faeb6
Windows: Switch supported MinGW CRT to UCRT
...
MSVCRT is deprecated and the reasons FEX used it no longer apply, so
support UCRT and UCRT only.
2024-09-29 19:42:13 +00:00
Ryan Houdek
f20e626fda
Merge pull request #4059 from bylaws/log
...
Windows: Don't assume the log file was successfully opened
2024-09-11 10:16:14 -07:00
Billy Laws
1266a5a5ce
Windows: Support emulated memory overcommit
2024-09-10 16:08:45 +00:00
Billy Laws
0b0e15c9b4
Windows: Don't assume the log file was successfully opened
2024-09-10 15:58:03 +00:00
Ryan Houdek
49b40b71a6
Merge pull request #4030 from bylaws/eccfg
...
Windows: Load per-application configs
2024-09-03 16:11:42 -07:00
Ryan Houdek
e415b9443f
Merge pull request #4032 from bylaws/small
...
Windows: Fix missing pragma and license text
2024-09-03 13:47:43 -07:00
Billy Laws
b0474816c7
Windows: Fix missing pragma and license text
2024-09-03 20:30:07 +00:00
Billy Laws
941b065da6
Windows: Fill in per-core MIDR information
2024-09-03 20:29:37 +00:00
Billy Laws
ccba993ca9
Windows: Load per-application configs
2024-09-03 20:25:21 +00:00
Ryan Houdek
0ec724cf1f
HostFeatures: Moves MIDR querying to the frontend
...
The MIDR querying is inherently OS specific and needs a bit of special
casing. Instead let the frontend inform FEXCore how many CPU cores there
are and their MIDRs instead.
This lets us keep the Linux specific code in the frontend.
2024-08-23 00:53:53 -07:00
Billy Laws
6aa95d82f2
Windows: Query FileStandardInformation for getting file EOF info
...
FileEOFInformation is write-only on actual windows.
2024-08-22 14:34:45 +00:00
Billy Laws
7c34f449d1
Windows: Translate file open flags passed to NtCreateFile
2024-08-22 14:34:45 +00:00
Billy Laws
e9435203a0
Windows: Fix access() implementation
...
Had the result inverted.
2024-08-22 14:33:06 +00:00