New issue
Advanced search Search tips

Issue 810684 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug



Sign in to add a comment

overflow-positioning.html fails for spv175.

Project Member Reported by khushals...@chromium.org, Feb 9 2018

Issue description

I 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
 
Components: Blink>Paint
Cc: khushals...@chromium.org
Labels: Test-Layout
Which platform?
Labels: OS-Linux OS-Mac OS-Windows
Looking into it now.
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.
Project Member

Comment 6 by bugdroid1@chromium.org, 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

Status: Fixed (was: Assigned)

Sign in to add a comment