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

Commit e9c5fd88 authored by Chris Craik's avatar Chris Craik
Browse files

Skip layer updates for layerless nodes

bug:26535405

Change-Id: I4d5ea8401f59815715c5b51f88d549474876160c
parent 477e26cf
Loading
Loading
Loading
Loading
+18 −13
Original line number Diff line number Diff line
@@ -51,6 +51,10 @@ FrameBuilder::FrameBuilder(const LayerUpdateQueue& layers, const SkRect& clip,
    // updated in the order they're passed in (mLayerBuilders are issued to Renderer in reverse)
    for (int i = layers.entries().size() - 1; i >= 0; i--) {
        RenderNode* layerNode = layers.entries()[i].renderNode;
        // only schedule repaint if node still on layer - possible it may have been
        // removed during a dropped frame, but layers may still remain scheduled so
        // as not to lose info on what portion is damaged
        if (CC_LIKELY(layerNode->getLayer() != nullptr)) {
            const Rect& layerDamage = layers.entries()[i].damage;
            layerNode->computeOrdering();

@@ -66,6 +70,7 @@ FrameBuilder::FrameBuilder(const LayerUpdateQueue& layers, const SkRect& clip,
            }
            restoreForLayer();
        }
    }

    // Defer Fbo0
    for (const sp<RenderNode>& node : nodes) {