diff --git a/Utilities/JIT.cpp b/Utilities/JIT.cpp index f9bfd7d390..7e3bd23f5b 100644 --- a/Utilities/JIT.cpp +++ b/Utilities/JIT.cpp @@ -30,6 +30,8 @@ #ifdef _WIN32 #include +#else +#include #endif #include "JIT.h" @@ -47,6 +49,11 @@ static void* const s_memory = []() -> void* llvm::InitializeNativeTargetAsmPrinter(); LLVMLinkInMCJIT(); +#ifdef MAP_32BIT + auto ptr = ::mmap(nullptr, s_memory_size, PROT_NONE, MAP_ANON | MAP_PRIVATE | MAP_32BIT, -1, 0); + if (ptr != MAP_FAILED) + return ptr; +#else for (u64 addr = 0x10000000; addr <= 0x80000000 - s_memory_size; addr += 0x1000000) { if (auto ptr = utils::memory_reserve(s_memory_size, (void*)addr)) @@ -54,6 +61,7 @@ static void* const s_memory = []() -> void* return ptr; } } +#endif return utils::memory_reserve(s_memory_size); }(); diff --git a/Utilities/Thread.cpp b/Utilities/Thread.cpp index a6159b1f78..2682ed008b 100644 --- a/Utilities/Thread.cpp +++ b/Utilities/Thread.cpp @@ -19,6 +19,10 @@ #include #include #endif +#if defined(__DragonFly__) || defined(__FreeBSD__) +#include +#define cpu_set_t cpuset_t +#endif #include #include #include @@ -1922,7 +1926,7 @@ void thread_ctrl::set_ideal_processor_core(int core) thread_affinity_policy_data_t policy = { static_cast(core) }; thread_port_t mach_thread = pthread_mach_thread_np(pthread_self()); thread_policy_set(mach_thread, THREAD_AFFINITY_POLICY, (thread_policy_t)&policy, 1); -#else +#elif defined(__linux__) || defined(__DragonFly__) || defined(__FreeBSD__) cpu_set_t cs; CPU_ZERO(&cs); CPU_SET(core, &cs); diff --git a/rpcs3/CMakeLists.txt b/rpcs3/CMakeLists.txt index 6b199e310f..c7096be735 100644 --- a/rpcs3/CMakeLists.txt +++ b/rpcs3/CMakeLists.txt @@ -236,6 +236,9 @@ if(NOT WIN32 AND USE_VULKAN) if(VULKAN_FOUND) add_definitions(-DHAVE_VULKAN) list(APPEND ADDITIONAL_LIBS ${VULKAN_LIBRARY}) + if(VULKAN_PREBUILT) + list(APPEND ADDITIONAL_LIBS glslang HLSL OGLCompiler SPIRV OSDependent) + endif() else() message("WARNING! USE_VULKAN was enabled, but libvulkan was not found. RPCS3 will be compiled without Vulkan support.") endif() diff --git a/rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp b/rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp index 2361d04b70..3510b1acca 100644 --- a/rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp +++ b/rpcs3/Emu/RSX/VK/VKCommonDecompiler.cpp @@ -1,7 +1,7 @@ #include "stdafx.h" #include "VKCommonDecompiler.h" #include "restore_new.h" -#include "../../../../Vulkan/glslang/SPIRV/GlslangToSpv.h" +#include "SPIRV/GlslangToSpv.h" #include "define_new_memleakdetect.h" namespace vk diff --git a/rpcs3/VKGSRender.vcxproj b/rpcs3/VKGSRender.vcxproj index 1670e45cf4..939431dfa5 100644 --- a/rpcs3/VKGSRender.vcxproj +++ b/rpcs3/VKGSRender.vcxproj @@ -95,7 +95,7 @@ - ..\Vulkan\Vulkan-LoaderAndValidationLayers\include;..\Vulkan\glslang\glslang\Public;%(AdditionalIncludeDirectories) + ..\Vulkan\Vulkan-LoaderAndValidationLayers\include;..\Vulkan\glslang\glslang\Public;..\Vulkan\glslang;%(AdditionalIncludeDirectories)