New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 774544 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression



Sign in to add a comment

16.9%-54.3% regression in rasterize_and_record_micro.top_25 at 508328:508364

Project Member Reported by primiano@chromium.org, Oct 13 2017

Issue description

See the link to graphs below.
 
Project Member

Comment 1 by 42576172...@developer.gserviceaccount.com, Oct 13 2017

All graphs for this bug:
  https://chromeperf.appspot.com/group_report?bug_id=774544

(For debugging:) Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?sid=f048cdaf8752874928ae2b54ff446c7c2064b5d0c7e23decf8921c3f3015b00f


Bot(s) for this bug's original alert(s):

android-webview-nexus6
Project Member

Comment 3 by 42576172...@developer.gserviceaccount.com, Oct 13 2017

Cc: schenney@chromium.org
Owner: schenney@chromium.org
Status: Assigned (was: Untriaged)

=== Auto-CCing suspected CL author schenney@chromium.org ===

Hi schenney@chromium.org, the bisect results pointed to your CL, please take a look at the
results.


=== BISECT JOB RESULTS ===
Perf regression found with culprit

Suspected Commit
  Author : Stephen Chenney
  Commit : 8ff2371257ac4f24d77da4a62569840a53c49b47
  Date   : Thu Oct 12 13:11:52 2017
  Subject: Prevent squashing of border-radius layers

Bisect Details
  Configuration: android_webview_nexus6_aosp_perf_bisect
  Benchmark    : rasterize_and_record_micro.top_25
  Metric       : record_time/file___static_top_25_yahoogames.html
  Change       : 49.27% | 0.592333333333 -> 0.884166666667

Revision             Result                      N
chromium@508327      0.592333 +- 0.00658281      6      good
chromium@508328      0.587 +- 0.00979796         6      good
chromium@508329      0.901167 +- 0.0162121       6      bad       <--
chromium@508330      0.896167 +- 0.0166383       6      bad
chromium@508332      0.900833 +- 0.0165781       6      bad
chromium@508337      0.898167 +- 0.0148605       6      bad
chromium@508346      0.906 +- 0.004              6      bad
chromium@508364      0.884167 +- 0.0121175       6      bad

To Run This Test
  src/tools/perf/run_benchmark -v --browser=android-webview --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests --story-filter=file...static.top.25.yahoogames.html rasterize_and_record_micro.top_25

More information on addressing performance regressions:
  http://g.co/ChromePerformanceRegressions

Debug information about this bisect:
  https://chromeperf.appspot.com/buildbucket_job_status/8965831430179317952


For feedback, file a bug with component Speed>Bisection
It is not unexpected to see rendering speed regressions on sites that are impacted by this bug fix. But it is the case that previously we were doing the wrong thing and now we are showing the right thing.

When I get a chance I will look at the page set and determine what if anything can be done to improve the situation. But I am not hopeful.
Components: Blink>Compositing
Project Member

Comment 6 by 42576172...@developer.gserviceaccount.com, Oct 13 2017

 Issue 774554  has been merged into this issue.
Project Member

Comment 7 by 42576172...@developer.gserviceaccount.com, Oct 14 2017

Issue 774558 has been merged into this issue.
Project Member

Comment 8 by 42576172...@developer.gserviceaccount.com, Oct 18 2017

Cc: chiniforooshan@chromium.org
 Issue 775971  has been merged into this issue.
Project Member

Comment 9 by 42576172...@developer.gserviceaccount.com, Oct 19 2017

 Issue 776371  has been merged into this issue.
Project Member

Comment 10 by 42576172...@developer.gserviceaccount.com, Oct 20 2017

Cc: pmeenan@chromium.org
 Issue 776739  has been merged into this issue.
Project Member

Comment 11 by 42576172...@developer.gserviceaccount.com, Oct 20 2017

Cc: simonhatch@chromium.org marian...@google.com perezju@chromium.org
 Issue 776393  has been merged into this issue.
Project Member

Comment 12 by 42576172...@developer.gserviceaccount.com, Oct 20 2017

 Issue 776738  has been merged into this issue.
Project Member

Comment 13 by bugdroid1@chromium.org, Oct 25 2017

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

commit 2faf4aa8f809aee54bd228d0fb375bbd67b4d2be
Author: Stephen Chenney <schenney@chromium.org>
Date: Wed Oct 25 18:58:49 2017

Tighten the restriction on squashing for border radius

The fix for https://bugs.chromium.org/p/chromium/issues/detail?id=761298
prevents sqaushing of anything that has a border radius, but in reality
we only need to prevent squashing when the layer actually clips a
child composited layer. The composited part is not known at the
time we compute squashing disallowed reasons, so we can't use that. But
we can make sure that overflow does clip.

R=chrishtr@chromium.org
BUG= 776736 , 774544 

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I0ec1b8d8e2c0ebfef5004f313d49ae41f14e647e
Reviewed-on: https://chromium-review.googlesource.com/734140
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511540}
[modify] https://crrev.com/2faf4aa8f809aee54bd228d0fb375bbd67b4d2be/third_party/WebKit/Source/core/paint/compositing/CompositingLayerAssigner.cpp

Project Member

Comment 14 by bugdroid1@chromium.org, Nov 3 2017

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

commit c24e45d72fd1003e4b49341650d9c40b709752c2
Author: Stephen Chenney <schenney@chromium.org>
Date: Fri Nov 03 19:25:48 2017

Use sibling HasInlineTransform to enable more squashing

Traverse previous siblings of a layer looking for inline transforms
as a way to enable more squashing when border radius is present.
This targets the squashing restriction at the specific case that
generated the original bug, and does not cause issues in other
tests (that is, next siblings do not cause the original bug and
only inline transforms cause the original bug).

