Reorder the layers sent to HWC
Bug: 163076219 Test: manual Test: I53fc851eca876d44ba7cb9347f1c62d659c38932 Remove OutputLayerCompositionState.z, LayerStateField::ZOrder, and LayerState::mZOrder. Note that the layers are already stored in the proper z-order (back to front). When sending them to HWC, specify order with a local variable. The LayerState and -Field ZOrders were used to treat layers with different z's as a differing field for comparison. But in practice, a change in z order will change the geometry, resulting in recreating all CachedSets. (Add a test to verify this changes the NonBufferHash.) Add peekThroughLayer to overrideInfo, which is used by Output to reorder the layers and to change the blendMode so the peekThroughLayer can be seen through it. In Flattener::mergeWithCachedSets, update overrideInfo to include peekThroughLayer, using a new accessor on CachedSet. Add more info to CachedSet::dump(). Test updates: - Remove tests that verify the state of OutputLayerCompositionState.z and ZOrder. - In LayerStackTest#getApproximateMatch_doesNotMatchManyDifferences, we were setting kMaxDifferingFields + 1 fields to be different. Removing z made these two stacks match, so replace with another (arbitrary) field. - Fix OutputLayer tests to expect calling the new method LayerFE::hasRoundedCorners Latest patch set fixes a rebase error in includesOverrideInfoIfPresent. Change-Id: I845a0f7016c57652045f6f5a082175304272347f
Showing
- services/surfaceflinger/CompositionEngine/include/compositionengine/OutputLayer.h 5 additions, 2 deletions...CompositionEngine/include/compositionengine/OutputLayer.h
- services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayer.h 4 additions, 2 deletions...sitionEngine/include/compositionengine/impl/OutputLayer.h
- services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayerCompositionState.h 10 additions, 3 deletions...lude/compositionengine/impl/OutputLayerCompositionState.h
- services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/CachedSet.h 5 additions, 0 deletions...Engine/include/compositionengine/impl/planner/CachedSet.h
- services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/LayerState.h 18 additions, 22 deletions...ngine/include/compositionengine/impl/planner/LayerState.h
- services/surfaceflinger/CompositionEngine/include/compositionengine/mock/OutputLayer.h 2 additions, 1 deletion...sitionEngine/include/compositionengine/mock/OutputLayer.h
- services/surfaceflinger/CompositionEngine/src/Output.cpp 24 additions, 11 deletionsservices/surfaceflinger/CompositionEngine/src/Output.cpp
- services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp 13 additions, 8 deletions...ices/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
- services/surfaceflinger/CompositionEngine/src/OutputLayerCompositionState.cpp 0 additions, 1 deletion...ger/CompositionEngine/src/OutputLayerCompositionState.cpp
- services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp 9 additions, 0 deletions...urfaceflinger/CompositionEngine/src/planner/CachedSet.cpp
- services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp 4 additions, 0 deletions...urfaceflinger/CompositionEngine/src/planner/Flattener.cpp
- services/surfaceflinger/CompositionEngine/src/planner/LayerState.cpp 3 additions, 4 deletions...rfaceflinger/CompositionEngine/src/planner/LayerState.cpp
- services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp 31 additions, 17 deletions...urfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp
- services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp 22 additions, 21 deletions...ces/surfaceflinger/CompositionEngine/tests/OutputTest.cpp
- services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp 1 addition, 42 deletions...linger/CompositionEngine/tests/planner/LayerStateTest.cpp
- services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp 29 additions, 7 deletions...flinger/CompositionEngine/tests/planner/PredictorTest.cpp
Loading
Please register or sign in to comment