diff options
Diffstat (limited to 'libhwc2.1/libdevice/ExynosDisplay.cpp')
-rw-r--r-- | libhwc2.1/libdevice/ExynosDisplay.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libhwc2.1/libdevice/ExynosDisplay.cpp b/libhwc2.1/libdevice/ExynosDisplay.cpp index d050dee..7d23696 100644 --- a/libhwc2.1/libdevice/ExynosDisplay.cpp +++ b/libhwc2.1/libdevice/ExynosDisplay.cpp @@ -6284,3 +6284,16 @@ void ExynosDisplay::updateRefreshRateIndicator() { return; mRefreshRateIndicatorHandler->handleSysfsEvent(); } + +VsyncPeriodNanos ExynosDisplay::getVsyncPeriod(const int32_t config) { + const auto &it = mDisplayConfigs.find(config); + if (it == mDisplayConfigs.end()) return 0; + return mDisplayConfigs[config].vsyncPeriod; +} + +uint32_t ExynosDisplay::getRefreshRate(const int32_t config) { + VsyncPeriodNanos period = getVsyncPeriod(config); + if (!period) return 0; + constexpr float nsecsPerSec = std::chrono::nanoseconds(1s).count(); + return round(nsecsPerSec / period * 0.1f) * 10; +} |