From e80078dc3c5e4b10c422db25f3601d1be96454fa Mon Sep 17 00:00:00 2001 From: ayuanx Date: Sun, 3 Jan 2010 18:58:50 +0000 Subject: [PATCH] What we should think about: "VideoFifo_CheckEFBAccess()" & "VideoFifo_CheckSwapRequest()" should be moved to a more suitable place than inside function "Fifo_EnterLoop()", which wastes considerable amount of CPU time (exhausting one core completely even when paused) and also makes VPS inaccurate. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4778 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/VideoCommon/Src/Fifo.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/Src/Fifo.cpp b/Source/Core/VideoCommon/Src/Fifo.cpp index d1193ba2e4..e87a437edc 100644 --- a/Source/Core/VideoCommon/Src/Fifo.cpp +++ b/Source/Core/VideoCommon/Src/Fifo.cpp @@ -210,7 +210,12 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize) } CommandProcessor::SetFifoIdleFromVideoPlugin(); - fifo_run_event.MsgWait(); + // "VideoFifo_CheckEFBAccess()" & "VideoFifo_CheckSwapRequest()" should be + // moved to a more suitable place than inside function "Fifo_EnterLoop()" + if (g_ActiveConfig.bEFBAccessEnable || g_ActiveConfig.bUseXFB) + Common::YieldCPU(); + else + fifo_run_event.MsgWait(); } }