diff options
author | Sushil Chauhan <sushilchauhan@codeaurora.org> | 2019-07-24 09:06:45 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2020-03-30 23:59:36 -0700 |
commit | a60e7287bc6a1ef95205b74e31b8f5ca940cc73b (patch) | |
tree | db5cd0849303c673e9c91fc9cf7c97ce370fbba9 /sdm/libs/hwc2/hwc_display.cpp | |
parent | 0ad4f296a6a50221722e7d77f22d29e5243b9d51 (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.cpp | 7 |
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 |