From c75ae6c585f651a1b7c162c2e1ecccd22a1c587d Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Sun, 19 Feb 2017 14:34:47 -0800 Subject: Add performance statistics to status bar --- src/video_core/renderer_opengl/renderer_opengl.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/video_core/renderer_opengl/renderer_opengl.cpp') diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 2aa90e5c1..0b90dcb3d 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp @@ -12,6 +12,7 @@ #include "common/logging/log.h" #include "common/profiler_reporting.h" #include "common/synchronized_wrapper.h" +#include "core/core.h" #include "core/frontend/emu_window.h" #include "core/hw/gpu.h" #include "core/hw/hw.h" @@ -151,6 +152,10 @@ void RendererOpenGL::SwapBuffers() { auto aggregator = Common::Profiling::GetTimingResultsAggregator(); aggregator->AddFrame(profiler.GetPreviousFrameResults()); } + { + auto perf_stats = Core::System::GetInstance().perf_stats.Lock(); + perf_stats->EndSystemFrame(); + } // Swap buffers render_window->PollEvents(); @@ -159,6 +164,10 @@ void RendererOpenGL::SwapBuffers() { prev_state.Apply(); profiler.BeginFrame(); + { + auto perf_stats = Core::System::GetInstance().perf_stats.Lock(); + perf_stats->BeginSystemFrame(); + } RefreshRasterizerSetting(); -- cgit v1.2.3 From 3b4e4003336c94527339a2a9ad7d52875974258f Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Sun, 19 Feb 2017 18:35:04 -0800 Subject: Remove built-in (non-Microprofile) profiler --- src/video_core/renderer_opengl/renderer_opengl.cpp | 8 -------- 1 file changed, 8 deletions(-) (limited to 'src/video_core/renderer_opengl/renderer_opengl.cpp') diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 0b90dcb3d..6bc142148 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp @@ -10,7 +10,6 @@ #include "common/assert.h" #include "common/bit_field.h" #include "common/logging/log.h" -#include "common/profiler_reporting.h" #include "common/synchronized_wrapper.h" #include "core/core.h" #include "core/frontend/emu_window.h" @@ -146,12 +145,6 @@ void RendererOpenGL::SwapBuffers() { DrawScreens(); - auto& profiler = Common::Profiling::GetProfilingManager(); - profiler.FinishFrame(); - { - auto aggregator = Common::Profiling::GetTimingResultsAggregator(); - aggregator->AddFrame(profiler.GetPreviousFrameResults()); - } { auto perf_stats = Core::System::GetInstance().perf_stats.Lock(); perf_stats->EndSystemFrame(); @@ -163,7 +156,6 @@ void RendererOpenGL::SwapBuffers() { prev_state.Apply(); - profiler.BeginFrame(); { auto perf_stats = Core::System::GetInstance().perf_stats.Lock(); perf_stats->BeginSystemFrame(); -- cgit v1.2.3 From b285c2a4ed29a126b5bcfe46e2784bd1870bdf82 Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Mon, 20 Feb 2017 13:56:58 -0800 Subject: Core: Make PerfStats internally locked More ergonomic to use and will be required for upcoming changes. --- src/video_core/renderer_opengl/renderer_opengl.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'src/video_core/renderer_opengl/renderer_opengl.cpp') diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 6bc142148..b3604106c 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp @@ -145,10 +145,7 @@ void RendererOpenGL::SwapBuffers() { DrawScreens(); - { - auto perf_stats = Core::System::GetInstance().perf_stats.Lock(); - perf_stats->EndSystemFrame(); - } + Core::System::GetInstance().perf_stats.EndSystemFrame(); // Swap buffers render_window->PollEvents(); @@ -156,10 +153,7 @@ void RendererOpenGL::SwapBuffers() { prev_state.Apply(); - { - auto perf_stats = Core::System::GetInstance().perf_stats.Lock(); - perf_stats->BeginSystemFrame(); - } + Core::System::GetInstance().perf_stats.BeginSystemFrame(); RefreshRasterizerSetting(); -- cgit v1.2.3 From fb1979d7e26c20fe2b8d2c3d3dc998e5e00f2f61 Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Mon, 20 Feb 2017 16:31:59 -0800 Subject: Core: Re-write frame limiter Now based on std::chrono, and also works in terms of emulated time instead of frames, so we can in the future frame-limit even when the display is disabled, etc. The frame limiter can also be enabled along with v-sync now, which should be useful for those with displays running at more than 60 Hz. --- src/video_core/renderer_opengl/renderer_opengl.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/video_core/renderer_opengl/renderer_opengl.cpp') diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index b3604106c..e19375466 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp @@ -10,8 +10,8 @@ #include "common/assert.h" #include "common/bit_field.h" #include "common/logging/log.h" -#include "common/synchronized_wrapper.h" #include "core/core.h" +#include "core/core_timing.h" #include "core/frontend/emu_window.h" #include "core/hw/gpu.h" #include "core/hw/hw.h" @@ -151,10 +151,10 @@ void RendererOpenGL::SwapBuffers() { render_window->PollEvents(); render_window->SwapBuffers(); - prev_state.Apply(); - + Core::System::GetInstance().frame_limiter.DoFrameLimiting(CoreTiming::GetGlobalTimeUs()); Core::System::GetInstance().perf_stats.BeginSystemFrame(); + prev_state.Apply(); RefreshRasterizerSetting(); if (Pica::g_debug_context && Pica::g_debug_context->recorder) { -- cgit v1.2.3