From f6a23c9d154f7ccebfc260a1d252e7d1bc4b2093 Mon Sep 17 00:00:00 2001 From: Dean Galvin Date: Mon, 28 Sep 2026 16:47:02 +1300 Subject: [PATCH] fix(agc): keep a replaced Vulkan device alive Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01ButHENCbXXt8h4EZuWUabJ --- core/libs/prx/libSceAgcDriver/Execution/src/Driver.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/libs/prx/libSceAgcDriver/Execution/src/Driver.cpp b/core/libs/prx/libSceAgcDriver/Execution/src/Driver.cpp index a2f9e338c..6957417d5 100644 --- a/core/libs/prx/libSceAgcDriver/Execution/src/Driver.cpp +++ b/core/libs/prx/libSceAgcDriver/Execution/src/Driver.cpp @@ -651,7 +651,11 @@ public: std::lock_guard lock(GuestMemory::GpuMutex()); timing.Mark("gpu_mutex_wait"); if (device == nullptr || device->Window() == nullptr) { - if (device) device->PrepareForReplacement(); + if (device) { + device->PrepareForReplacement(); + static std::vector> replacedDevices; + replacedDevices.push_back(device); + } device = std::make_shared(&window); } require(device->Window() == window.context, "presentation window does not match device surface");