summaryrefslogtreecommitdiff
path: root/sdm/libs/hwc2/hwc_display.cpp
diff options
context:
space:
mode:
authorSushil Chauhan <sushilchauhan@codeaurora.org>2019-07-24 09:06:45 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2020-03-30 23:59:36 -0700
commita60e7287bc6a1ef95205b74e31b8f5ca940cc73b (patch)
treedb5cd0849303c673e9c91fc9cf7c97ce370fbba9 /sdm/libs/hwc2/hwc_display.cpp
parent0ad4f296a6a50221722e7d77f22d29e5243b9d51 (diff)
hwc: Handle validation reset during InternalValidate state
If layer stack needs Client compositiontype , HWC display gets into the Internal Validate state. If validation gets reset by another thread in this state, set the geometry change flag on stack to ensure that Client target gets composed by SF. CRs-Fixed: 2497345 Change-Id: If82ed6e64cb1037f17cfa1ea4877632562ae6ca2
Diffstat (limited to 'sdm/libs/hwc2/hwc_display.cpp')
-rw-r--r--sdm/libs/hwc2/hwc_display.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/sdm/libs/hwc2/hwc_display.cpp b/sdm/libs/hwc2/hwc_display.cpp
index c33fc617..299aad76 100644
--- a/sdm/libs/hwc2/hwc_display.cpp
+++ b/sdm/libs/hwc2/hwc_display.cpp
@@ -782,9 +782,14 @@ void HWCDisplay::BuildLayerStack() {
layer_stack_.layers.push_back(layer);
}
+ // If layer stack needs Client composition, HWC display gets into InternalValidate state. If
+ // validation gets reset by any other thread in this state, enforce Geometry change to ensure
+ // that Client target gets composed by SF.
+ bool enforce_geometry_change = (validate_state_ == kInternalValidate) && !validated_;
+
// TODO(user): Set correctly when SDM supports geometry_changes as bitmask
layer_stack_.flags.geometry_changed = UINT32((geometry_changes_ ||
- geometry_changes_on_doze_suspend_) > 0);
+ geometry_changes_on_doze_suspend_) > 0) || enforce_geometry_change;
layer_stack_.flags.config_changed = !validated_;
// Append client target to the layer stack