mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Don't mark a list complete too early.
This would matter probably mostly if we implemented CONTINUE properly.
This commit is contained in:
parent
7fd7337911
commit
26933384a7
2 changed files with 7 additions and 1 deletions
|
@ -107,6 +107,12 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
// Set the list as complete once the interrupt starts.
|
||||
// In other words, not before another interrupt finishes.
|
||||
if (dl->signal != PSP_GE_SIGNAL_HANDLER_PAUSE && cmd == GE_CMD_FINISH) {
|
||||
dl->state = PSP_GE_DL_STATE_COMPLETED;
|
||||
}
|
||||
|
||||
SubIntrHandler* handler = get(subintr);
|
||||
if (handler != NULL)
|
||||
{
|
||||
|
|
|
@ -920,11 +920,11 @@ void GPUCommon::ExecuteOp(u32 op, u32 diff) {
|
|||
|
||||
default:
|
||||
currentList->subIntrToken = prev & 0xFFFF;
|
||||
currentList->state = PSP_GE_DL_STATE_COMPLETED;
|
||||
UpdateState(GPUSTATE_DONE);
|
||||
if (currentList->interruptsEnabled && __GeTriggerInterrupt(currentList->id, currentList->pc, startingTicks + cyclesExecuted)) {
|
||||
currentList->pendingInterrupt = true;
|
||||
} else {
|
||||
currentList->state = PSP_GE_DL_STATE_COMPLETED;
|
||||
currentList->waitTicks = startingTicks + cyclesExecuted;
|
||||
busyTicks = std::max(busyTicks, currentList->waitTicks);
|
||||
__GeTriggerSync(GPU_SYNC_LIST, currentList->id, currentList->waitTicks);
|
||||
|
|
Loading…
Add table
Reference in a new issue