diff options
author | Devanshi Bansal <quic_devanshi@quicinc.com> | 2022-08-04 13:13:43 +0530 |
---|---|---|
committer | Devanshi Bansal <quic_devanshi@quicinc.com> | 2022-08-04 15:15:19 +0530 |
commit | a831afd54a9a89f901f7f0ba96d374e02d3299dc (patch) | |
tree | 822621e862a345f9936deae17672af4099809b61 | |
parent | 0613cba214addb81425bae84e7093fb33b71945d (diff) |
sdm: fix vts test for SetActiveConfigWithConstraints
-- vts test triggers refresh based on refreshRequired hint
for active config change to take effect.
Change-Id: I84fd260e8b191fb7afb2b09b3321b9e16706446d
-rw-r--r-- | composer/hwc_display.cpp | 6 | ||||
-rw-r--r-- | composer/hwc_display.h | 2 | ||||
-rw-r--r-- | composer/hwc_session.cpp | 1 | ||||
-rw-r--r-- | composer/hwc_session_services.cpp | 1 |
4 files changed, 9 insertions, 1 deletions
diff --git a/composer/hwc_display.cpp b/composer/hwc_display.cpp index f4c2c73a..42b0770f 100644 --- a/composer/hwc_display.cpp +++ b/composer/hwc_display.cpp @@ -2895,7 +2895,7 @@ HWC2::Error HWCDisplay::SetActiveConfigWithConstraints( vsync_period_change_constraints->desiredTimeNanos); out_timeline->refreshRequired = true; - if (info.x_pixels != fb_width_ || info.y_pixels != fb_height_) { + if (is_client_up_ && (info.x_pixels != fb_width_ || info.y_pixels != fb_height_)) { out_timeline->refreshRequired = false; fb_width_ = info.x_pixels; fb_height_ = info.y_pixels; @@ -3571,4 +3571,8 @@ DisplayError HWCDisplay::NotifyFpsMitigation(const float fps, return kErrorNone; } +void HWCDisplay::MarkClientActive(bool is_client_up) { + is_client_up_ = is_client_up; +} + } // namespace sdm diff --git a/composer/hwc_display.h b/composer/hwc_display.h index 0787bc7d..06fb0b94 100644 --- a/composer/hwc_display.h +++ b/composer/hwc_display.h @@ -507,6 +507,7 @@ class HWCDisplay : public DisplayEventHandler { int *active_config_index, uint32_t *num_configs); virtual void SetConfigInfo(std::map<uint32_t, DisplayConfigVariableInfo>& variable_config_map, int active_config_index, uint32_t num_configs) {}; + virtual void MarkClientActive(bool is_client_up); protected: static uint32_t throttling_refresh_rate_; @@ -696,6 +697,7 @@ class HWCDisplay : public DisplayEventHandler { bool draw_method_set_ = false; bool validate_done_ = false; bool client_target_3_1_set_ = false; + bool is_client_up_ = false; }; inline int HWCDisplay::Perform(uint32_t operation, ...) { diff --git a/composer/hwc_session.cpp b/composer/hwc_session.cpp index aaf225ab..751afdf4 100644 --- a/composer/hwc_session.cpp +++ b/composer/hwc_session.cpp @@ -1081,6 +1081,7 @@ void HWCSession::RegisterCallback(int32_t descriptor, hwc2_callback_data_t callb DLOGI("disable idle time"); hwc_display_[HWC_DISPLAY_PRIMARY]->SetIdleTimeoutMs(0,0); is_client_up_ = false; + hwc_display_[HWC_DISPLAY_PRIMARY]->MarkClientActive(false); async_vds_creation_requested_ = false; } } diff --git a/composer/hwc_session_services.cpp b/composer/hwc_session_services.cpp index 4672fe1c..ceaa85d1 100644 --- a/composer/hwc_session_services.cpp +++ b/composer/hwc_session_services.cpp @@ -1599,6 +1599,7 @@ int HWCSession::DisplayConfigImpl::AllowIdleFallback() { DLOGI("enable idle time active_ms:%d inactive_ms:%d",active_ms,inactive_ms); hwc_session_->hwc_display_[HWC_DISPLAY_PRIMARY]->SetIdleTimeoutMs(active_ms, inactive_ms); hwc_session_->is_client_up_ = true; + hwc_session_->hwc_display_[HWC_DISPLAY_PRIMARY]->MarkClientActive(true); hwc_session_->idle_time_inactive_ms_ = inactive_ms; hwc_session_->idle_time_active_ms_ = active_ms; return 0; |