Reduce system reserved space to 0x700000000 and map fixed on macOS.
This commit is contained in:
parent
f943ce2710
commit
e2adbd75c3
|
@ -559,7 +559,7 @@ target_link_libraries(shadps4 PRIVATE Boost::headers GPUOpen::VulkanMemoryAlloca
|
|||
|
||||
if (APPLE)
|
||||
# Reserve system-managed memory space.
|
||||
target_link_options(shadps4 PRIVATE -Wl,-no_pie,-no_fixup_chains,-no_huge,-pagezero_size,0x400000,-segaddr,SYSTEM_MANAGED,0x400000,-image_base,0x10000000000)
|
||||
target_link_options(shadps4 PRIVATE -Wl,-no_pie,-no_fixup_chains,-no_huge,-pagezero_size,0x400000,-segaddr,GUEST_SYSTEM,0x400000,-image_base,0x10000000000)
|
||||
|
||||
# Link MoltenVK for Vulkan support
|
||||
find_library(MOLTENVK MoltenVK REQUIRED)
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
// Reserve space for the system-managed address space using a zerofill section.
|
||||
asm(".zerofill SYSTEM_MANAGED,SYSTEM_MANAGED,__system_managed,0x800000000");
|
||||
// Reserve space for the system address space using a zerofill section.
|
||||
asm(".zerofill GUEST_SYSTEM,GUEST_SYSTEM,__guest_system,0xEFFC00000");
|
||||
#endif
|
||||
|
||||
namespace Core {
|
||||
|
@ -295,7 +295,7 @@ struct AddressSpace::Impl {
|
|||
// Cannot guarantee enough space for these areas at the desired addresses, so not MAP_FIXED.
|
||||
system_reserved_base = reinterpret_cast<u8*>(
|
||||
mmap(reinterpret_cast<void*>(SYSTEM_RESERVED_MIN), system_reserved_size,
|
||||
protection_flags, base_map_flags, -1, 0));
|
||||
protection_flags, base_map_flags | MAP_FIXED, -1, 0));
|
||||
user_base = reinterpret_cast<u8*>(mmap(reinterpret_cast<void*>(USER_MIN), user_size,
|
||||
protection_flags, base_map_flags, -1, 0));
|
||||
#else
|
||||
|
|
|
@ -23,7 +23,12 @@ constexpr VAddr CODE_BASE_OFFSET = 0x100000000ULL;
|
|||
constexpr VAddr SYSTEM_MANAGED_MIN = 0x00000400000ULL;
|
||||
constexpr VAddr SYSTEM_MANAGED_MAX = 0x07FFFFBFFFULL;
|
||||
constexpr VAddr SYSTEM_RESERVED_MIN = 0x800000000ULL;
|
||||
#ifdef __APPLE__
|
||||
// Can only comfortably reserve the first 0x700000000 of reserved space.
|
||||
constexpr VAddr SYSTEM_RESERVED_MAX = 0xEFFFFFFFFULL;
|
||||
#else
|
||||
constexpr VAddr SYSTEM_RESERVED_MAX = 0xFFFFFFFFFULL;
|
||||
#endif
|
||||
constexpr VAddr USER_MIN = 0x1000000000ULL;
|
||||
constexpr VAddr USER_MAX = 0xFBFFFFFFFFULL;
|
||||
|
||||
|
|
Loading…
Reference in New Issue