Billy Laws
085cf027dc
ImageTracker: Do not generate codemaps when generating code caches
2025-12-29 16:25:55 +00:00
Billy Laws
299df773ce
ImageTracker: Support codemap file generation
2025-12-29 16:25:54 +00:00
Ryan Houdek
212a3f45f8
Merge pull request #5164 from bylaws/gmeo
...
ImageTracker: Track loaded PE images for LookupExecutableFileSection
2025-12-28 12:08:07 -08:00
crueter
588fec3b89
[cmake] reduce usage of trivial variables
...
Trivial variables like SRCS, NAME, etc. actually do more harm than good.
They *will* make your IDE mad, and are also less readable. Remember:
verbosity is not a bad thing! Usually
Also: did a few tiny cleanups that I missed from my `endpara` PR.
Signed-off-by: crueter <crueter@eden-emu.dev >
2025-12-27 21:16:51 -05:00
Billy Laws
ecc16033be
ImageTracker: Track loaded PE images for LookupExecutableFileSection
2025-12-28 00:31:50 +00:00
Billy Laws
30d0dbd2f0
Windows: Extend scoped HANDLE wrapper
2025-12-28 00:30:47 +00:00
crueter
43173df446
[cmake] prefer end parenthesis on same line, no space after some calls
...
- Some CMake LSPs have aneurysms when you put the end parenthesis on a
different line. Annoying? Yes, but this is all we can really do about
it for now.
- `set`, `option`, and `message` should not have spaces before their
opening parenthesis.
Signed-off-by: crueter <crueter@eden-emu.dev >
2025-12-24 19:11:42 -05:00
crueter
ec1d9aeafa
[cmake] propagate -ISource to all Tools
...
Rather than individually adding `${CMAKE_SOURCE_DIR}/Source` as
an include directory to each target, just use `include_directories` once
in the Tools directory and each subsequent target will have this
propagated down.
Also removed a seemingly unnecessary `-I` in LinuxEmulation--maybe
needed? But I can't test compilation right now as I don't have an ARM
development environment on hand for the next day or two.
Signed-off-by: crueter <crueter@eden-emu.dev >
2025-12-24 18:25:17 -05:00
Ryan Houdek
7cdef04fc7
Merge pull request #5157 from crueter/mingw-builtin
...
[cmake] use `MINGW` builtin rather than custom detection
2025-12-24 14:53:04 -08:00
crueter
f2a1243892
[cmake] use MINGW builtin rather than custom detection
...
CMake has had the `MINGW` builtin to describe MinGW targets since at
least version 3.2, so it can safely be used. This variable is also set
for the MSYS2 environments, so CLANGARM64 also correctly sets `MINGW`.
Note that this depends on https://github.com/FEX-Emu/jemalloc/pull/11 .
Signed-off-by: crueter <crueter@eden-emu.dev >
2025-12-24 15:13:53 -05:00
LC
144c4bf408
Merge pull request #5154 from Sonicadvance1/31
...
VDSO: Forgot to remove a if check
2025-12-24 09:42:07 -05:00
Ryan Houdek
499970db68
Merge pull request #5151 from bylaws/getcache
...
Common: Use LOCALAPPDATA for GetCacheDirectory on WOW64/ARM64EC
2025-12-23 19:02:06 -08:00
Ryan Houdek
440aa490ce
VDSO: Forgot to remove a if check
...
This still finds `__fex_callback_ret` on 64-bit, saving a page of
memory.
2025-12-23 18:10:24 -08:00
Billy Laws
528afbfd3b
Common: Use LOCALAPPDATA for GetCacheDirectory on WOW64/ARM64EC
...
Windows caches can only really work safely if they are exclusive to a
prefix due to the state for things like sharing modes that is tied to
the per-prefix wineserver and codemaps encoding prefix-local paths for
system DLLs.
2025-12-23 23:48:10 +00:00
Billy Laws
064a48e965
CodeCache: Make LoadData Thread argument an optional pointer
...
Windows doesn't have access to Thread when loading the main image and
ntdll.
2025-12-23 23:45:07 +00:00
Billy Laws
86211e18d7
ALookupExecutableFileSection: Take thread argument as an optional pointer
2025-12-23 23:44:58 +00:00
Ryan Houdek
9d3acb362a
Interpreter: Move Allocator handling to its own namespace
...
Gets it out of the way for some reorganizing.
NFC
2025-12-22 16:45:27 -08:00
Ryan Houdek
f2d0238f84
Interpreter: Move logging to its own namespace
...
Gets it out of the way for some reorganizing.
NFC.
2025-12-22 16:45:27 -08:00
Ryan Houdek
f819999884
Merge pull request #5134 from bylaws/wso
...
Windows: Implement _[w]sopen file APIs
2025-12-22 14:11:56 -08:00
Ryan Houdek
dc764db35d
Merge pull request #5129 from bylaws/volttt
...
Windows: Introduce ImageTracker for tracking per-loaded-image data
2025-12-22 14:09:59 -08:00
Tony Wasserka
eb425fe640
Merge pull request #5127 from neobrain/feature_automatic_code_cache
...
CodeCache: Implement automatic cache generation
2025-12-22 21:55:10 +00:00
Tony Wasserka
d242ba7a52
FEXOfflineCompiler: Implement SyscallHandler::LookupExecutableFileSection
...
This is required for proper operation since fef1993dd7 .
2025-12-22 22:37:26 +01:00
Tony Wasserka
2573bcb90f
CodeCache: Turn ExecutableFileSectionInfo::FileInfo into a const reference
2025-12-22 21:20:22 +01:00
Tony Wasserka
28029092b9
FEXServer: Centralize code map path building
2025-12-22 21:20:22 +01:00
Tony Wasserka
7eb2ce827c
FEXServer: Place processed and unprocessed code maps in separate subdirectories
2025-12-22 21:20:22 +01:00
Tony Wasserka
07f9426879
FEXServer: Detect more scenarios that require cache generation
2025-12-22 21:20:22 +01:00
Tony Wasserka
7ba6cfe651
FEXServer: Implement automatic code cache generation
2025-12-22 21:20:22 +01:00
Tony Wasserka
50939df6b5
FEXServer: Implement automatic aggregation of pending code map data
2025-12-22 21:20:22 +01:00
Tony Wasserka
89e9046042
LinuxSyscalls: Use filesystem locks to protect access to code maps that are still written to
2025-12-22 21:20:22 +01:00
Billy Laws
a94a9eb268
WOW64: Use ImageTracker for volatile metadata handling
2025-12-22 17:19:38 +00:00
Billy Laws
47a8fc4b49
ARM64EC: Use ImageTracker for volatile metadata handling
2025-12-22 17:19:38 +00:00
Billy Laws
64ad853a5c
Windows: Introduce ImageTracker for tracking per-loaded-image data
...
and use it to commonise volatile metadata code (adding WOW64 image
voltmd support in the process). This will be extended to track mapped
images for code caching.
2025-12-22 17:19:38 +00:00
Billy Laws
2d6dbd5600
Windows: Add 32-bit LOAD_CONFIG structs
2025-12-22 17:19:38 +00:00
Billy Laws
651fca36ff
Windows: Implement _[w]sopen file APIs
2025-12-22 16:21:18 +00:00
Tony Wasserka
f0c7dc48d2
CodeCache: Trigger delayed cache loading for the main executables and its interpreter
...
FEX isn't fully initialized by the time these are mapped into memory, so their
caches must be loaded later.
2025-12-17 15:58:03 +01:00
Ryan Houdek
805a4c1ab1
Merge pull request #5113 from neobrain/feature_request_cache_population
...
FEXServer: Add protocol interface to request code cache population
2025-12-15 10:39:25 -08:00
Ryan Houdek
956f97efd4
Merge pull request #5124 from bylaws/wfnamec
...
Windows: Switch GetSection/ExecutableFilePath to returning full paths
2025-12-15 10:33:39 -08:00
Ryan Houdek
ebdbf58474
Merge pull request #5121 from bylaws/wheiwofjsddsjkkjdsalkjkjd
...
Windows: Split out CRT/WinAPI reimplementation
2025-12-15 10:30:29 -08:00
Billy Laws
cd934b73ca
Windows: Switch GetSection/ExecutableFilePath to returning full paths
2025-12-15 17:23:23 +00:00
Billy Laws
f6dab33190
Windows: Split out CRT/WinAPI reimplementation
...
We can use the system CRT for the offline compiler, but still want to
pull in e.g. InvalidationTracker and other helpers.
2025-12-15 15:32:26 +00:00
Billy Laws
7c8fdc1651
WinAPI: Implement Sleep
...
Used by std::this_thread::sleep.
2025-12-15 15:30:00 +00:00
Tony Wasserka
4157efaaf7
LinuxSyscalls: Move code cache loading code to a helper function
...
This stat-mmap-load-munmap pattern will be used a number of times in this
file.
2025-12-15 16:12:43 +01:00
Tony Wasserka
70eff81f19
CodeCache: Implement cache loading
2025-12-15 16:12:43 +01:00
Tony Wasserka
da14b12e88
FEXServer: Add protocol interface to request code cache population
2025-12-11 22:19:54 +01:00
Tony Wasserka
356f1a205b
ELFCodeLoader: Add interface to get main ELF FD
2025-12-11 22:19:50 +01:00
Ryan Houdek
a44627df29
Steamrt/ServerManager: Change loop over to a blocking read
...
Discard any data and wait for EOF for now. That way we know when to
exit.
2025-12-09 13:08:01 -08:00
Ryan Houdek
91fab07ef1
Steamrt: Add missing toolmanifest.vdf
2025-12-09 13:08:01 -08:00
Simon McVittie
b821022247
Steam: Don't let the FEXServer inherit FEXServerManager's original stdout
...
Closing the original stdout is how we signal to a larger compatibility
tool (in practice pressure-vessel) that either we are ready, or we have
crashed: when every process that held the write end open has closed it,
the compatibility tool sees EOF on the pipe. If the FEXServer inherits
stdout and holds it open, then that state will never be reached.
steamrt/tasks#870
Signed-off-by: Simon McVittie <smcv@collabora.com >
2025-12-09 18:32:33 +00:00
Ryan Houdek
788e8a6d87
LinuxSyscalls: Don't conflict with potential define for SA_RESTORER
2025-12-07 10:08:59 -08:00
Ryan Houdek
2423849196
VDSO: Use FHU::Syscalls::getcpu
2025-12-07 10:08:59 -08:00