Rendering-core weekly meeting notes for August 6, 2018

22 views
Skip to first unread message

Emil A Eklund

unread,
Aug 9, 2018, 6:05:29 PM8/9/18
to rendering...@chromium.org, layout-dev, style-dev, pain...@chromium.org

(Cross posting to layout-dev, paint-dev, and style-dev as a one-off as I've gotten a few questions about the lack of weekly updates lately. If you're interested in these updates please subscribe to rendering-core-dev)

These meeting notes can be found here.

August 6, 2018

Code health (schenney)

  • Triage

    • 9 Untriaged/Unconfirmed in Paint and Canvas. All due to missing owners on the Skia side. Need to find out who is really missing vs on vacation.

    • 20 Untriaged/Unconfirmed in Layout and CSS owned flags. Nothing to be concerned about.

    • No 7-day triage failures.

  • Open, Closed and Fixed

    • Paint/Canvas 27 Opened, 32 Closed and 15 Fixed last 7 days.

    • Layout/CSS 58 Opened, 48 Closed and 22 Fixed last 7 days.

    • Still doing well.



  • Total Open

    • Paint/Canvas 1559, down 3 in last week. OKR target is < 2.5 additional bugs per week. Currently 3.9 fewer per week.

    • Layout/CSS 1850, up 8 in last week OKR target is < 5 more bugs each week. Currently 8.8 more per week.

  • Regression bugs

    • Paint has 5 P1 regressions. Owned but for 1. Still waiting for a Nexus 9 owner to step up. If nobody nominates at the meeting someone from MTV should try to borrow one. None older than 15 days,

    • Layout/CSS has 3 P1 Regressions 1 without owner: 871234.

    • Excellent job getting us to zero 15-day regressions.



  • Layout Test Status

    • Paint 112 TestExpectations lines up 12. TODO(schenney) Figure out where these came from. 47 WPT lines in TestExpectations, same

    • Layout 42 TestExpectations lines, up 13. TODO(szager) Figure out what these were. 1363 WPT lines in TestExpectations up 5.

    • WPT Regressions and Status Changes: Tracking system blew up. Apparently local AppEngine databases can disappear on a whim. TODO(schenney) Prioritize getting things in the cloud.

  • Launch Test Status

    • Layout NG 257 failures with flag enabled, down 15 in the last week.

    • Layout NG has fixed 161 tests that fail with old code, unchanged.

    • Blink Gen Property Trees at 325, down 1.

  • Disabled Unit Tests: Did anyone take action from last week? Plan on monthly update.

  • Disabled Perf Tests: No new information.


Meeting Notes

<schenney> Triage, doing well. No 7-day triage SLO failures.

<schenney> 9 untriaged/unconfirmed for paint and canvas. All due to missing owner, all Skia related. Will follow up offline.

<schenney> Open/closed/fixed: nothing out of the ordinary.

<schenney> Total open: paint went down a little, layout/css up a little.

<schenney> Rate of bug growth per week is still above OKR but trending back down again.

<schenney> As far as regressions go, paint has five. They all have owners expect one which still is waiting for a Nexus 9.

<chrishtr> We have a nexus 9 now.

<schenney> Likely GPU or screen resolution issue.

<schenney> Layout/CSS: 3 regressions, one bug without an owner, new bug this morning.

<eae> I took care of that one this morning. Due to text autosizing.

<schenney> zero exfeeding the 15 day SLA so we're doing good! Admire the graph.


<schenney> Layout tests: There is a bump for both paint and layout. schenney and szager to look into why.

<schenney> WPT [web platform tests]: My tracking system failed last week due to data loss. Looking into fixing it this week, will have numbers next week.


<schenney> Launch status.

<schenney> LayoutNG down to 257 failures, down 15 in the last week.

<schenney> Blink Gen property trees at 325 failures, down 1 from last week.


<schenney> Unit tests: one got re-enabled

<eae> Other re-enables in review for style and layout.

<schenney> That's it for bugs. Three AI, get nexus 9, investigate why test failures went up, get WPT tracking up and running again.


