diff --git a/Source/Core/VideoCommon/FPSCounter.cpp b/Source/Core/VideoCommon/FPSCounter.cpp index 10bfebb26f..c9615a2f68 100644 --- a/Source/Core/VideoCommon/FPSCounter.cpp +++ b/Source/Core/VideoCommon/FPSCounter.cpp @@ -34,6 +34,12 @@ void Initialize() s_bench_file.close(); } +void Shutdown() +{ + if (s_bench_file.is_open()) + s_bench_file.close(); +} + static void LogRenderTimeToFile(u64 val) { if (!s_bench_file.is_open()) @@ -49,6 +55,7 @@ int Update() s_update_time.Update(); s_fps = s_counter - s_fps_last_counter; s_fps_last_counter = s_counter; + s_bench_file.flush(); } if (g_ActiveConfig.bLogRenderTimeToFile) diff --git a/Source/Core/VideoCommon/FPSCounter.h b/Source/Core/VideoCommon/FPSCounter.h index 9bdee876eb..2ce61beaec 100644 --- a/Source/Core/VideoCommon/FPSCounter.h +++ b/Source/Core/VideoCommon/FPSCounter.h @@ -9,6 +9,9 @@ namespace FPSCounter // Initializes the FPS counter. void Initialize(); +// Shutdown the FPS counter by closing the logs. +void Shutdown(); + // Called when a frame is rendered. Returns the value to be displayed on // screen as the FPS counter (updated every second). int Update(); diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index aa8a9f1d27..68afa4e11a 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -105,6 +105,8 @@ Renderer::~Renderer() if (pFrameDump.IsOpen()) pFrameDump.Close(); #endif + + FPSCounter::Shutdown(); } void Renderer::RenderToXFB(u32 xfbAddr, const EFBRectangle& sourceRc, u32 fbWidth, u32 fbHeight, float Gamma)