summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/Fifo.cpp
diff options
context:
space:
mode:
authorayuanx <ayuanx@gmail.com>2010-01-03 18:58:50 +0000
committerayuanx <ayuanx@gmail.com>2010-01-03 18:58:50 +0000
commite80078dc3c5e4b10c422db25f3601d1be96454fa (patch)
treebe1bea9958cdab715032fd1bbde31faff94eb60f /Source/Core/VideoCommon/Src/Fifo.cpp
parenta3c258cf9cd46a24d1471f95f5b750456c55c2f0 (diff)
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
Diffstat (limited to 'Source/Core/VideoCommon/Src/Fifo.cpp')
-rw-r--r--Source/Core/VideoCommon/Src/Fifo.cpp7
1 files changed, 6 insertions, 1 deletions
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();
}
}