From 324bda9cbaf277690d1508d7b1006e083afbc4fa Mon Sep 17 00:00:00 2001 From: ameerj <52414509+ameerj@users.noreply.github.com> Date: Tue, 29 Mar 2022 00:33:13 -0400 Subject: [PATCH] gpu_thread: Block on FlushRegion for all GPU accuracies This addresses a synchronization issue that causes an SVC break in Kirby and the Forgotten Land. --- src/video_core/gpu_thread.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp index 9547f277a0..78d391cd91 100644 --- a/src/video_core/gpu_thread.cpp +++ b/src/video_core/gpu_thread.cpp @@ -90,6 +90,10 @@ void ThreadManager::FlushRegion(VAddr addr, u64 size) { return; } if (!Settings::IsGPULevelExtreme()) { + // Push a command and block here before proceeding, addresses a synchronization + // bug causing an SVC break in Kirby and the Forgotten Land + // GPUTickCommand is essentially a no-op if we don't RequestFlush() + PushCommand(GPUTickCommand(), true); return; } auto& gpu = system.GPU();