Metrics (schenney)

  • go/chrome-rendering-core-metrics for complete tracking info for UMA metrics

  • UKM metrics weekly analysis kicked off. Looking at update times for each lifecycle step for Gmail message list page, Maps all pages, Facebook all pages, YouTube landing page. Have data for about 14 days, and graphs are pretty flat.

  • Highlights:

    • Android 50th: Blink.Compositing.UpdateTime Canary still dropping but for some reason Dev has stabilized at big jump in complete disagreement with same version Canary.

    • Android, Windows 50th and 75th and 99th: Blink.IntersectionObservation.UpdateTime started big ramp up on Canary with version right around M69 branch point and continuing (last 2 weeks or so). Explanation is in July 30th notes. The rise has started to plateau so it probably doesn’t warrant extra attention.

    • Windows 50th: Blink.PrePaint.UpdateTime showing some fall back from big jump but now ramping up again. Problem started in M-69 and it’s starting to show up in Beta now that M-69 has gone to beta. Bug filed and a change blamed.

    • Android 99%: Compositing.Renderer.LayersUpdateTime trended up in Canary, half way back down, stayed steady, now trending the rest of the way down. Continue to monitor.

Meeting Notes

<schenney> UKM tracking.

<schenney> Gmail 99th [percentile] US: Flat as expected, we only have two weeks of data. Lots of time in style, layout, pre-paint and paint. Pretty even across all buckets. Not meeting 60 fps.

<szager> Why 99th? Are we focusing on the worst of the worst?

<schenney> More representative.

<chrishtr> Surprised style/layout is highest.

<eae> Really? It's what I would expect. Gmail does a lot of js layout and rendering html email messages is very style and layout heavy.

<chrishtr> M sense for initial load.

<eae> Also keep in mind that Gmail pre-renders a lot of the messages.

<szager> Can we split style layout?

<schenney> We could do that.

<futhark> I recently split it for UMA, could do it for UKM. The style/layout we're looking at here is only for life style updates. Not forced layouts.

<schenney> Correct. Next on my agenda is including JS driver layout.

<szager> Is it cumulative? Recursive through frame tree.

<schenney> Not entirely sure, let's audit it to make sure we understand how it's counted.


<schenney> Maps 99th US: Style/layout and paint the highest.

<eae> Any idea why style and paint went down last week?

<pdr> What channel is this? stable?

<schenney> Not limited to channel, so mostly stable..

<szager> Likely site changes as there was no stable promotion? Maybe annotate graph with stable pushes to help distinguish site changes from releases.

<pdr> Could we perhaps subtract canary/dev from stable to help isolate site changes?

<chrishtr> Limit to one channel.

<pdr> Having two to see the difference would be useful dev or canary and stable.

<schenney> Will pick the one with the highest use count.


<schenney> YouTube 99th US: Looks like gmail but with almost no intersection observer. Paint higher than style/layout.

<schenney> Home page, not watch page.

<chrishtr> Does not include the video frames being drawn.

<eae> YouTube uses polymer for the main page now don't they? That likely explains the high style and layout times.

<eae> Main page is pretty complex and web components CSS variables still have performance costs.

<szager> What is layer position updating counted as? How about compositing inputs updating?

<chrishtr> Updating paint layer positions is updated in the style/layout bucket.

* Discussion about what bucket it should be in *

<chrishtr> Compositing inputs updater is tracked as compositing.

<chrishtr> Pre-paint is just paint invalidation and property trees.

<szager> Tile rasterization?

<chrishtr> On another thread, not tracked here.


<schenney> Facebook 99th US: Facebook main page, signed in.

<schenney> Compositing is the highest, has a ton of paint layers basically. Given the high compositing count it is likely dominated by paint layer updates.

<eae> Really interesting to see how these differ from site to site.

<chrishtr> We should limit to one platform. Windows or Android.

<chrishtr> These are all sites dominated by apps on mobile so likely makes more sense to pick desktop.

<chrishtr> Ok, let's do windows,


<schenney> UMA metrics: Andorid 50th, composting update time canary still dropping but dev has stabilized after big jump.

<schenney> pdr did some investigation and identified a likely culprit.

