RenderLayer::updateLayerPositions(), which is called on every layer after layout, does backing()->updateAfterLayout() which can call compositor().updateCompositingDescendantGeometry(). This is a potentially O(^2) (but I don't think it ever gets this bad because the tee walk is truncated in various ways). I think it might better to just do a RenderLayerCompositor::updateLayerTreeGeometry() after layout if !compositingLayersNeedRebuild().