summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/SurfaceFlinger.cpp
diff options
context:
space:
mode:
author Robert Carr <racarr@google.com> 2021-06-11 14:01:24 -0700
committer Robert Carr <racarr@google.com> 2021-06-15 11:45:17 -0700
commitc747ad017f88e29b3b54c75dab9015fd1ed003f4 (patch)
tree4782941f8bca74be1d15c9b85f0b3d6ecd4a6ff4 /services/surfaceflinger/SurfaceFlinger.cpp
parent13a864c4702e4303b6ccb26ae0cbe573bf62e2da (diff)
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
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp4
1 files changed, 2 insertions, 2 deletions
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<std::pair<std::shared_ptr<compositionengine::Display>, sp<HdrLayerInfoReporter>>>
hdrInfoListeners;