fix macos shenanigans

This commit is contained in:
lizzie 2025-11-30 20:36:53 +00:00
parent 1c1e7059d3
commit 816eb96f48
2 changed files with 11 additions and 1 deletions

View File

@ -625,7 +625,14 @@ public:
prot_flags |= PROT_EXEC;
#endif
int flags = (fd > 0 ? MAP_SHARED : MAP_PRIVATE) | MAP_FIXED;
void* ret = mmap(virtual_base + virtual_offset, length, prot_flags, flags, fd, host_offset);
u8* addr = virtual_base + virtual_offset;
#ifdef __APPLE__
// The way Steve Jobs intended
addr = (void*)trunc_page(u64(addr));
length = round_page(length);
#endif
void* ret = mmap(addr, length, prot_flags, flags, fd, host_offset);
ASSERT_MSG(ret != MAP_FAILED, "mmap: {}", strerror(errno));
}

View File

@ -5,4 +5,7 @@
#include "video_core/vulkan_common/vulkan.h"
#if defined(__APPLE__) && !defined(VK_STRUCTURE_TYPE_OH_SURFACE_CREATE_INFO_OHOS)
# define VK_STRUCTURE_TYPE_OH_SURFACE_CREATE_INFO_OHOS VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS
#endif
#include <vulkan/vk_enum_string_helper.h>