summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/PixelEngine.cpp
diff options
context:
space:
mode:
authorskidau <skidau@gmail.com>2013-03-07 22:16:00 +1100
committerskidau <skidau@gmail.com>2013-03-07 22:16:00 +1100
commitd3e431af9e8e1f73dbcd4b0fd377749efc254f55 (patch)
treecb0e6347b34b8b8af636d6278153ceb4d79f5565 /Source/Core/VideoCommon/Src/PixelEngine.cpp
parent0f1ef49da19cd8636a812d7c881052280df6444d (diff)
Set g_bSignalTokenInterrupt on the main thread. Fixes the random hang in Harry Potter: Prisoner of Azkaban.
Diffstat (limited to 'Source/Core/VideoCommon/Src/PixelEngine.cpp')
-rw-r--r--Source/Core/VideoCommon/Src/PixelEngine.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/Src/PixelEngine.cpp b/Source/Core/VideoCommon/Src/PixelEngine.cpp
index aec160ddd2..ce4881252f 100644
--- a/Source/Core/VideoCommon/Src/PixelEngine.cpp
+++ b/Source/Core/VideoCommon/Src/PixelEngine.cpp
@@ -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();
}