Video Common: move frame advance and counter logic to only happen when we actually render a frame.

This commit is contained in:
iwubcode 2017-12-15 12:46:18 -06:00
parent 49a55e0a93
commit 2f7eacd08c
1 changed files with 10 additions and 12 deletions

View File

@ -632,7 +632,6 @@ void Renderer::Swap(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, const
// behind the renderer.
FlushFrameDump();
bool update_frame_count = false;
if (xfbAddr && fbWidth && fbStride && fbHeight)
{
constexpr int force_safe_texture_cache_hash = 0;
@ -655,16 +654,9 @@ void Renderer::Swap(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, const
g_renderer->SwapImpl(xfb_entry->texture.get(), xfb_rect, ticks, xfb_entry->gamma);
m_fps_counter.Update();
update_frame_count = true;
if (IsFrameDumping())
DumpCurrentFrame();
}
// Update our last xfb values
m_last_xfb_width = (fbStride < 1 || fbStride > MAX_XFB_WIDTH) ? MAX_XFB_WIDTH : fbStride;
m_last_xfb_height = (fbHeight < 1 || fbHeight > MAX_XFB_HEIGHT) ? MAX_XFB_HEIGHT : fbHeight;
}
frameCount++;
GFX_DEBUGGER_PAUSE_AT(NEXT_FRAME, true);
@ -674,7 +666,13 @@ void Renderer::Swap(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, const
// New frame
stats.ResetFrame();
Core::Callback_VideoCopiedToXFB(update_frame_count);
Core::Callback_VideoCopiedToXFB(true);
}
// Update our last xfb values
m_last_xfb_width = (fbStride < 1 || fbStride > MAX_XFB_WIDTH) ? MAX_XFB_WIDTH : fbStride;
m_last_xfb_height = (fbHeight < 1 || fbHeight > MAX_XFB_HEIGHT) ? MAX_XFB_HEIGHT : fbHeight;
}
}
bool Renderer::IsFrameDumping()