Optimize PaintChunksToCcLayer.cpp ConversionContext::Convert |
||
Issue descriptionWe have a SPV175 regression on Compositing.Renderer.LayersUpdateTime.[0-4]: https://uma.googleplex.com/p/chrome/variations/?sid=71bdcf35b43dc2a4416e7fcf80b5d4f7 This can be explained by ConversionContext::Convert. We have a microbenchmark of this code, blink_perf.paint color-changes.html, but this code does not show up in the PrePaint or Paint times of the benchmark (i.e., only look at this test in a profiler, do not consider the results). In a profiler, this function has a lot of self-time, so I think it may be improvable. Improvements to this code will show up in the LayersUpdateTime finch results. This bug should track targeted performance improvements to this code.
,
Mar 21 2018
What are the total time of PaintChunksToCcLayer (SPv175) and AppendToWebDisplayItemList (!SPv175), and PrePaint (both SPv175 and !SPv175)? This case seems a one of the extreme cases of SPv175 regression and worth investigation. For average, the current Finch result shows near zero PrePaint+Paint regression (unweighted). If weighted with the number of PrePaints and Paints, there will be a progression.
,
Mar 21 2018
I realized I missed some raster invalidation work in CommitNewDisplayItems in the above post, but the difference isn't large. SPV175 total time: PaintChunksToCcLayer: 5.37s - 7.2% PrePaint: 3.02s - 4.0% Paint: 13.19s - 17.8% !SPV175 total time: AppendToWebDisplayItemList: 4.42s - 5.9% PrePaint: 4.10s - 5.5% Paint: 10.75s - 14.4%
,
Apr 12 2018
After the recent optimization CLs, now record_time regression on ct has dropped below 5% (which was 46% when we first started to test performance on ct). Given that PaintChunksToCcLayer is more complex than AppendToWebDisplayItemList, I think the current status is satisfactory. Finch (go/spv175status) shows overall improvement of spv175. |
||
►
Sign in to add a comment |
||
Comment 1 by pdr@chromium.org
, Mar 21 20181.3 MB
1.3 MB View Download