<schenney> Android 99th layout update time, trending up in canary, looks to be going down again. needs investigation.

<schenney> Patch in review for Windows 99th issue, only one that requires followup.


Other Topics

OKR review: Register Property

andruud presents register property


Snippets for team members

Anders Hartvoll Ruud (andruud)

  • CSS Properties & Values API:

  • Reviews.

  • Travel Tuesday/Wednesday.

Chris Harrelson (chrishtr)

  • Last week:

    • Rendering-core meeting on Monday: facilitated presentation on Intersection Observer.

    • Wrote patches to further optimize invalidation of compositing for

    • PaintLayers, and to skip paint invalidation during non-composited scroll.

    • Spent quite a while debugging a corner case that appeared only in a telemetry perf test on Android

    • Progress in outreach for IntersectionObserver v2 (IOv2) and Display Locking (DL)

    • Fixed float-under-positioned-inline bug; discovered that it's a real issue and not a broken containing block situation

    • Reviewed several issues related to stacking contexts and containment in the CSSWG repos.

    • 10 code reviews

    • Helped design plan for adding new UMA/UKM metrics for frame generation and rendering

  • This week:

    • Rendering-core meeting on Monday: facilitating presentation on registerProperty.

    • Finish patches to optimize compositing and scroll invalidation

    • More progress pushing along IOv2 and DL

Christian Biesinger (cbiesinger)

Dominik Röttsches (drott)

Emil A Eklund (eae)

  • Organizational:

    • Incoming bug triage for style, layout, text, and fullscreen.

    • Weekly rendering core meeting and report.

    • 15 code reviews.

  • Style/Layout:

    • Investigated block layout performance and tried to optimize it by reducing calls to CreatesNewFormattingConext. In the end the gains were not enough to warrant the increased complexity.

    • Investigated RTL line breaking performance and found that the way we call ICU to determine the previous-valid break position is a lot less efficient than the next-valid equivalent for RTL.

  • LayoutNG:

    • Optimized glyph bound computation by eliminating an extra allocation/copy and unnecessary iteration over the glyps.
      https://crrev.com/579682

    • Removed obsolete legacy offset tracking for painting.
      https://crrev.com/579505

    • Found that border computation is a lore more expensive than expected. Changed the painting code to compute it lazily instead of up front, shaving a couple of percentage points of the paint performance tests.
      https://crrev.com/579429

Morten Stenshorne (mstensho)

  • Backlog after vacation.

  • Discussions with szager, who was visiting Oslo this week

  • Trying to find space at the office for a LayoutNG workshop in Oslo. Meeting rooms reserved.

  • LayoutNG:

    • Started using LayoutNG for regular work on my desktop, and also on my mobile. It's mostly usable.

    • Scroll anchoring work. Problematic, because the scroll anchoring code operates on the layout tree when it's dirty, and the fragment tree may point to dead layout objects by then. https://chromium-review.googlesource.com/c/chromium/src/+/1158688

    • Floating orthogonal writing mode roots inside inlines, and their intrinsic size.

Philip Rogers (pdr)

Rune Lillesveen (futhark)

  • Squad

    • Finished ::first-letter recalc CL, ready for review. Split out and landed two minor CLs.

    • Stop setting up Bloom selector filter for layout tree rebuild phase now that we only compute ::first-letter style here (CL).

    • Implement traversal roots for style recalc and invalidation (868810)

    • Continued working on the implementation.

  • Metrics

    • Split UMA metric for Style.UpdateTime into style recalc and layout tree building (CL).

  • Other

    • Fixed fuzzer crash 859285.

    • Removed CSSDisplayContents runtime flag.

Stephen Chenney (schenney)

  • Travel to SFO.

  • Meeting prep, though no meeting attendance. Bug triage.

  • UKM Process script development. Working and now posting weekly updates.

  • UKM data for MainFrame time, with sub-parts as ratios. Basically working now need to clean up, add UKM and UMA metrics and get it all approved.

  • Some CSSI post-mortem work.

Xiaocheng Hu (xiaochengh)

  • OOO




Reply all
Reply to author
Forward
0 new messages