summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/Fifo.cpp
diff options
context:
space:
mode:
authorsl1nk3.s <sl1nk3.s@gmail.com>2009-12-28 19:13:06 +0000
committersl1nk3.s <sl1nk3.s@gmail.com>2009-12-28 19:13:06 +0000
commitbf6ed51b870df050c8f093f2944f91e30244c1cd (patch)
treea619a21ad12c0f8a8298f234b65ce85041928875 /Source/Core/VideoCommon/Src/Fifo.cpp
parent60a8d89b5639aae568efddbce4201795ff3359a6 (diff)
Fix an issue with BPMEM_LOADTLUT, thanks to revned @ issue 1831, also fix a speed issue int the FIFO loop introduced recently (ZWW was ~20% slower)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4739 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/VideoCommon/Src/Fifo.cpp')
-rw-r--r--Source/Core/VideoCommon/Src/Fifo.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/Source/Core/VideoCommon/Src/Fifo.cpp b/Source/Core/VideoCommon/Src/Fifo.cpp
index 8c129ff87d..072bbaad28 100644
--- a/Source/Core/VideoCommon/Src/Fifo.cpp
+++ b/Source/Core/VideoCommon/Src/Fifo.cpp
@@ -133,8 +133,8 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize)
while (fifoStateRun)
{
video_initialize.pPeekMessages();
- if (g_ActiveConfig.bEFBAccessEnable)
- VideoFifo_CheckEFBAccess();
+
+ VideoFifo_CheckEFBAccess();
VideoFifo_CheckSwapRequest();
// check if we are able to run this buffer
@@ -197,12 +197,11 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize)
CommandProcessor::FifoCriticalLeave();
-/*
- video_initialize.pPeekMessages();
- if (g_ActiveConfig.bEFBAccessEnable)
- VideoFifo_CheckEFBAccess();
+ // Those two are pretty important and must be called in the FIFO Loop.
+ // If we don't, s_swapRequested (OGL only) or s_efbAccessRequested won't be set to false
+ // leading the CPU thread to wait in Video_BeginField or Video_AccessEFB thus slowing things down.
+ VideoFifo_CheckEFBAccess();
VideoFifo_CheckSwapRequest();
-*/
}
Common::AtomicStore(_fifo.CPReadIdle, 1);
CommandProcessor::SetFifoIdleFromVideoPlugin();
@@ -211,7 +210,7 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize)
{
Common::YieldCPU();
}
- }
+ }
fifo_exit_event.Set();
}