From c747ad017f88e29b3b54c75dab9015fd1ed003f4 Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Fri, 11 Jun 2021 14:01:24 -0700 Subject: onPostComposition doesnt need to run on layers without queued frames If we didn't latch a buffer with this frame, we will just return early from onPostComposition and so we can safe traversal overhead by just iterating mLayersWithQueuedFrames directly. Test: Existing tests pass. simpleperf Bug: 186200583 Change-Id: I8f72100f15d2b381e2480ee4c40f6ba79030e092 --- services/surfaceflinger/SurfaceFlinger.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'services/surfaceflinger/SurfaceFlinger.cpp') diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index f02f1e2864..123ff2c274 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -2246,14 +2246,14 @@ void SurfaceFlinger::postComposition() { compositorTiming = getBE().mCompositorTiming; } - mDrawingState.traverse([&](Layer* layer) { + for (const auto& layer: mLayersWithQueuedFrames) { const bool frameLatched = layer->onPostComposition(display, glCompositionDoneFenceTime, mPreviousPresentFences[0].fenceTime, compositorTiming); if (frameLatched) { recordBufferingStats(layer->getName(), layer->getOccupancyHistory(false)); } - }); + } std::vector, sp>> hdrInfoListeners; -- cgit v1.2.3-59-g8ed1b