22 Commits

Author SHA1 Message Date
Ryan Houdek
1cc9f2107d Add in jemalloc glibc hooking again
We still need to hook glibc for thunks to work with
`IsHostHeapAllocation`.
So now we link in two jemalloc allocators in different namespaces.

As usual we have multiple heap allocators that we need to be careful about.

1. jemalloc with `je_` namespace.
  - This is FEX's regular heap allocator and what gets used for all the
    fextl objects.
  - This allocator is the one that the FEX mmap/munmap hooks hook in to
     - This mmap hooking gives this allocator the full 48-bit VA even in
       32-bit space.

2. jemalloc with `glibc_je_` namespace.
  - This is the allocator that overrides the glibc allocator routines
  - This is the allocator that thunks will use.
  - This is what `IsHostHeapAllocation` will check for.

3. Guest glibc allocator
  - We don't touch this one. But it is distinct from the host side
    allocators.
  - The guest side of thunks will use this heap allocator.

4. Host glibc allocator
  - #2 replaces this one unless explicitly disabled.
  - Always expected to override the allocator, so this configuration
    isn't expected.

Already tested this with Dota Underlords to ensure this works with
thunks.
2023-04-14 13:16:22 -07:00
Ryan Houdek
bb922f9a9e External: Update robin-map 2023-04-07 17:01:52 -07:00
Ryan Houdek
3cfc1de410 Common: Convert cpp-optparse over to fextl and use. 2023-03-30 16:28:34 -07:00
Ryan Houdek
4c2836f4b3 External: Adds Vulkan-Headers to external 2022-08-04 22:21:22 -07:00
Ryan Houdek
3325ba52b9 Adds tsl::robin_map
This will be used with the code serialization service soon
2022-02-26 00:43:43 -08:00
lioncash
62d9a494cd External: Point vixl submodule towards FEX's fork
This allows it to be managed by all organization members
2022-01-14 12:21:19 -05:00
Tony Wasserka
5b6175b702 Remove now unused Vulkan-Docs submodule 2021-12-10 11:25:01 +01:00
Tony Wasserka
07be5a0bae Add Catch2 submodule 2021-12-06 18:27:11 -08:00
Ryan Houdek
4589876ebc Adds Vulkan-Docs repo to externals 2021-10-02 17:09:23 -07:00
Ryan Houdek
e01e6d9293 Adds xxhash external submodule 2021-07-05 17:39:19 -07:00
Ryan Houdek
2101914c9d Adds drm headers to an external repository
It's highly likely that the host system won't have these headers installed.
Carry them in an external repository to ensure they are available.

Fixes #1047
2021-06-04 21:26:45 -07:00
Lioncash
37a33bf127 Externals: Add fmt as an external
Begins the process of addressing issue #146.

This is separated off, so that others can make use of fmt for other
purposes (general localized non-sucky string formatting), while the
logging rework is being tackled.
2021-05-20 13:18:38 -04:00
Ryan Houdek
cc0c45cf47 Switches FEX over to using jemalloc
This is the first step that we need to do for correct 32-bit memory allocations.
2021-04-08 12:42:37 -07:00
Stefanos Kornilios Mitsis Poiitidis
29a8fd0a4a Tests: Add gcc-target-tests for 32 and 64 bit 2021-01-26 12:00:45 +02:00
Stefanos Kornilios Mitsis Poiitidis
26171e639e Tests: Add gvisor tests 2021-01-09 04:17:35 +02:00
Ryan Houdek
50349db4c6 Moves our entire execution model over to signal execution
This requires implementing custom ASM dispatchers for the interpreter
side of things so it works correctly.
Allows all of our CPU backends to safely support signaling.
This is a bit of a nightmare change and requires rethinking logic about
debugging in some instances.
2020-09-02 16:00:17 -07:00
Stefanos Kornilios Mitsis Poiitidis
2498de1f00 Add fex-posixtest-bins as submodule 2020-05-18 13:11:04 +03:00
Ryan Houdek
41dbf5b4e7 Adds xbyak to externals
Removes cmake check to see if it exists
2020-03-06 00:20:13 -08:00
Ryan Houdek
98d0b36177 Update vixl to latest make it a shallow copy to be smaller 2020-03-05 23:24:21 -08:00
Ryan Houdek
369686c992 Initial Commit 2020-03-06 09:08:13 +02:00
Ryan Houdek
c65f148fa8 Update git submodules to point to the correct vixl repo 2020-03-06 07:51:42 +02:00
Ryan Houdek
7252050e42 Initial commit 2020-03-06 07:48:39 +02:00