diff --git a/Core/Config.h b/Core/Config.h index eda4cf6b9c..1888e673c5 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -56,6 +56,7 @@ public: bool bIgnoreBadMemAccess; bool bFastMemory; bool bJit; + // Definitely cannot be changed while game is running. bool bUseCPUThread; int iLockedCPUSpeed; bool bAutoSaveSymbolMap; diff --git a/GPU/GPUCommon.cpp b/GPU/GPUCommon.cpp index f0c2c50223..fdc4339f80 100644 --- a/GPU/GPUCommon.cpp +++ b/GPU/GPUCommon.cpp @@ -577,13 +577,16 @@ void GPUCommon::RunEventsUntil(u64 globalticks) { } // coreState changes won't wake us, so recheck periodically. + if (!g_Config.bUseCPUThread) { + return; + } eventsCond.wait_for(eventsLock, 1); } while (CoreTiming::GetTicks() < globalticks); } void GPUCommon::SyncThread() { if (!g_Config.bUseCPUThread) { - _dbg_assert_msg_(G3D, !HasEvents(), "Should never have pending events when CPU/GPU on same thread."); + return; } while (HasEvents() && coreState == CORE_RUNNING) {