From 68ced8ab4fed3bb316739c9c4aa5c9a955c5b0e0 Mon Sep 17 00:00:00 2001 From: darktux Date: Sat, 6 Apr 2024 01:18:21 +0200 Subject: [PATCH 1/3] Disabled MCO_USE_VMEM_ALLOCATOR because standard stack size seems to suffice --- src/common/fiber.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/common/fiber.cpp b/src/common/fiber.cpp index a770effaa7..1e91d6f25a 100644 --- a/src/common/fiber.cpp +++ b/src/common/fiber.cpp @@ -5,7 +5,6 @@ #include "common/assert.h" #include "common/fiber.h" -#define MCO_USE_VMEM_ALLOCATOR #define MINICORO_IMPL #include "common/minicoro.h" From 00dd7295a331167ca416805365ca70bc0fb26ab7 Mon Sep 17 00:00:00 2001 From: darktux Date: Mon, 8 Apr 2024 00:30:51 +0200 Subject: [PATCH 2/3] Improve SPIRV-Headers loading behavior --- externals/CMakeLists.txt | 6 ++++++ externals/sirit/CMakeLists.txt | 9 --------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 1136348891..c8ccc1f79f 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -14,6 +14,12 @@ set(BUILD_SHARED_LIBS OFF) # Skip install rules for all externals set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL ON) +# SPIRV Headers +find_package(SPIRV-Headers) +if (NOT TARGET SPIRV-Headers::SPIRV-Headers) + add_subdirectory(SPIRV-Headers) +endif() + # Xbyak (also used by Dynarmic, so needs to be added first) if ((ARCHITECTURE_x86 OR ARCHITECTURE_x86_64) AND NOT TARGET xbyak::xbyak) add_subdirectory(xbyak) diff --git a/externals/sirit/CMakeLists.txt b/externals/sirit/CMakeLists.txt index ce887d5124..0a6276db82 100644 --- a/externals/sirit/CMakeLists.txt +++ b/externals/sirit/CMakeLists.txt @@ -12,7 +12,6 @@ endif() # Sirit project options option(SIRIT_TESTS "Build tests" OFF) -option(SIRIT_USE_SYSTEM_SPIRV_HEADERS "Use system SPIR-V headers" OFF) # Default to a Release build if (NOT CMAKE_BUILD_TYPE) @@ -84,14 +83,6 @@ endif() # Enable unit-testing. enable_testing(true) -# SPIR-V headers -if (SIRIT_USE_SYSTEM_SPIRV_HEADERS) - find_package(SPIRV-Headers REQUIRED) -else() - add_subdirectory(${CMAKE_SOURCE_DIR}/externals/SPIRV-Headers externals/SPIRV-Headers EXCLUDE_FROM_ALL) - add_library(SPIRV-Headers::SPIRV-Headers ALIAS SPIRV-Headers) -endif() - # Sirit project files add_subdirectory(src) if (SIRIT_TESTS) From 53ad973d6a0db4307f43fdd3346d745f3a312f26 Mon Sep 17 00:00:00 2001 From: darktux Date: Mon, 8 Apr 2024 00:40:46 +0200 Subject: [PATCH 3/3] Removed Fiber::YieldTo debug round counter --- src/common/fiber.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/fiber.cpp b/src/common/fiber.cpp index 1e91d6f25a..b9c87686cf 100644 --- a/src/common/fiber.cpp +++ b/src/common/fiber.cpp @@ -94,7 +94,7 @@ void Fiber::YieldTo(std::weak_ptr weak_from, Fiber& to) { auto& next_fiber_ptr = from->impl->next_fiber_ptr; next_fiber_ptr = &from->impl->next_fiber; *next_fiber_ptr = &to; - for ([[maybe_unused]] unsigned round = 0; *next_fiber_ptr; round++) { + while (*next_fiber_ptr) { auto next = *next_fiber_ptr; *next_fiber_ptr = nullptr; next_fiber_ptr = &next->impl->next_fiber;