From f561a10bd86431faa7684300b60b76ff4a4433a1 Mon Sep 17 00:00:00 2001 From: lizzie Date: Sat, 25 Jul 2026 23:34:22 +0200 Subject: [PATCH] [core/core] GPU initialize before CPU (#4228) Signed-off-by: lizzie - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- should fix issue where vulkan dies trying to do locks or whatever, since CPU will infinitely stall or whatever tl;dr: dynarmic is getting too good and outpacing initialization Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4228 Reviewed-by: Maufeat Reviewed-by: MaranBr --- src/core/core.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/core/core.cpp b/src/core/core.cpp index 8b9133f963..3ff42cf6f5 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -264,9 +264,7 @@ struct System::Impl { // Setting changes may require a full system reinitialization (e.g., disabling multicore). ReinitializeIfNecessary(system); - kernel.Initialize(); - cpu_manager.Initialize(); } SystemResultStatus SetupForApplicationProcess(System& system, Frontend::EmuWindow& emu_window) { @@ -293,9 +291,7 @@ struct System::Impl { return SystemResultStatus::Success; } - SystemResultStatus Load(System& system, Frontend::EmuWindow& emu_window, - const std::string& filepath, - Service::AM::FrontendAppletParameters& params) { + SystemResultStatus Load(System& system, Frontend::EmuWindow& emu_window, const std::string& filepath, Service::AM::FrontendAppletParameters& params) { InitializeKernel(system); const auto file = GetGameFileFromPath(virtual_filesystem, filepath); @@ -342,6 +338,8 @@ struct System::Impl { ShutdownMainProcess(); return init_result; } + // Waiting for GPU before initializing CPU + cpu_manager.Initialize(); // Initialize cheat engine if (cheat_engine) {