Merge "composer: enable POMS during Doze switch based on a property"
diff --git a/composer/hwc_display_builtin.cpp b/composer/hwc_display_builtin.cpp
index b4cdbaf..95b94a7 100644
--- a/composer/hwc_display_builtin.cpp
+++ b/composer/hwc_display_builtin.cpp
@@ -127,9 +127,9 @@
color_mode_ = new HWCColorMode(display_intf_);
color_mode_->Init();
- int optimize_refresh = 0;
- HWCDebugHandler::Get()->GetProperty(ENABLE_OPTIMIZE_REFRESH, &optimize_refresh);
- enable_optimize_refresh_ = (optimize_refresh == 1);
+ int value = 0;
+ HWCDebugHandler::Get()->GetProperty(ENABLE_OPTIMIZE_REFRESH, &value);
+ enable_optimize_refresh_ = (value == 1);
if (enable_optimize_refresh_) {
DLOGI("Drop redundant drawcycles %" PRIu64 , id_);
}
@@ -153,6 +153,13 @@
&window_rect_.right, &window_rect_.bottom) != kErrorUndefined;
DLOGI("Window rect : [%f %f %f %f]", window_rect_.left, window_rect_.top,
window_rect_.right, window_rect_.bottom);
+
+ value = 0;
+ HWCDebugHandler::Get()->GetProperty(ENABLE_POMS_DURING_DOZE, &value);
+ enable_poms_during_doze_ = (value == 1);
+ if (enable_poms_during_doze_) {
+ DLOGI("Enable POMS during Doze mode %" PRIu64 , id_);
+ }
}
uint32_t config_index = 0;
@@ -1264,6 +1271,12 @@
}
bool HWCDisplayBuiltIn::HasSmartPanelConfig(void) {
+ if (!enable_poms_during_doze_) {
+ uint32_t config = 0;
+ GetActiveDisplayConfig(&config);
+ return IsSmartPanelConfig(config);
+ }
+
for (auto &config : variable_config_map_) {
if (config.second.smart_panel) {
return true;
diff --git a/composer/hwc_display_builtin.h b/composer/hwc_display_builtin.h
index 3eff942..f41c1a5 100644
--- a/composer/hwc_display_builtin.h
+++ b/composer/hwc_display_builtin.h
@@ -203,6 +203,7 @@
void *output_buffer_base_ = nullptr;
bool pending_refresh_ = true;
bool enable_optimize_refresh_ = false;
+ bool enable_poms_during_doze_ = false;
// Members for 1 frame capture in a client provided buffer
bool frame_capture_buffer_queued_ = false;
diff --git a/include/display_properties.h b/include/display_properties.h
index a0e445f..b907336 100644
--- a/include/display_properties.h
+++ b/include/display_properties.h
@@ -120,6 +120,7 @@
#define ENABLE_BW_LIMITS DISPLAY_PROP("enable_bw_limits")
#define DISABLE_ROTATOR_PRE_DOWNSCALER_PROP DISPLAY_PROP("disable_pre_downscaler")
#define DISABLE_INLINE_ROTATOR_UI_PROP DISPLAY_PROP("disable_inline_rotator_ui")
+#define ENABLE_POMS_DURING_DOZE DISPLAY_PROP("enable_poms_during_doze")
// Add all vendor.display properties above