Factor our mChildrenChanged from doTransaction
We are trying to eliminate the whole doTransaction traversal. Following
queued-transaction changes we can update various values on flinger
directly rather than in-directing through the main-thread.
Test: Existing tests pass. simpleperf
Bug: 186200583
Change-Id: I0536f889602ce0801e9f79881bbe1adb7b163d46
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
index 22d17eb..81f569a 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -1228,8 +1228,13 @@
// don't need synchronization
State mDrawingState{LayerVector::StateSet::Drawing};
bool mVisibleRegionsDirty = false;
- // Set during transaction commit stage to track if the input info for a layer has changed.
+
+ // Set during transaction application stage to track if the input info or children
+ // for a layer has changed.
+ // TODO: Also move visibleRegions over to a boolean system.
bool mInputInfoChanged = false;
+ bool mSomeChildrenChanged;
+
bool mGeometryInvalid = false;
bool mAnimCompositionPending = false;