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

Issue 644927 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug



Sign in to add a comment

Investigate potential skia performance regressions from switch to GN

Project Member Reported by erikc...@chromium.org, Sep 7 2016

Issue description

Quoting brucedawson:
"""
Looking at the history I see that skia used to be optimize-for-size, then it was changed to optimize-for-speed on (I believe) all platforms, and then this change was lost in the GN transition. I decided to be conservative and only switch to optimize-for-speed on Windows.
...
crrev.com/2270693006
 crbug.com/632651 
"""
 
This bug tracks the switch from mac GYP to GN:
https://bugs.chromium.org/p/chromium/issues/detail?id=618468

The perf waterfall bots were flipped on July 11:
https://bugs.chromium.org/p/chromium/issues/detail?id=618468#c31

reverted on July 12:
https://bugs.chromium.org/p/chromium/issues/detail?id=618468#c32

and relanded on July 13:
https://bugs.chromium.org/p/chromium/issues/detail?id=618468#c33

I'm not seeing any regressions in this time range on the Mac retina bots. Note that the huge spike is caused by the switch from 10.9 -> 10.11
https://bugs.chromium.org/p/chromium/issues/detail?id=632328
Also no regressions on Mac 10.10 and 10.11 devices. Both the Skia bug and brucedawson's changes talk about "official builds", but I believe they mean release builds, which is why the issue was caught by Telemetry to begin with. I'll upload a CL to the perf try bots and see what they say:

https://codereview.chromium.org/2320853002/
An Official build is a release build where "is_official_build = true" is set. On Windows (and Linux) this enables WPO/LTO for extra levels of optimization awesomeness above and beyond a regular release build.

I believe that the issue shows up in regular release builds as well.

However, I could never reproduce the regression outside of the perf tests. The code path in question was normally not hit. I was unable to find out what (presumed) command-line argument was triggering it.
The perf waterfall doesn't build official builds, so the regression must be seen in normal release builds. In both your CL fix, and the original CL that turned on the optimization for GYP, there's no mention in the code of official builds, just !is_debug, so it's not clear to me why either CL mentions official builds.
Let's just assume that the official-build claim was developer error and never speak of it again.
:-)
smoothness.top_25_smooth: Pretty huge improvements. 38% on first_gesture_scroll_update_latency
https://codereview.chromium.org/2320853002/#ps60001
http://storage.googleapis.com/chromium-telemetry/html-results/results-2016-09-07_20-42-54

smoothness.tough_path_rendering_cases: Neutral across the board:
https://codereview.chromium.org/2320853002/#ps40001

thread_times.tough_scrolling_cases: Weird build errors.
https://codereview.chromium.org/2320853002/#ps20001

Given that this regression was introduced by GN migration, and we see clear performance improvements on Mac and Windows, I think we should just turn it on for all OSes. I'm going to try to land that.
Project Member

Comment 8 by bugdroid1@chromium.org, Sep 9 2016

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

commit be3d81886eb8db29ae0b204becaef10476b7faa5
Author: erikchen <erikchen@chromium.org>
Date: Fri Sep 09 20:11:25 2016

Optimize skia for performance, rather than size on all platforms.

This change got lost in the GN migration.

BUG= 644927 

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

[modify] https://crrev.com/be3d81886eb8db29ae0b204becaef10476b7faa5/skia/BUILD.gn

Labels: Merge-Request-54

Comment 10 by dimu@chromium.org, Sep 12 2016

Labels: -Merge-Request-54 Merge-Approved-54 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M54 (branch: 2840)
Project Member

Comment 11 by bugdroid1@chromium.org, Sep 12 2016

Labels: -merge-approved-54 merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eefc57b54a8da83ebbdd072b0c5a05607b2366f8

commit eefc57b54a8da83ebbdd072b0c5a05607b2366f8
Author: erikchen <erikchen@chromium.org>
Date: Mon Sep 12 19:50:03 2016

[Merge to 2840] Optimize skia for performance, rather than size on all platforms.

> This change got lost in the GN migration.
>
> BUG= 644927 
>
> Review-Url: https://codereview.chromium.org/2320853002
> Cr-Commit-Position: refs/heads/master@{#417682}
> (cherry picked from commit be3d81886eb8db29ae0b204becaef10476b7faa5)

Review URL: https://codereview.chromium.org/2335803002 .

Cr-Commit-Position: refs/branch-heads/2840@{#310}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/eefc57b54a8da83ebbdd072b0c5a05607b2366f8/skia/BUILD.gn

Status: Fixed (was: Assigned)
Project Member

Comment 13 by bugdroid1@chromium.org, Oct 27 2016

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

commit eefc57b54a8da83ebbdd072b0c5a05607b2366f8
Author: erikchen <erikchen@chromium.org>
Date: Mon Sep 12 19:50:03 2016

[Merge to 2840] Optimize skia for performance, rather than size on all platforms.

> This change got lost in the GN migration.
>
> BUG= 644927 
>
> Review-Url: https://codereview.chromium.org/2320853002
> Cr-Commit-Position: refs/heads/master@{#417682}
> (cherry picked from commit be3d81886eb8db29ae0b204becaef10476b7faa5)

Review URL: https://codereview.chromium.org/2335803002 .

Cr-Commit-Position: refs/branch-heads/2840@{#310}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/eefc57b54a8da83ebbdd072b0c5a05607b2366f8/skia/BUILD.gn

Sign in to add a comment