summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/CMakeLists.txt2
-rw-r--r--src/common/profiler.cpp101
-rw-r--r--src/common/profiler_reporting.h83
3 files changed, 0 insertions, 186 deletions
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index 592911c2b..aca0ebe38 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -12,7 +12,6 @@ set(SRCS
memory_util.cpp
microprofile.cpp
misc.cpp
- profiler.cpp
scm_rev.cpp
string_util.cpp
symbols.cpp
@@ -45,7 +44,6 @@ set(HEADERS
microprofile.h
microprofileui.h
platform.h
- profiler_reporting.h
quaternion.h
scm_rev.h
scope_exit.h
diff --git a/src/common/profiler.cpp b/src/common/profiler.cpp
deleted file mode 100644
index b40e7205d..000000000
--- a/src/common/profiler.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-// Copyright 2015 Citra Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#include <algorithm>
-#include <cstddef>
-#include <vector>
-#include "common/assert.h"
-#include "common/profiler_reporting.h"
-#include "common/synchronized_wrapper.h"
-
-namespace Common {
-namespace Profiling {
-
-ProfilingManager::ProfilingManager()
- : last_frame_end(Clock::now()), this_frame_start(Clock::now()) {}
-
-void ProfilingManager::BeginFrame() {
- this_frame_start = Clock::now();
-}
-
-void ProfilingManager::FinishFrame() {
- Clock::time_point now = Clock::now();
-
- results.interframe_time = now - last_frame_end;
- results.frame_time = now - this_frame_start;
-
- last_frame_end = now;
-}
-
-TimingResultsAggregator::TimingResultsAggregator(size_t window_size)
- : max_window_size(window_size), window_size(0) {
- interframe_times.resize(window_size, Duration::zero());
- frame_times.resize(window_size, Duration::zero());
-}
-
-void TimingResultsAggregator::Clear() {
- window_size = cursor = 0;
-}
-
-void TimingResultsAggregator::AddFrame(const ProfilingFrameResult& frame_result) {
- interframe_times[cursor] = frame_result.interframe_time;
- frame_times[cursor] = frame_result.frame_time;
-
- ++cursor;
- if (cursor == max_window_size)
- cursor = 0;
- if (window_size < max_window_size)
- ++window_size;
-}
-
-static AggregatedDuration AggregateField(const std::vector<Duration>& v, size_t len) {
- AggregatedDuration result;
- result.avg = Duration::zero();
- result.min = result.max = (len == 0 ? Duration::zero() : v[0]);
-
- for (size_t i = 0; i < len; ++i) {
- Duration value = v[i];
- result.avg += value;
- result.min = std::min(result.min, value);
- result.max = std::max(result.max, value);
- }
- if (len != 0)
- result.avg /= len;
-
- return result;
-}
-
-static float tof(Common::Profiling::Duration dur) {
- using FloatMs = std::chrono::duration<float, std::chrono::milliseconds::period>;
- return std::chrono::duration_cast<FloatMs>(dur).count();
-}
-
-AggregatedFrameResult TimingResultsAggregator::GetAggregatedResults() const {
- AggregatedFrameResult result;
-
- result.interframe_time = AggregateField(interframe_times, window_size);
- result.frame_time = AggregateField(frame_times, window_size);
-
- if (result.interframe_time.avg != Duration::zero()) {
- result.fps = 1000.0f / tof(result.interframe_time.avg);
- } else {
- result.fps = 0.0f;
- }
-
- return result;
-}
-
-ProfilingManager& GetProfilingManager() {
- // Takes advantage of "magic" static initialization for race-free initialization.
- static ProfilingManager manager;
- return manager;
-}
-
-SynchronizedRef<TimingResultsAggregator> GetTimingResultsAggregator() {
- static SynchronizedWrapper<TimingResultsAggregator> aggregator(30);
- return SynchronizedRef<TimingResultsAggregator>(aggregator);
-}
-
-} // namespace Profiling
-} // namespace Common
diff --git a/src/common/profiler_reporting.h b/src/common/profiler_reporting.h
deleted file mode 100644
index e9ce6d41c..000000000
--- a/src/common/profiler_reporting.h
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright 2015 Citra Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#pragma once
-
-#include <chrono>
-#include <cstddef>
-#include <vector>
-#include "common/synchronized_wrapper.h"
-
-namespace Common {
-namespace Profiling {
-
-using Clock = std::chrono::high_resolution_clock;
-using Duration = Clock::duration;
-
-struct ProfilingFrameResult {
- /// Time since the last delivered frame
- Duration interframe_time;
-
- /// Time spent processing a frame, excluding VSync
- Duration frame_time;
-};
-
-class ProfilingManager final {
-public:
- ProfilingManager();
-
- /// This should be called after swapping screen buffers.
- void BeginFrame();
- /// This should be called before swapping screen buffers.
- void FinishFrame();
-
- /// Get the timing results from the previous frame. This is updated when you call FinishFrame().
- const ProfilingFrameResult& GetPreviousFrameResults() const {
- return results;
- }
-
-private:
- Clock::time_point last_frame_end;
- Clock::time_point this_frame_start;
-
- ProfilingFrameResult results;
-};
-
-struct AggregatedDuration {
- Duration avg, min, max;
-};
-
-struct AggregatedFrameResult {
- /// Time since the last delivered frame
- AggregatedDuration interframe_time;
-
- /// Time spent processing a frame, excluding VSync
- AggregatedDuration frame_time;
-
- float fps;
-};
-
-class TimingResultsAggregator final {
-public:
- TimingResultsAggregator(size_t window_size);
-
- void Clear();
-
- void AddFrame(const ProfilingFrameResult& frame_result);
-
- AggregatedFrameResult GetAggregatedResults() const;
-
- size_t max_window_size;
- size_t window_size;
- size_t cursor;
-
- std::vector<Duration> interframe_times;
- std::vector<Duration> frame_times;
-};
-
-ProfilingManager& GetProfilingManager();
-SynchronizedRef<TimingResultsAggregator> GetTimingResultsAggregator();
-
-} // namespace Profiling
-} // namespace Common