From d44fc4829538287fc05b0783466227064945780b Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Thu, 17 Jul 2014 13:14:11 +0200 Subject: [PATCH] SW: Call OnFrameEnd in the FifoPlayer XFB hack. Required to dump DFF frames. --- Source/Core/VideoBackends/Software/EfbCopy.cpp | 1 + Source/Core/VideoBackends/Software/SWmain.cpp | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Source/Core/VideoBackends/Software/EfbCopy.cpp b/Source/Core/VideoBackends/Software/EfbCopy.cpp index ab2d281bd4..479cc35ddc 100644 --- a/Source/Core/VideoBackends/Software/EfbCopy.cpp +++ b/Source/Core/VideoBackends/Software/EfbCopy.cpp @@ -58,6 +58,7 @@ namespace EfbCopy // This requires careful synchronization since GPU commands // are processed on a different thread than VI commands. SWRenderer::Swap(fbWidth, fbHeight); + DebugUtil::OnFrameEnd(fbWidth, fbHeight); } } } diff --git a/Source/Core/VideoBackends/Software/SWmain.cpp b/Source/Core/VideoBackends/Software/SWmain.cpp index e90b226d62..c4a6d2f0c8 100644 --- a/Source/Core/VideoBackends/Software/SWmain.cpp +++ b/Source/Core/VideoBackends/Software/SWmain.cpp @@ -232,9 +232,6 @@ void VideoSoftware::Video_EndField() } } - // Dump frame if needed - DebugUtil::OnFrameEnd(s_beginFieldArgs.fbWidth, s_beginFieldArgs.fbHeight); - // Ideally we would just move all the OpenGL context stuff to the CPU thread, // but this gets messy when the hardware rasterizer is enabled. // And neobrain loves his hardware rasterizer. @@ -242,6 +239,9 @@ void VideoSoftware::Video_EndField() // If BypassXFB has already done a swap (cf. EfbCopy::CopyToXfb), skip this. if (!g_SWVideoConfig.bBypassXFB) { + // Dump frame if needed + DebugUtil::OnFrameEnd(s_beginFieldArgs.fbWidth, s_beginFieldArgs.fbHeight); + // If we are in dual core mode, notify the GPU thread about the new color texture. if (SConfig::GetInstance().m_LocalCoreStartupParameter.bCPUThread) Common::AtomicStoreRelease(s_swapRequested, true);