From 7b03d86bc50ffba99a3c4bc3e5ce57ff666a77cf Mon Sep 17 00:00:00 2001 From: Michon <231849@buas.nl> Date: Fri, 2 Oct 2026 17:57:04 +0200 Subject: [PATCH] fix(agc): a replaced device's unit shadows leave the registry When the windowless device is replaced at the first present, its unit shadows were published but stayed registered. Lookups take the shadow whose import starts nearest below an address, so such a stale entry could hide the live import's shadow. The write-back results it held then looked absent, and an upload read the import's stale bytes instead. The replaced device's shadows are now dropped once it is idle. Co-Authored-By: Claude Opus 5.5 (1M context) --- core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp b/core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp index 2b859eb91..29af4b784 100644 --- a/core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp +++ b/core/libs/prx/libSceAgcDriver/Execution/src/VulkanDevice.cpp @@ -989,6 +989,7 @@ void VulkanDevice::PrepareForReplacement() { Graphics::FlushCachedTextures(state->device); Graphics::PublishAllShadows(state->context, Graphics::PublishReason::Teardown); WaitIdle(); + Graphics::DestroyShadows(state->device); } void VulkanDevice::WaitIdle() {