summaryrefslogtreecommitdiff
path: root/libs/gui/LayerState.cpp
diff options
context:
space:
mode:
author Pascal Muetschard <pmuetschard@google.com> 2023-01-27 11:36:11 +0100
committer Pascal Muetschard <pmuetschard@google.com> 2023-02-08 11:26:21 +0100
commitb39918f8a4360e32692aa6353a9b20416e3b7ad3 (patch)
tree80f19078b58fa9321c6a42e249fec8eb912ae852 /libs/gui/LayerState.cpp
parent8a878356682afb9801816785ab7ade6f68384108 (diff)
Adds a flush jank data layer state update type.
A transaction can be sent to SurfaceFlinger with a layer state change of this type to wake up SurfaceFlinger and have it perform the layer state update logic, without updating anything, but triggering any side-effects, especially jank data processing. Bug: 235178314 Bug: 221393601 Bug: 225105422 Test: atest SurfaceFlinger_test Change-Id: Idf458c96cbe8f54224ebde6f517c08b9a5c48a06
Diffstat (limited to 'libs/gui/LayerState.cpp')
-rw-r--r--libs/gui/LayerState.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/libs/gui/LayerState.cpp b/libs/gui/LayerState.cpp
index 8372363185..7772a65dae 100644
--- a/libs/gui/LayerState.cpp
+++ b/libs/gui/LayerState.cpp
@@ -684,6 +684,9 @@ void layer_state_t::merge(const layer_state_t& other) {
what |= eDimmingEnabledChanged;
dimmingEnabled = other.dimmingEnabled;
}
+ if (other.what & eFlushJankData) {
+ what |= eFlushJankData;
+ }
if ((other.what & what) != other.what) {
ALOGE("Unmerged SurfaceComposer Transaction properties. LayerState::merge needs updating? "
"other.what=0x%" PRIX64 " what=0x%" PRIX64 " unmerged flags=0x%" PRIX64,