summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNT Tsai <nttsai@google.com>2022-06-02 12:31:20 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-06-02 12:31:20 +0000
commit0d5096e0b737eb49bc0c628b62e5531e5b9064c2 (patch)
tree4e9e0660e757917d2b947114b3213acbd3467077
parent58415557bc2a3b9e83a55c0abf4d0d48286a751e (diff)
parent0876d4aae686b49c28ec84efe087296abe696533 (diff)
downloadcommon-0d5096e0b737eb49bc0c628b62e5531e5b9064c2.tar.gz
Merge "Revert "libhwc2.1: wait for peak refresh rate before enabling LHBM"" into tm-dev am: 0876d4aae6
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/18715146 Change-Id: I27436b52757e1731f5dcfc39126e61068dd6dbba Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--libhwc2.1/libdevice/ExynosDisplay.h10
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp4
-rw-r--r--libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp16
-rw-r--r--libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h2
4 files changed, 0 insertions, 32 deletions
diff --git a/libhwc2.1/libdevice/ExynosDisplay.h b/libhwc2.1/libdevice/ExynosDisplay.h
index 1875f94..5638c08 100644
--- a/libhwc2.1/libdevice/ExynosDisplay.h
+++ b/libhwc2.1/libdevice/ExynosDisplay.h
@@ -1243,13 +1243,6 @@ class ExynosDisplay {
// is the hint session both enabled and supported
bool usePowerHintSession();
- void setMinDisplayVsyncPeriod(uint32_t period) { mMinDisplayVsyncPeriod = period; }
-
- bool isCurrentPeakRefreshRate(void) {
- return ((mConfigRequestState == hwc_request_state_t::SET_CONFIG_STATE_NONE) &&
- (mVsyncPeriod == mMinDisplayVsyncPeriod));
- }
-
private:
bool skipStaticLayerChanged(ExynosCompositionInfo& compositionInfo);
@@ -1264,9 +1257,6 @@ class ExynosDisplay {
static constexpr float kHdrFullScreen = 0.5;
uint32_t mHdrFullScrenAreaThreshold;
- // vsync period of peak refresh rate
- uint32_t mMinDisplayVsyncPeriod;
-
/* Display hint to notify power hal */
class PowerHalHintWorker : public Worker {
public:
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
index 303033f..7ee98a7 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
@@ -879,7 +879,6 @@ int32_t ExynosDisplayDrmInterface::getDisplayConfigs(
/* key: (width<<32 | height) */
std::map<uint64_t, uint32_t> groupIds;
uint32_t groupId = 0;
- uint32_t min_vsync_period = UINT_MAX;
for (const DrmMode &mode : mDrmConnector->modes()) {
displayConfigs_t configs;
@@ -900,14 +899,11 @@ int32_t ExynosDisplayDrmInterface::getDisplayConfigs(
configs.Xdpi = mm_width ? (mode.h_display() * kUmPerInch) / mm_width : -1;
// Dots per 1000 inches
configs.Ydpi = mm_height ? (mode.v_display() * kUmPerInch) / mm_height : -1;
- // find min vsync period
- if (configs.vsyncPeriod <= min_vsync_period) min_vsync_period = configs.vsyncPeriod;
mExynosDisplay->mDisplayConfigs.insert(std::make_pair(mode.id(), configs));
ALOGD("config group(%d), w(%d), h(%d), vsync(%d), xdpi(%d), ydpi(%d)",
configs.groupId, configs.width, configs.height,
configs.vsyncPeriod, configs.Xdpi, configs.Ydpi);
}
- mExynosDisplay->setMinDisplayVsyncPeriod(min_vsync_period);
}
uint32_t num_modes = static_cast<uint32_t>(mDrmConnector->modes().size());
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp
index 633b1d7..d20a313 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.cpp
@@ -495,22 +495,6 @@ int32_t ExynosPrimaryDisplay::SetCurrentPanelGammaSource(const DisplayType type,
int32_t ExynosPrimaryDisplay::setLhbmState(bool enabled) {
ATRACE_CALL();
- if (enabled) {
- ATRACE_NAME("wait for peak refresh rate");
- for (int32_t i = 0; i <= kLhbmWaitForPeakRefreshRate; i++) {
- if (!isCurrentPeakRefreshRate()) {
- if (i == kLhbmWaitForPeakRefreshRate) {
- ALOGW("setLhbmState(on) wait for peak refresh rate timeout !");
- return TIMED_OUT;
- }
- usleep(mVsyncPeriod / 1000 + 1);
- } else {
- ALOGI_IF(i, "waited %d vsync to reach peak refresh rate", i);
- break;
- }
- }
- }
-
requestLhbm(enabled);
ALOGI("setLhbmState =%d", enabled);
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h
index c4d79ea..e544749 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplay.h
@@ -103,8 +103,6 @@ class ExynosPrimaryDisplay : public ExynosDisplay {
bool mLhbmOn;
bool mLhbmChanged;
int32_t mFramesToReachLhbmPeakBrightness;
- // wait num of vsync periods for peak refresh rate
- static constexpr uint32_t kLhbmWaitForPeakRefreshRate = 10;
std::mutex lhbm_mutex_;
std::condition_variable lhbm_cond_;