Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 53f27d96 authored by Andrei Stanciu's avatar Andrei Stanciu Committed by Android (Google) Code Review
Browse files

Merge "Quick optimization for committing Layers"

parents 249afbf1 dadac5a0
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -3046,15 +3046,19 @@ void SurfaceFlinger::commitTransactionLocked() {
    // clear the "changed" flags in current state
    mCurrentState.colorMatrixChanged = false;

    for (const auto& rootLayer : mDrawingState.layersSortedByZ) {
        rootLayer->commitChildList();
    }
    // TODO(b/163019109): See if this traversal is needed at all...
    if (!mOffscreenLayers.empty()) {
        mDrawingState.traverse([&](Layer* layer) {
        layer->commitChildList();

            // If the layer can be reached when traversing mDrawingState, then the layer is no
            // longer offscreen. Remove the layer from the offscreenLayer set.
            if (mOffscreenLayers.count(layer)) {
                mOffscreenLayers.erase(layer);
            }
        });
    }

    commitOffscreenLayers();
    mDrawingState.traverse([&](Layer* layer) { layer->updateMirrorInfo(); });