From 2f380b3669a70dce58e3b35b029aa7258465e479 Mon Sep 17 00:00:00 2001 From: Sam Gateau Date: Tue, 14 May 2019 17:58:32 -0700 Subject: [PATCH] Detailing the info from the refresh rate --- .../src/display-plugins/RefreshRateController.cpp | 4 +++- .../src/display-plugins/RefreshRateController.h | 2 +- libraries/plugins/src/plugins/DisplayPlugin.h | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/libraries/display-plugins/src/display-plugins/RefreshRateController.cpp b/libraries/display-plugins/src/display-plugins/RefreshRateController.cpp index 2d9b553163..369c3cdb26 100644 --- a/libraries/display-plugins/src/display-plugins/RefreshRateController.cpp +++ b/libraries/display-plugins/src/display-plugins/RefreshRateController.cpp @@ -30,7 +30,7 @@ int RefreshRateController::getRefreshRateLimitPeriod() const { return durationNanosecondsToHz(_refreshRateLimitPeriod); } -void RefreshRateController::sleepThreadIfNeeded(QThread* thread, bool isHmd) { +std::chrono::nanoseconds RefreshRateController::sleepThreadIfNeeded(QThread* thread, bool isHmd) { if (!isHmd) { static const std::chrono::nanoseconds EPSILON = std::chrono::milliseconds(1); auto duration = std::chrono::duration_cast(_endTime - _startTime); @@ -39,5 +39,7 @@ void RefreshRateController::sleepThreadIfNeeded(QThread* thread, bool isHmd) { if (sleepDuration.count() > 0) { thread->msleep(std::chrono::duration_cast(sleepDuration).count()); } + return sleepDuration; } + return std::chrono::nanoseconds(0); } diff --git a/libraries/display-plugins/src/display-plugins/RefreshRateController.h b/libraries/display-plugins/src/display-plugins/RefreshRateController.h index 15adee3d3d..3cb563377f 100644 --- a/libraries/display-plugins/src/display-plugins/RefreshRateController.h +++ b/libraries/display-plugins/src/display-plugins/RefreshRateController.h @@ -29,7 +29,7 @@ public: void clockStartTime() { _startTime = std::chrono::high_resolution_clock::now(); } void clockEndTime() { _endTime = std::chrono::high_resolution_clock::now(); } - void sleepThreadIfNeeded(QThread* thread, bool isHmd); + std::chrono::nanoseconds sleepThreadIfNeeded(QThread* thread, bool isHmd); private: std::chrono::time_point _startTime { std::chrono::high_resolution_clock::now() }; std::chrono::time_point _endTime { std::chrono::high_resolution_clock::now() }; diff --git a/libraries/plugins/src/plugins/DisplayPlugin.h b/libraries/plugins/src/plugins/DisplayPlugin.h index a07e6cea04..9dc1d7002d 100644 --- a/libraries/plugins/src/plugins/DisplayPlugin.h +++ b/libraries/plugins/src/plugins/DisplayPlugin.h @@ -211,7 +211,7 @@ public: virtual void cycleDebugOutput() {} void waitForPresent(); - float getAveragePresentTime() { return _movingAveragePresent.average / (float)USECS_PER_MSEC; } // in msec + float getAveragePresentTime() { return _movingAveragePresent.average / (float)USECS_PER_MSEC; } // in msec std::function getHUDOperator();