[sf] optimize snapshot updates
Modify the snapshot update logic so its easier to maintain. Instead of walking the tree and updating all the snapshots, this cl introduces a preliminary step of walking though all the requested changes and updating the affected snapshots by merging the changes to the snapshot. This is followed by walking down the tree and updating properties that are dependent on the parent snapshots. If the changes are confined to buffer updates, then the fast path avoids walking down the tree. Bug: 238781169 Test: presubmit Change-Id: Ic9aa66c376bf7ea80e38b321dd08b8d0f69559a9
Showing
- libs/gui/include/gui/LayerState.h 3 additions, 3 deletionslibs/gui/include/gui/LayerState.h
- services/surfaceflinger/FrontEnd/LayerHierarchy.cpp 1 addition, 1 deletionservices/surfaceflinger/FrontEnd/LayerHierarchy.cpp
- services/surfaceflinger/FrontEnd/LayerHierarchy.h 4 additions, 4 deletionsservices/surfaceflinger/FrontEnd/LayerHierarchy.h
- services/surfaceflinger/FrontEnd/LayerLifecycleManager.cpp 23 additions, 1 deletionservices/surfaceflinger/FrontEnd/LayerLifecycleManager.cpp
- services/surfaceflinger/FrontEnd/LayerLifecycleManager.h 4 additions, 0 deletionsservices/surfaceflinger/FrontEnd/LayerLifecycleManager.h
- services/surfaceflinger/FrontEnd/LayerSnapshot.cpp 212 additions, 8 deletionsservices/surfaceflinger/FrontEnd/LayerSnapshot.cpp
- services/surfaceflinger/FrontEnd/LayerSnapshot.h 35 additions, 3 deletionsservices/surfaceflinger/FrontEnd/LayerSnapshot.h
- services/surfaceflinger/FrontEnd/LayerSnapshotBuilder.cpp 148 additions, 159 deletionsservices/surfaceflinger/FrontEnd/LayerSnapshotBuilder.cpp
- services/surfaceflinger/FrontEnd/LayerSnapshotBuilder.h 3 additions, 1 deletionservices/surfaceflinger/FrontEnd/LayerSnapshotBuilder.h
- services/surfaceflinger/FrontEnd/RequestedLayerState.cpp 15 additions, 3 deletionsservices/surfaceflinger/FrontEnd/RequestedLayerState.cpp
- services/surfaceflinger/FrontEnd/RequestedLayerState.h 4 additions, 2 deletionsservices/surfaceflinger/FrontEnd/RequestedLayerState.h
- services/surfaceflinger/FrontEnd/TransactionHandler.cpp 1 addition, 1 deletionservices/surfaceflinger/FrontEnd/TransactionHandler.cpp
- services/surfaceflinger/LayerProtoHelper.cpp 1 addition, 1 deletionservices/surfaceflinger/LayerProtoHelper.cpp
- services/surfaceflinger/SurfaceFlinger.cpp 3 additions, 2 deletionsservices/surfaceflinger/SurfaceFlinger.cpp
- services/surfaceflinger/tests/unittests/LayerSnapshotTest.cpp 14 additions, 9 deletions...ices/surfaceflinger/tests/unittests/LayerSnapshotTest.cpp
Loading
Please register or sign in to comment