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.
This commit is contained in:
Unknown W. Brackets 2013-04-20 20:15:47 -07:00
parent cc9d037108
commit b54eb41041

View File

@ -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();
}