summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMidas Chien <midaschieh@google.com>2023-09-15 01:12:53 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-09-15 01:12:53 +0000
commit14404956af1061fedb8247d8091e7016fe8df1df (patch)
treed20e668977a8ba3d5d782604f42a3f456152a721
parentd4dfc5840b3d46d6b47e3a3afa4b0403fc8969b3 (diff)
parent58ed9009e38d66a8b56172cc09ddbf8ba0d13da7 (diff)
downloadcommon-14404956af1061fedb8247d8091e7016fe8df1df.tar.gz
Merge "libhwc2.1: update desired mode state if it is not applied" into udc-qpr-dev am: 58ed9009e3
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/google/graphics/common/+/24704166 Change-Id: I13a331fde1efe41eb9eae0f42e84c88962cc19f5 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--libhwc2.1/libdevice/ExynosDisplay.cpp8
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp9
2 files changed, 8 insertions, 9 deletions
diff --git a/libhwc2.1/libdevice/ExynosDisplay.cpp b/libhwc2.1/libdevice/ExynosDisplay.cpp
index a76c271..994c699 100644
--- a/libhwc2.1/libdevice/ExynosDisplay.cpp
+++ b/libhwc2.1/libdevice/ExynosDisplay.cpp
@@ -3548,6 +3548,7 @@ int32_t ExynosDisplay::presentDisplay(int32_t* outRetireFence) {
if ((mLayers.size() == 0) &&
(mType != HWC_DISPLAY_VIRTUAL)) {
+ ALOGI("%s:: layer size is 0", __func__);
clearDisplay();
*outRetireFence = -1;
mLastRetireFence = fence_close(mLastRetireFence, this,
@@ -3558,6 +3559,7 @@ int32_t ExynosDisplay::presentDisplay(int32_t* outRetireFence) {
}
if (!checkFrameValidation()) {
+ ALOGW("%s: checkFrameValidation fail", __func__);
clearDisplay();
*outRetireFence = -1;
mLastRetireFence = fence_close(mLastRetireFence, this,
@@ -4175,8 +4177,8 @@ int32_t ExynosDisplay::setActiveConfigWithConstraints(hwc2_config_t config,
mXres, mYres, mVsyncPeriod, mXdpi, mYdpi);
if (mConfigRequestState == hwc_request_state_t::SET_CONFIG_STATE_REQUESTED) {
- DISPLAY_LOGI("%s, previous request config is processing (mDesiredConfig: %d)", __func__,
- mDesiredConfig);
+ DISPLAY_LOGI("%s, previous request config is processing (desird %d, new request %d)",
+ __func__, mDesiredConfig, config);
}
/* Config would be requested on present time */
mConfigRequestState = hwc_request_state_t::SET_CONFIG_STATE_PENDING;
@@ -4408,7 +4410,7 @@ int32_t ExynosDisplay::doDisplayConfigPostProcess(ExynosDevice *dev)
current, actualChangeTime,
mVsyncPeriodChangeConstraints.desiredTimeNanos);
if (actualChangeTime >= mVsyncPeriodChangeConstraints.desiredTimeNanos) {
- DISPLAY_LOGD(eDebugDisplayConfig, "Request setActiveConfig");
+ DISPLAY_LOGD(eDebugDisplayConfig, "Request setActiveConfig %d", mDesiredConfig);
needSetActiveConfig = true;
DISPLAY_ATRACE_INT("Pending ActiveConfig", 0);
DISPLAY_ATRACE_INT64("TimeToChangeConfig", 0);
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
index 84c1b97..e8a4001 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
@@ -1243,8 +1243,9 @@ int32_t ExynosDisplayDrmInterface::setActiveConfigWithConstraints(
return HWC2_ERROR_BAD_CONFIG;
}
- if ((mActiveModeState.blob_id != 0) &&
- (mActiveModeState.mode.id() == config)) {
+ if (mDesiredModeState.needsModeSet()) {
+ ALOGI("Previous mode change %d request is not applied", mDesiredModeState.mode.id());
+ } else if ((mActiveModeState.blob_id != 0) && (mActiveModeState.mode.id() == config)) {
ALOGD("%s:: same mode %d", __func__, config);
/* trigger resetConfigRequestStateLocked() */
mVsyncCallback.setDesiredVsyncPeriod(nsecsPerSec / mActiveModeState.mode.v_refresh());
@@ -1252,10 +1253,6 @@ int32_t ExynosDisplayDrmInterface::setActiveConfigWithConstraints(
return HWC2_ERROR_NONE;
}
- if (mDesiredModeState.needsModeSet()) {
- ALOGD("Previous mode change request is not applied");
- }
-
int32_t ret = HWC2_ERROR_NONE;
DrmModeAtomicReq drmReq(this);
uint32_t modeBlob = 0;