Telemetry tests on MacOS show a 3% or more improvement on time
to first paint for load tests.

TBR=chrishtr@chromium.org

Bug:  776736 , 774544 , 780244
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I1f9973e5c52d40a47c05dd2d8310bb66de3e0dfa
Reviewed-on: https://chromium-review.googlesource.com/743694
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513869}
[modify] https://crrev.com/c24e45d72fd1003e4b49341650d9c40b709752c2/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/c24e45d72fd1003e4b49341650d9c40b709752c2/third_party/WebKit/Source/core/paint/PaintLayer.h
[modify] https://crrev.com/c24e45d72fd1003e4b49341650d9c40b709752c2/third_party/WebKit/Source/core/paint/compositing/CompositingLayerAssigner.cpp
[modify] https://crrev.com/c24e45d72fd1003e4b49341650d9c40b709752c2/third_party/WebKit/Source/core/paint/compositing/CompositingRequirementsUpdater.cpp

Project Member

Comment 15 by bugdroid1@chromium.org, Nov 15 2017

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

commit 90bb5240fe42935776901f33bc7c515e8c24da1c
Author: Stephen Chenney <schenney@chromium.org>
Date: Wed Nov 15 06:17:32 2017

Revert "Use sibling HasInlineTransform to enable more squashing"

This reverts commit c24e45d72fd1003e4b49341650d9c40b709752c2.

Reason for revert: This does not fix all cases. The plan is to revert all the patches trying to fix the underlying border radius and squashing issue and fix it correctly.

Original change's description:
> Use sibling HasInlineTransform to enable more squashing
> 
> Traverse previous siblings of a layer looking for inline transforms
> as a way to enable more squashing when border radius is present.
> This targets the squashing restriction at the specific case that
> generated the original bug, and does not cause issues in other
> tests (that is, next siblings do not cause the original bug and
> only inline transforms cause the original bug).
> 
> Telemetry tests on MacOS show a 3% or more improvement on time
> to first paint for load tests.
> 
> TBR=chrishtr@chromium.org
> 
> Bug:  776736 , 774544 , 780244
> Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
> Change-Id: I1f9973e5c52d40a47c05dd2d8310bb66de3e0dfa
> Reviewed-on: https://chromium-review.googlesource.com/743694
> Commit-Queue: Stephen Chenney <schenney@chromium.org>
> Reviewed-by: Philip Rogers <pdr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#513869}

TBR=pdr@chromium.org,chrishtr@chromium.org,schenney@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  776736 ,  774544 , 780244
Change-Id: I3e620a3c12c0f383bb3f57189afb8e3f05e9f960
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Reviewed-on: https://chromium-review.googlesource.com/770230
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516598}
[modify] https://crrev.com/90bb5240fe42935776901f33bc7c515e8c24da1c/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/90bb5240fe42935776901f33bc7c515e8c24da1c/third_party/WebKit/Source/core/paint/PaintLayer.h
[modify] https://crrev.com/90bb5240fe42935776901f33bc7c515e8c24da1c/third_party/WebKit/Source/core/paint/compositing/CompositingLayerAssigner.cpp
[modify] https://crrev.com/90bb5240fe42935776901f33bc7c515e8c24da1c/third_party/WebKit/Source/core/paint/compositing/CompositingRequirementsUpdater.cpp

Project Member

Comment 16 by bugdroid1@chromium.org, Nov 15 2017

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

commit 152e7cf991c83b8ebac89db3f67cfe80511d47e5
Author: Stephen Chenney <schenney@chromium.org>
Date: Wed Nov 15 18:58:04 2017

Revert "Tighten the restriction on squashing for border radius"

This reverts commit 2faf4aa8f809aee54bd228d0fb375bbd67b4d2be.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Tighten the restriction on squashing for border radius
> 
> The fix for https://bugs.chromium.org/p/chromium/issues/detail?id=761298
> prevents sqaushing of anything that has a border radius, but in reality
> we only need to prevent squashing when the layer actually clips a
> child composited layer. The composited part is not known at the
> time we compute squashing disallowed reasons, so we can't use that. But
> we can make sure that overflow does clip.
> 
> R=​chrishtr@chromium.org
> BUG= 776736 , 774544 
> 
> Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
> Change-Id: I0ec1b8d8e2c0ebfef5004f313d49ae41f14e647e
> Reviewed-on: https://chromium-review.googlesource.com/734140
> Commit-Queue: Stephen Chenney <schenney@chromium.org>
> Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#511540}

TBR=chrishtr@chromium.org,schenney@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  776736 ,  774544 
Change-Id: I9092431dd162191b5ee92f64efb45aba164c382e
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Reviewed-on: https://chromium-review.googlesource.com/771990
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516768}
[modify] https://crrev.com/152e7cf991c83b8ebac89db3f67cfe80511d47e5/third_party/WebKit/Source/core/paint/compositing/CompositingLayerAssigner.cpp

schenney: thanks for all the hard work on these regressions! I took a look at the graphs, and everything that bisected to your CL has recovered with one of the CLs landed except the smoothness metrics are a bit noisy to tell. Original report here: https://bugs.chromium.org/p/chromium/issues/detail?id=776739#c3 (use the debug graph link since the alerts were duped to this one: https://chromeperf.appspot.com/group_report?sid=4f74a5185a15cb2ed32b762b92241f6ee3b05888008ccb0b966d8c799c14dd49)

Do you think we can mark this fixed?
Status: Fixed (was: Assigned)
I think we can mark it fixed. The code was reverted and a new fix applied that would not show the same big perf hit.

My intepretation of the graphs is that there has been a slight growth in the metric while my change was in, so when my change was reverted there was a residual perf change.

Sign in to add a comment