diff options
author | Midas Chien <midaschieh@google.com> | 2023-09-15 01:12:53 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-09-15 01:12:53 +0000 |
commit | 14404956af1061fedb8247d8091e7016fe8df1df (patch) | |
tree | d20e668977a8ba3d5d782604f42a3f456152a721 | |
parent | d4dfc5840b3d46d6b47e3a3afa4b0403fc8969b3 (diff) | |
parent | 58ed9009e38d66a8b56172cc09ddbf8ba0d13da7 (diff) | |
download | common-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.cpp | 8 | ||||
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp | 9 |
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; |