NEW 201330
On the first compositing update, "drawsContent" can be wrong
https://bugs.webkit.org/show_bug.cgi?id=201330
Summary On the first compositing update, "drawsContent" can be wrong
Simon Fraser (smfr)
Reported 2019-08-29 21:40:28 PDT
There's an ordering dependency in computing "requiresOwnBackingStore" that causes us to set drawsContent on the GrpahicsLayer when we don't need to, causing test failures: (bounds 342.00 240.00) + (drawsContent 1) (childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 -0.00] [0.00 0.00 0.00 1.00]) The issue is that updateDrawsContent(contentsInfo); happens in RenderLayerBacking::updateAfterDescendants(), but RenderLayerCompositor::requiresOwnBackingStore() on descendants runs before this, and consults compositingAncestorLayer->backing()->graphicsLayer()->drawsContent()
Attachments
Patch (31.99 KB, patch)
2019-09-03 21:44 PDT, Simon Fraser (smfr)
koivisto: review+
Simon Fraser (smfr)
Comment 1 2019-08-30 18:28:30 PDT
I need to tease apart "requires own backing store" from "paints into ancestor". RenderLayerBacking::paintsContent() currently checks isPaintDestinationForDescendantLayers(), which walks descendants without their own backing store.
Simon Fraser (smfr)
Comment 2 2019-09-03 21:44:44 PDT
Antti Koivisto
Comment 3 2019-09-04 11:01:13 PDT
Comment on attachment 377955 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=377955&action=review > Source/WebCore/rendering/RenderLayerBacking.h:87 > + void updateGeometry(const RenderLayer* compositingAncestor, const RenderLayer* compositedAncestorWithBackingStore); Can we start passing the traversal state like I suggested before? > Source/WebCore/rendering/RenderLayerCompositor.cpp:1238 > + layerBacking->updateGeometry(traversalState.compositingAncestor, traversalStateForDescendants.paintDestinationAncestor); It seems wrong this is consulting traversalStateForDescendants while calling into backing of the current layer.
Note You need to log in before you can comment on or make changes to this bug.