New issue
Advanced search Search tips

Issue 607720 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment

Snapshots of various layers bugging out. Skia producing incorrect SKPs?

Reported by da...@davidjfox.com, Apr 28 2016

Issue description

UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2716.0 Safari/537.36

Steps to reproduce the problem:
1. Go to the timeline tab in devtools and set it up to capture "Paint" events

2. Record the html file attached to this bug report

3. Stop recording when the page is done loading and view the Layer section in each of the frames (you may have to record a couple refreshes as well since the page loads so quickly)

4. See the bugged output

What is the expected behavior?

What went wrong?
The paints of in the layer view should result in expected.jpg not bugged.jpg

You can see in bugged-layer.jpg that a completely white layer has been created which eventually overlaps other layers... thus creating the bugged output

Did this work before? Yes 

Chrome version: 52.0.2716.0  Channel: canary
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
Flash Version: Shockwave Flash 21.0 r0

Probably a similar problem to  https://crbug.com/587315 

This issue goes away if you don't force the button to have its own layer (remove u-forceLayer in the html)
 
expected.jpg
14.6 KB View Download
bugged.jpg
6.7 KB View Download
text-artifact-and-layer-bug-test.html
1017 bytes View Download
bugged-layer.jpg
13.2 KB View Download

Comment 1 by da...@davidjfox.com, Apr 28 2016

Looks like the since the button was forced to be its own layer but is still relative to its parent layer... Skia created an additional (but unneeded) snapshot of the parent layer. And because this white version of the parent layer has a higher z-index because of the button... it overlaps the blue background.

Comment 2 by allada@chromium.org, Apr 28 2016

Labels: Needs-Feedback
I am unable to recreate this bug, can you give more details and/or video on what happens?

Thanks!

Comment 3 by da...@davidjfox.com, Apr 28 2016

Don't think a video would help you very much, but I can send you the traces so you can import them yourself. What version of chrome and windows are you using? I'd like to check if this is just an issue with my computer.

Bugged Trace: https://drive.google.com/file/d/0Bxc8EXysx0ykWEg1d1BjZ0FCU2s/view?usp=sharing
Expected Trace: https://drive.google.com/file/d/0Bxc8EXysx0ykdDI2VTFXR0N3TjA/view?usp=sharing

Comment 4 by da...@davidjfox.com, Apr 28 2016

Also by not being able to recreate the bug, I take it you mean you always get the expected.jpg result?
Project Member

Comment 5 by sheriffbot@chromium.org, Apr 29 2016

Labels: -Needs-Feedback Needs-Review
Owner: allada@chromium.org
Thank you for providing more feedback. Adding requester "allada@chromium.org" for another review and adding "Needs-Review" label for tracking.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Components: -Platform>DevTools Platform>DevTools>Performance
Labels: -Needs-Review
Owner: caseq@chromium.org
Status: Available (was: Unconfirmed)
Aaaah, yes I was able to reproduce. Sending to caseq@ for further handling.
Cc: caseq@chromium.org chrishtr@chromium.org fmalita@chromium.org
Components: -Platform>DevTools>Performance Platform>DevTools>Performance>Tracing
Labels: -OS-Windows Performance-Tracing OS-All
Owner: pdr@chromium.org
Status: Assigned (was: Available)
I can repro in chrome://tracing also, so probably more general than devtools.

What seems to be going on is we have 4 layers, but only the topmost one is shown/accessible in the cc::DisplayItemList view.

The cc::LayerTreeHostImpl view does show a correctly composited result.  It also allows access to all layer recordings (possible workaround): click on one of the 4 cc::PictureLayerImpls on the left list, then click on the "Snapshot of cc::DisplayItemList..." link.

@pdr are you the right owner for this?
displayitemlist.png
66.9 KB View Download
layertreehostimpl.png
110 KB View Download
Owner: jbroman@chromium.org
Labels: Hotlist-Fixit-PE2016
Labels: Hotlist-Polish
Status: Started (was: Assigned)
I'd be surprised if 15996c4ff96f68c898a5582078c9728420341633 caused changes in display list topology.  Easy enough to test.
Exactly what I'm doing now; just logging my progress on the bug. ;)
I meant I was going to check myself :)

Reverting doesn't fix the problem for me.  Are you bisecting using devtools or chrome://tracing?  I'm testing the latter.
DevTools; the range above is what bisect-builds.py lead me to.
Cc: -fmalita@chromium.org jbroman@chromium.org
Owner: fmalita@chromium.org
Got you.  I can repro the regression (from 15996c4ff96f68c898a5582078c9728420341633) in devtools - but not in chrome://tracing.  So my c#7 is likely a different issue (if any).

Back at me.
And it's pretty consistent for me: at 15996c4ff96f68c898a5582078c9728420341633^ I get the full page (albeit discoloured, but I gather you later fixed that), and at 15996c4ff96f68c898a5582078c9728420341633 I only get the button (again, discoloured).

My repro steps:
1. chrome path/to/test.html
2. right-click, inspect, timeline, record
3. press refresh twice (about 1s apart)
4. look at the last frame, and choose the "Layers" tab
Project Member

Comment 19 by bugdroid1@chromium.org, Jun 10 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cdb916fa992641446848743640537454be31a56a

commit cdb916fa992641446848743640537454be31a56a
Author: fmalita <fmalita@chromium.org>
Date: Fri Jun 10 05:09:55 2016

DevTools: clear layers using transparent color

The default layer backing is transparent.  Clearing with anything else
can interfere with compositing later.

Use transparent color instead of opaque white when clearing layers for
partial playback.

R=caseq@chromium.org,jbroman@chromium.org
BUG= 607720 

Review-Url: https://codereview.chromium.org/2044643006
Cr-Commit-Position: refs/heads/master@{#399106}

[modify] https://crrev.com/cdb916fa992641446848743640537454be31a56a/third_party/WebKit/Source/platform/graphics/ReplayingCanvas.cpp

Project Member

Comment 20 by bugdroid1@chromium.org, Jun 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cdb916fa992641446848743640537454be31a56a

commit cdb916fa992641446848743640537454be31a56a
Author: fmalita <fmalita@chromium.org>
Date: Fri Jun 10 05:09:55 2016

DevTools: clear layers using transparent color

The default layer backing is transparent.  Clearing with anything else
can interfere with compositing later.

Use transparent color instead of opaque white when clearing layers for
partial playback.

R=caseq@chromium.org,jbroman@chromium.org
BUG= 607720 

Review-Url: https://codereview.chromium.org/2044643006
Cr-Commit-Position: refs/heads/master@{#399106}

[modify] https://crrev.com/cdb916fa992641446848743640537454be31a56a/third_party/WebKit/Source/platform/graphics/ReplayingCanvas.cpp

Status: Fixed (was: Started)
Components: Speed>Tracing
Labels: -Performance-Tracing

Sign in to add a comment