[layoutng] Enable fragment caching |
||
Issue descriptionEnable fragment caching (--enable-blink-features=LayoutNGFragmentCaching), so we can avoid relaying out everything all the time.
,
May 18 2018
📍 Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/14845e34240000
,
May 18 2018
😿 Pinpoint job stopped with an error. https://pinpoint-dot-chromeperf.appspot.com/job/14845e34240000 Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
,
May 18 2018
📍 Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/15e6f074240000
,
May 18 2018
😿 Pinpoint job stopped with an error. https://pinpoint-dot-chromeperf.appspot.com/job/15e6f074240000 All of the attempts failed. See the individual attempts for details on each error.
,
May 19 2018
📍 Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/14fe0554240000
,
May 19 2018
😿 Pinpoint job stopped with an error. https://pinpoint-dot-chromeperf.appspot.com/job/14fe0554240000 All of the attempts failed. See the individual attempts for details on each error.
,
May 22 2018
Previous patches I have landed for this: https://crrev.com/c/1001721 https://crrev.com/c/1005095 https://crrev.com/c/1004586 https://crrev.com/c/1013306 https://crrev.com/c/1012499 https://crrev.com/c/1043009 https://crrev.com/c/1015327 https://crrev.com/c/1058227 https://crrev.com/c/1064855 https://crrev.com/c/1067423 https://crrev.com/c/1067984
,
May 22 2018
📍 Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/14fae16c240000
,
May 22 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/eefcee7813c5dc4c6481d504733f17043a2474f6 commit eefcee7813c5dc4c6481d504733f17043a2474f6 Author: Christian Biesinger <cbiesinger@chromium.org> Date: Tue May 22 20:46:04 2018 [layoutng] Update shape info even when reusing layout results Even when reusing a layout result, we still need to update the shape info. Fixes these tests when fragment caching is enabled: external/wpt/css/css-shapes/shape-outside/shape-image/shape-image-009.html external/wpt/css/css-shapes/shape-outside/shape-image/shape-image-011.html http/tests/css/css-image-valued-shape.html http/tests/security/shape-image-cors-same-origin.html Also, moving the SetMayNeedPaintInvalidation call fixes these additional tests: fast/css/relative-positioned-block-nested-with-inline-parent-dynamic-removed.html fast/css/relative-positioned-block-with-inline-ancestor-and-parent-dynamic.html fast/css/relative-positioned-block-with-inline-ancestor-dynamic-removed.html R=ikilpatrick@chromium.org Bug: 844751 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng Change-Id: I412fd2eddd22c40a7b0c5c7b8a8d22612c1b3759 Reviewed-on: https://chromium-review.googlesource.com/1069173 Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org> Commit-Queue: Christian Biesinger <cbiesinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#560764} [modify] https://crrev.com/eefcee7813c5dc4c6481d504733f17043a2474f6/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
,
May 22 2018
😿 Pinpoint job stopped with an error. https://pinpoint-dot-chromeperf.appspot.com/job/14fae16c240000 Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
,
May 22 2018
📍 Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/12c4cedc240000
,
May 23 2018
😿 Pinpoint job stopped with an error. https://pinpoint-dot-chromeperf.appspot.com/job/12c4cedc240000 All of the attempts failed. See the individual attempts for details on each error.
,
May 24 2018
📍 Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/13e30802240000
,
May 25 2018
📍 Job complete. See results below. https://pinpoint-dot-chromeperf.appspot.com/job/13e30802240000
,
May 25 2018
📍 Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/13c6f03c240000
,
May 25 2018
😿 Pinpoint job stopped with an error. https://pinpoint-dot-chromeperf.appspot.com/job/13c6f03c240000 All of the attempts failed. See the individual attempts for details on each error.
,
May 25 2018
📍 Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/14f0f90a240000
,
May 26 2018
📍 Job complete. See results below. https://pinpoint-dot-chromeperf.appspot.com/job/14f0f90a240000
,
May 26 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4f5f0e82de38a3678bd7c48784c754b6bfed7390 commit 4f5f0e82de38a3678bd7c48784c754b6bfed7390 Author: Christian Biesinger <cbiesinger@chromium.org> Date: Sat May 26 05:41:26 2018 [layoutng] Enable fragment caching Fragment caching allows us to reuse fragments instead of redoing layout for a subtree when inputs have not changed. This is, in a sense, the replacement for LayoutIfNeeded in legacy layout. For now this is a very simple implementation which only keeps around the last fragment. To check if we can reuse it, we check for an identical constraint space, and for now we only reuse if !NeedsLayout(). In the future, I hope we can find a solution that checks if our style or our children have changed. Design document: https://docs.google.com/document/d/1RjH_Ofa8O_ucGvaDCEgsBVECPqUTiQKR3zNyVTr-L_I/edit Bug: 844751 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng Change-Id: I1877876aee82761724815fdc8a2a991284db0bec Reviewed-on: https://chromium-review.googlesource.com/1015546 Commit-Queue: Christian Biesinger <cbiesinger@chromium.org> Reviewed-by: Emil A Eklund <eae@chromium.org> Cr-Commit-Position: refs/heads/master@{#562116} [modify] https://crrev.com/4f5f0e82de38a3678bd7c48784c754b6bfed7390/third_party/blink/renderer/platform/runtime_enabled_features.json5
,
May 31 2018
Per the "Analyze benchmark results" link at https://pinpoint-dot-chromeperf.appspot.com/job/14f0f90a240000, fragment caching has significant improvements for the float tests. However, not much improvement otherwise. In retrospect, it probably makes sense that microbenchmarks would not see much change because they probably don't reuse layout results much.
,
Oct 16
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8e5dd9dd8e32104d7ac03f1113380754b721009c commit 8e5dd9dd8e32104d7ac03f1113380754b721009c Author: Koji Ishii <kojii@chromium.org> Date: Tue Oct 16 20:27:05 2018 [LayoutNG] Stop clearing CachedLayoutResult when NeedsLayout CachedLayoutResult is cleared in the early phase of layout if NeedsLayout(). This makes hard to re-use part of cached fragments for inline layout. The clearing seems no longer necessary, as FinishLayout() always SetCachedLayoutResult before it calls CopyFragmentDataToLayoutBox(), which calls ComputeOverflow(). Bug: 35619 , 844751 Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng Change-Id: Id728deb5bc5c5b29e73c0835d6ffc5b22ee92121 Reviewed-on: https://chromium-review.googlesource.com/c/1282802 Reviewed-by: Aleks Totic <atotic@chromium.org> Commit-Queue: Koji Ishii <kojii@chromium.org> Cr-Commit-Position: refs/heads/master@{#600106} [modify] https://crrev.com/8e5dd9dd8e32104d7ac03f1113380754b721009c/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
,
Oct 20
|
||
►
Sign in to add a comment |
||
Comment 1 by cbiesin...@chromium.org
, May 18 2018