Ryan Houdek
87e7a0effa
CMake: Don't install test thunk if tests aren't enabled
2025-12-04 14:02:43 -08:00
Ryan Houdek
2a0019347a
Thunks: Adds FEX Thunk callback to VDSO
...
This isn't necessary a VDSO, but it is /always/ mapped in to every
process. Use it as such.
2025-11-18 14:08:43 -08:00
Tony Wasserka
5d0279ff08
LibraryForwarding/gen: Tiny cleanup
2025-11-14 09:14:45 +01:00
Anton Kesy
013ac1e627
Align code with clang-format
...
Automatically done by running:
`find . \( -path './External' -prune \) -o \
\( -iname '*.cc' -o -iname '*.cpp' -o -iname '*.hpp' -o \
-iname '*.h' -o -iname '*.c' \) -print | \
xargs clang-format --style=file -i`
2025-11-13 13:29:49 +01:00
Tony Wasserka
581f3263ed
CMake: Disable libstdc++'s debug mode when compiling thunkgen
...
This allows the rest of the project to use _GLIBCXX_DEBUG.
2025-11-11 17:26:37 +01:00
Ryan Houdek
b89ebd931e
Thunks: Fixes symbol conflict between GL and Vulkan
...
Fixes crash that occurs in applications that use both GL and Vulkan,
Like UE5 Vulkan native games. Fixes Ender Magnolia.
The issue here is that UE5 loads libGL first, which initializes our
libGL thunks, setting its X11Manager's functions.
It then loads libvulkan, which calls our oninit constructor, which
because of the symbol conflict, calls in to the libGL thunk's host
functions to reinitialize its function pointers, never initializing the
Vulkan X11Manager's functions. It would then crash as soon as an X11
function was used.
Give them unique symbol names so we don't accidentally look up the
incorrect symbol.
2025-11-01 16:48:56 -07:00
Ryan Houdek
85e67f92c5
FEX: Rebrand FEXInterpreter as FEX
...
Still creates a copy of FEXInterpreter from FEX for downstream projects
to have some time to get off the old name. Creating a symlink is kind of
a pain in cmake so just doing an install copy is easy.
2025-09-15 13:06:48 -07:00
Ryan Houdek
7273041314
FEXInterpreter: Remove FEXLoader
...
Doesn't /quite/ remove the ArgumentLoader because it is intertwined with
LinuxEmulation in an annoying way that will take another step to remove.
2025-09-12 10:24:58 -07:00
Tony Wasserka
7fbdd0607f
CMake: Add targets missing from Runtime component
2025-09-11 10:31:06 +02:00
Ryan Houdek
af3918491c
unittests: Fixes thunk unittest path
...
This hasn't been run in CI for awhile so this was missed when I was
testing it. I need to see what I can do to get this going in CI again.
2025-07-29 11:46:30 -07:00
Tony Wasserka
e508f0900c
LibraryForwarding/wayland: Add method signatures required by steam-runtime-launch-options
2025-07-18 11:38:46 +02:00
Paulo Matos
5267cde60e
Whole-tree reformat with clang-format-19
2025-07-17 08:10:00 +02:00
Tom Stellard
99920f89dd
Fix build with LLVM >= 21
2025-07-05 16:50:34 +00:00
Tony Wasserka
7f216ca02f
LibraryForwarding/wayland: Add new interface objects
2025-07-02 16:51:03 +02:00
Tony Wasserka
18360d4ccb
LibraryForwarding/wayland: Add more method signatures
2025-06-27 10:57:10 +02:00
Tony Wasserka
a691c3cd99
LibraryForwarding/wayland: Fix mprotect call when crossing page boundaries
2025-06-27 10:57:10 +02:00
Tony Wasserka
70bc561bbf
LibraryForwarding/wayland: Fix wl_proxy_marshal_array_constructor
2025-06-27 10:57:10 +02:00
Tony Wasserka
43e6aebc7a
Data: Move CMake support scripts to Data/CMake
2025-06-17 16:40:42 +02:00
Tony Wasserka
3e104de377
CMake: Generate DATA_DIRECTORY dynamically unless explicitly set
...
This allows changes to CMAKE_INSTALL_PREFIX to be automatically picked up and
propagated properly. Previously, you had to update 4 variables in 3 files by
hand to do so.
2025-06-03 16:58:06 +02:00
Ryan Houdek
ba162bb058
Merge pull request #4603 from neobrain/fix_cmake_full_libdir
...
LibraryForwarding: Use CMAKE_INSTALL_FULL_LIBDIR instead of constructing the library install paths manually
2025-06-02 15:49:22 -07:00
Tony Wasserka
f194d35913
LibraryForwarding: Use CMAKE_INSTALL_FULL_LIBDIR instead of constructing the library install paths manually
...
This fixes issues in the nix build, where CMAKE_INSTALL_LIBDIR is an
absolute path instead of the typical "lib(64)".
2025-06-03 00:37:23 +02:00
Tony Wasserka
5811914a78
LibraryForwarding: Change target env to gnu
...
This is required for clang to find architecture-specific libstdc++ headers as
distributed by NixOS.
2025-06-01 21:40:33 +02:00
Ryan Houdek
929b111648
Merge pull request #4405 from Sonicadvance1/static_analysis_again
...
Various: More static analysis warnings cleanup
2025-03-17 13:08:11 -07:00
Ryan Houdek
1102122639
ThunkGen: Fixes compiling with LLVM 20
...
API has changed slightly.
Fixes #4407
2025-03-14 15:14:30 -07:00
Ryan Houdek
b0b41d00ee
Various: More static analysis warnings cleanup
...
NFC
2025-03-12 17:27:41 -07:00
Tony Wasserka
8ffc6fbc6b
LibraryForwarding/vulkan: Disable 32-bit guest library
...
This currently doesn't export enough symbols to be viable for practical use.
Building the host library only serves to ensures the relevant features
continue to work however.
2025-03-12 17:35:07 +01:00
Tony Wasserka
0ffd94dadb
LibraryForwarding/vulkan: Enable more entry points
2025-03-12 17:35:07 +01:00
Tony Wasserka
585320093a
LibraryForwarding: Add custom repacking tests for Vulkan-like scenarios
2025-03-12 17:35:07 +01:00
Tony Wasserka
bdd351a42c
LibraryForwarding/vulkan: Apply exit repacking for arrays of types that use custom repacking
2025-03-12 17:30:43 +01:00
Tony Wasserka
feaee702e9
LibraryForwarding/vulkan: Reload function pointers on device change when needed
...
This only needs to be done for functions that have a custom host-side
implementation and that don't take a VkDevice argument.
2025-03-12 17:30:43 +01:00
Tony Wasserka
d89fc84fcf
LibraryForwarding/vulkan: Minor cleanups
2025-03-12 17:30:43 +01:00
Tony Wasserka
688cd1a4bb
LibraryForwarding/vulkan: Add support for VK_EXT_descriptor_buffer on 32-bit
2025-03-12 17:30:43 +01:00
Tony Wasserka
c056875a00
LibraryForwarding/gen: Allow annotating non-pointer members as custom_repack
...
This is useful in particular for union members. A guest_layout specialization
must be provided manually for the type of the annotated member.
2025-03-12 17:30:43 +01:00
Tony Wasserka
054118139f
LibraryForwarding/vulkan: Implement vkCmdSetVertexInputEXT on 32-bit
2025-03-12 17:30:43 +01:00
Tony Wasserka
447148d95a
LibraryForwarding/vulkan: Manually add pointers only referenced through nested pointers
2025-03-12 17:30:43 +01:00
Tony Wasserka
f6b1e42a0b
LibraryForwarding/vulkan: Enable X11 WSI functions
2025-03-12 17:30:43 +01:00
Tony Wasserka
90e74e5572
LibraryForwarding/vulkan: Disable recently added 1.4 functions on 32-bit guests
2025-03-12 17:30:43 +01:00
Tony Wasserka
e4fc5fe5be
LibraryForwarding/vulkan: Extend 32-bit support
2025-03-12 17:30:43 +01:00
Tony Wasserka
809b2c6115
LibraryForwarding/vulkan: Add 32-bit support
2025-03-12 17:30:43 +01:00
Tony Wasserka
659538ef4b
LibraryForwarding/vulkan: Enable 32-bit build
2025-03-12 17:24:08 +01:00
Tony Wasserka
4b677f4b42
LibraryForwarding: Add array specializations for guest_layout/host_layout
...
This allows automatic repacking of structs with array members.
2025-03-12 17:24:08 +01:00
Tony Wasserka
87699ea5a0
LibraryForwarding/gen: Skip type compatibility checking when emit_layout_wrappers is used
2025-03-12 17:24:08 +01:00
Tony Wasserka
a2ae113ee9
LibraryForwarding/gen: Make second parameter to fex_apply_custom_repacking_exit const
2025-03-12 17:24:08 +01:00
Tony Wasserka
2f6ae1ad02
LibraryForwarding/vulkan: Add missing vkCmdPushDescriptorSetWithTemplate declaration
2025-03-12 17:09:11 +01:00
Ryan Houdek
c7dbd2fac2
Thunks/Vulkan: Update to 1.4.310
...
Adds support for Vulkan 1.4 and a couple of NVIDIA extensions.
Last update was nearly six months ago in #4090 . Once again following the
information to extract definitions from #2076
2025-03-12 08:13:43 -07:00
Tony Wasserka
fb82059750
Library Forwarding: Fix build on platforms that put headers for libwayland-client in a subfolder
2025-02-15 14:53:16 +01:00
Tony Wasserka
0fc6240d72
Library Forwarding/GL: Only export GLX entrypoints available at compile-time
2025-02-15 14:53:16 +01:00
Tony Wasserka
1f6b69573c
CI fix
2025-01-23 19:26:00 +01:00
Tony Wasserka
1c8c5b77f1
Library Forwarding/wayland: Fix regression caused by erroneous format
...
Auto-formatting turned this into "libwayland - client", making FEX fail to
load the host-side equivalent of this library.
2025-01-23 19:20:01 +01:00
Tony Wasserka
b30733e2a7
Fix warnings about unused objects
2025-01-21 12:28:21 +01:00