Set g_bSignalTokenInterrupt on the main thread. Fixes the random hang in Harry Potter: Prisoner of Azkaban.

This commit is contained in:
skidau 2013-03-07 22:16:00 +11:00
parent 0f1ef49da1
commit d3e431af9e
1 changed files with 3 additions and 0 deletions

View File

@ -383,7 +383,10 @@ void SetToken_OnMainThread(u64 userdata, int cyclesLate)
Common::AtomicStore(*(volatile u32*)&CommandProcessor::fifo.PEToken, userdata & 0xffff);
INFO_LOG(PIXELENGINE, "VIDEO Backend raises INT_CAUSE_PE_TOKEN (btw, token: %04x)", CommandProcessor::fifo.PEToken);
if (userdata >> 16)
{
Common::AtomicStore(*(volatile u32*)&g_bSignalTokenInterrupt, 1);
UpdateInterrupts();
}
CommandProcessor::interruptTokenWaiting = false;
IncrementCheckContextId();
}