diff options
| author | Markus Wick <markus+github@selfnet.de> | 2015-05-27 11:07:36 +0200 |
|---|---|---|
| committer | Markus Wick <markus+github@selfnet.de> | 2015-05-27 11:07:36 +0200 |
| commit | 255a8dfdd2ea20f0f250c206915c56f759d38372 (patch) | |
| tree | bc592df0fd6cd33fa14dd3145a47b9c3443892f5 /Source/Core/VideoCommon/PixelEngine.cpp | |
| parent | 3318120632144a99531562b4bb60234c521e01e5 (diff) | |
| parent | 1ba3b4e7ac9d53710454c46ac5384ee44a096b70 (diff) | |
Merge pull request #2465 from lioncash/commandproc
CommandProcessor: Replace volatile usages with atomics
Diffstat (limited to 'Source/Core/VideoCommon/PixelEngine.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/PixelEngine.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/Source/Core/VideoCommon/PixelEngine.cpp b/Source/Core/VideoCommon/PixelEngine.cpp index 9b2c48876b..45db963d23 100644 --- a/Source/Core/VideoCommon/PixelEngine.cpp +++ b/Source/Core/VideoCommon/PixelEngine.cpp @@ -274,14 +274,14 @@ void SetToken_OnMainThread(u64 userdata, int cyclesLate) s_signal_token_interrupt.store(1); UpdateInterrupts(); } - CommandProcessor::interruptTokenWaiting = false; + CommandProcessor::SetInterruptTokenWaiting(false); } void SetFinish_OnMainThread(u64 userdata, int cyclesLate) { s_signal_finish_interrupt.store(1); UpdateInterrupts(); - CommandProcessor::interruptFinishWaiting = false; + CommandProcessor::SetInterruptFinishWaiting(false); } // SetToken @@ -293,7 +293,8 @@ void SetToken(const u16 _token, const int _bSetTokenAcknowledge) s_signal_token_interrupt.store(1); } - CommandProcessor::interruptTokenWaiting = true; + CommandProcessor::SetInterruptTokenWaiting(true); + if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bCPUThread || g_use_deterministic_gpu_thread) CoreTiming::ScheduleEvent(0, et_SetTokenOnMainThread, _token | (_bSetTokenAcknowledge << 16)); else @@ -304,11 +305,13 @@ void SetToken(const u16 _token, const int _bSetTokenAcknowledge) // THIS IS EXECUTED FROM VIDEO THREAD (BPStructs.cpp) when a new frame has been drawn void SetFinish() { - CommandProcessor::interruptFinishWaiting = true; + CommandProcessor::SetInterruptFinishWaiting(true); + if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bCPUThread || g_use_deterministic_gpu_thread) CoreTiming::ScheduleEvent(0, et_SetFinishOnMainThread, 0); else CoreTiming::ScheduleEvent_Threadsafe(0, et_SetFinishOnMainThread, 0); + INFO_LOG(PIXELENGINE, "VIDEO Set Finish"); } |
