Add promise for buffer releaseFence to LayerFE.
Buffers can only be released when a release fence fires. Instead of tracking and waiting for each layer's Futures to complete, LayerFE can keep track of its own Future via a promise of a fence. This cleans up the shared futures that are currently being tracked and allow us to setup for eventual goals to reduce the number of screenshot calls to the main thread. Tests using a virtual display are modified to use the mirrorDisplay API with a unique layerstack. Bug: b/294936197, b/285553970 Test: manual (screenshot, camera, rotation, picture-in-picture) Test: presubmit Test: atest CompositionEnginePostCompositionTest Test: atest SurfaceFlinger_test Change-Id: I3a0af2cd02d3d010a1ea7c860c5cb0bc20837ec2
Showing
- services/surfaceflinger/CompositionEngine/include/compositionengine/CompositionEngine.h 3 additions, 0 deletions...itionEngine/include/compositionengine/CompositionEngine.h
- services/surfaceflinger/CompositionEngine/include/compositionengine/LayerFE.h 22 additions, 0 deletions...ger/CompositionEngine/include/compositionengine/LayerFE.h
- services/surfaceflinger/CompositionEngine/include/compositionengine/impl/CompositionEngine.h 2 additions, 0 deletions...Engine/include/compositionengine/impl/CompositionEngine.h
- services/surfaceflinger/CompositionEngine/include/compositionengine/mock/CompositionEngine.h 1 addition, 0 deletions...Engine/include/compositionengine/mock/CompositionEngine.h
- services/surfaceflinger/CompositionEngine/include/compositionengine/mock/LayerFE.h 4 additions, 0 deletions...ompositionEngine/include/compositionengine/mock/LayerFE.h
- services/surfaceflinger/CompositionEngine/src/CompositionEngine.cpp 29 additions, 0 deletions...urfaceflinger/CompositionEngine/src/CompositionEngine.cpp
- services/surfaceflinger/CompositionEngine/src/Output.cpp 14 additions, 5 deletionsservices/surfaceflinger/CompositionEngine/src/Output.cpp
- services/surfaceflinger/CompositionEngine/tests/CompositionEngineTest.cpp 31 additions, 1 deletion...flinger/CompositionEngine/tests/CompositionEngineTest.cpp
- services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp 122 additions, 0 deletions...ces/surfaceflinger/CompositionEngine/tests/OutputTest.cpp
- services/surfaceflinger/Layer.cpp 69 additions, 16 deletionsservices/surfaceflinger/Layer.cpp
- services/surfaceflinger/Layer.h 19 additions, 1 deletionservices/surfaceflinger/Layer.h
- services/surfaceflinger/LayerFE.cpp 27 additions, 0 deletionsservices/surfaceflinger/LayerFE.cpp
- services/surfaceflinger/LayerFE.h 8 additions, 0 deletionsservices/surfaceflinger/LayerFE.h
- services/surfaceflinger/SurfaceFlinger.cpp 115 additions, 41 deletionsservices/surfaceflinger/SurfaceFlinger.cpp
- services/surfaceflinger/SurfaceFlinger.h 15 additions, 0 deletionsservices/surfaceflinger/SurfaceFlinger.h
- services/surfaceflinger/TransactionCallbackInvoker.cpp 11 additions, 2 deletionsservices/surfaceflinger/TransactionCallbackInvoker.cpp
- services/surfaceflinger/TransactionCallbackInvoker.h 2 additions, 1 deletionservices/surfaceflinger/TransactionCallbackInvoker.h
- services/surfaceflinger/common/FlagManager.cpp 2 additions, 0 deletionsservices/surfaceflinger/common/FlagManager.cpp
- services/surfaceflinger/common/include/common/FlagManager.h 1 addition, 0 deletionsservices/surfaceflinger/common/include/common/FlagManager.h
- services/surfaceflinger/surfaceflinger_flags_new.aconfig 11 additions, 0 deletionsservices/surfaceflinger/surfaceflinger_flags_new.aconfig
Loading
Please register or sign in to comment