summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/PixelEngine.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2015-05-27 03:08:48 -0400
committerLioncash <mathew1800@gmail.com>2015-05-27 03:53:29 -0400
commit1ba3b4e7ac9d53710454c46ac5384ee44a096b70 (patch)
tree272b191ed1fbddfd113af6e6b19b9c5173a4c954 /Source/Core/VideoCommon/PixelEngine.cpp
parent1c2d4e5d42f173c60499f1c173b7ba4a70033128 (diff)
CommandProcessor: Replace volatile usages with atomics
Also remove said variables from being globals.
Diffstat (limited to 'Source/Core/VideoCommon/PixelEngine.cpp')
-rw-r--r--Source/Core/VideoCommon/PixelEngine.cpp11
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");
}