From b54eb41041b8c8c27aff06c5d6c1a589a6b91c02 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sat, 20 Apr 2013 20:15:47 -0700 Subject: [PATCH] Don't signal again if a PAUSE handler unstalls. Basically, if the handler calls sceGeListUpdateStallAddr(), and it hits a finish (which it might), before we were triggering another PAUSE. THat's wrong, it should just be a FINISH as usual. --- GPU/GPUCommon.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/GPU/GPUCommon.cpp b/GPU/GPUCommon.cpp index e06676373c..437ce96f7b 100644 --- a/GPU/GPUCommon.cpp +++ b/GPU/GPUCommon.cpp @@ -243,6 +243,9 @@ u32 GPUCommon::UpdateStall(int listid, u32 newstall) return SCE_KERNEL_ERROR_INVALID_ID; dls[listid].stall = newstall & 0xFFFFFFF; + + if (dls[listid].signal == PSP_GE_SIGNAL_HANDLER_PAUSE) + dls[listid].signal = PSP_GE_SIGNAL_HANDLER_SUSPEND; ProcessDLQueue(); @@ -718,6 +721,9 @@ void GPUCommon::InterruptEnd(int listid) __KernelTriggerWait(WAITTYPE_GELISTSYNC, listid, 0, "GeListSync", true); } + if (dl.signal == PSP_GE_SIGNAL_HANDLER_PAUSE) + dl.signal = PSP_GE_SIGNAL_HANDLER_SUSPEND; + ProcessDLQueue(); }