diff options
| author | sl1nk3.s <sl1nk3.s@gmail.com> | 2009-12-28 19:13:06 +0000 |
|---|---|---|
| committer | sl1nk3.s <sl1nk3.s@gmail.com> | 2009-12-28 19:13:06 +0000 |
| commit | bf6ed51b870df050c8f093f2944f91e30244c1cd (patch) | |
| tree | a619a21ad12c0f8a8298f234b65ce85041928875 /Source/Core/VideoCommon/Src/Fifo.cpp | |
| parent | 60a8d89b5639aae568efddbce4201795ff3359a6 (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.cpp | 15 |
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(); } |
