overflow-positioning.html fails for spv175. |
||||
Issue descriptionI have a WIP patch[1] that changes layout tests running in single-threaded mode to actually run through the update phases in the compositor, which is closer to production behaviour. virtual/spv175/compositing/overflow/overflow-positioning.html is failing here with the following assert: STDERR: [1:1:0208/173811.204121:FATAL:PaintChunksToCcLayer.cpp(235)] Check failed: state_stack_.size(). Error: Chunk layerized into a layer with an effect that's too deep. STDERR: #0 0x00000313927c base::debug::StackTrace::StackTrace() STDERR: #1 0x00000315778c logging::LogMessage::~LogMessage() STDERR: #2 0x000004d0cbce blink::PaintChunksToCcLayer::ConvertInto() STDERR: #3 0x000004cee639 blink::GraphicsLayer::PaintContents() STDERR: #4 0x00000675d3a5 cc_blink::WebContentLayerImpl::PaintContentsToDisplayList() STDERR: #5 0x00000675d3f2 cc_blink::WebContentLayerImpl::PaintContentsToDisplayList() STDERR: #6 0x000004787b3a cc::PictureLayer::Update() STDERR: #7 0x0000042590da cc::LayerTreeHost::PaintContent() STDERR: #8 0x000004258372 cc::LayerTreeHost::DoUpdateLayers() STDERR: #9 0x0000042579c2 cc::LayerTreeHost::UpdateLayers() STDERR: #10 0x00000431c34f cc::SingleThreadProxy::CompositeImmediately() STDERR: #11 0x000004257bea cc::LayerTreeHost::Composite() I ran the test with threaded compositing to verify if this was a bug with the patch itself or something in the test and I get the same failure when running with threaded compositing. [1]: https://chromium-review.googlesource.com/c/chromium/src/+/900205
,
Feb 9 2018
Which platform?
,
Feb 9 2018
,
Feb 9 2018
Looking into it now.
,
Feb 9 2018
This breaks because a parent object of a composited child changed its effect node by adding opacity. As a result, the subtree needsRepaint recursion on that style change did not go into the child composited layer, which needs repaint because its local border box properties changed.
,
Feb 10 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/569152c32142c2e321c09f3e396423832a960695 commit 569152c32142c2e321c09f3e396423832a960695 Author: Chris Harrelson <chrishtr@chromium.org> Date: Sat Feb 10 02:10:42 2018 [SPv175] setNeedsRepaint when local border box properties change. When ancestors change their paint properties, the LocalBorderBoxProperties of a descendant can update. In SPv175 we need this to cause a repaint, because the descendant's paint chunks depend on the LocalBorderBoxProperties. This is only reproducible in SPv175 with a composited child layer, because otherwise a recursive setNeedsRepaint would apply during style update; that recursive update does not recurse into composited children. In SPv2 mode it should reproduce regardless. Bug: 810684 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: Ic2f7303cde077ff7ae3fdf078d7aac1901a1b25f Reviewed-on: https://chromium-review.googlesource.com/912458 Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> Commit-Queue: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#535931} [modify] https://crrev.com/569152c32142c2e321c09f3e396423832a960695/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp [modify] https://crrev.com/569152c32142c2e321c09f3e396423832a960695/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp [modify] https://crrev.com/569152c32142c2e321c09f3e396423832a960695/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.h
,
Feb 10 2018
|
||||
►
Sign in to add a comment |
||||
Comment 1 by khushals...@chromium.org
, Feb 9 2018