diff options
author | Chris Lu <luchris@google.com> | 2023-12-08 07:28:37 +0000 |
---|---|---|
committer | Shiyong Li <shiyongli@google.com> | 2023-12-12 21:43:22 +0000 |
commit | ae59bf782af735a45e16b75f4dee43ac173c8808 (patch) | |
tree | aa0c0b3e8c451c7dfc71f5d92c99702f1d5ce62f | |
parent | 495a4c891ce0280f7673ca3f7691e39b898d4d13 (diff) | |
download | common-ae59bf782af735a45e16b75f4dee43ac173c8808.tar.gz |
libhwc2.1: avoid SF idle timer working in pseudo VRR mode
Use the API to check the VRR mode, and return true for panel
idle timer if pseudo VRR is used.
Bug: 315271499
Test: SF idle timer is not working in pseudo VRR mode
Change-Id: I80962c3365466677d34228e5481a3c3824c00055
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp index e596c14..badaa61 100644 --- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp +++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp @@ -461,9 +461,14 @@ void ExynosDisplayDrmInterface::destroyLayer(ExynosLayer *layer) { } int32_t ExynosDisplayDrmInterface::getDisplayIdleTimerSupport(bool &outSupport) { - if (mIsVrrModeSupported) { + if (isFullVrrSupported()) { outSupport = false; return NO_ERROR; + } else if (isPseudoVrrSupported()) { + // Retuen true to avoid SF idle timer working. We insert frames manually + // for pseudo VRR, so ideally panel idle should be disabled in the driver. + outSupport = true; + return NO_ERROR; } auto [ret, support] = mDrmConnector->panel_idle_support().value(); |