|
|
Created:
4 years, 4 months ago by chrishtr Modified:
4 years, 2 months ago CC:
blink-reviews, blink-reviews-paint_chromium.org, chromium-reviews, dshwang, slimming-paint-reviews_chromium.org Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionUse GeometryMapper to implement PaintLayerClipper.
BUG=593596
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Committed: https://crrev.com/902ab929046fdb09759d1601bd430fdb64b2235c
Cr-Commit-Position: refs/heads/master@{#423731}
Patch Set 1 #Patch Set 2 : none #Patch Set 3 : none #Patch Set 4 : none #
Total comments: 4
Patch Set 5 : none #Patch Set 6 : none #Patch Set 7 : none #Patch Set 8 : none #Patch Set 9 : none #Patch Set 10 : none #Patch Set 11 : none #Patch Set 12 : none #Patch Set 13 : none #Patch Set 14 : none #Patch Set 15 : none #Patch Set 16 : none #Patch Set 17 : none #
Total comments: 1
Patch Set 18 : none #
Total comments: 12
Patch Set 19 : none #Patch Set 20 : none #Patch Set 21 : none #Patch Set 22 : none #Patch Set 23 : none #Messages
Total messages: 81 (65 generated)
Description was changed from ========== none none none none none BUG= ========== to ========== none none none none none BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
Description was changed from ========== none none none none none BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Use GeometryMapper to implement PaintLayerClipper. BUG=593596 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
chrishtr@chromium.org changed reviewers: + trchen@chromium.org, wangxianzhu@chromium.org
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
https://codereview.chromium.org/2238883006/diff/60001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp (right): https://codereview.chromium.org/2238883006/diff/60001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:161: m_geometryMapper.reset(new GeometryMapper); Can you give some performance analysis? Can we share GeometryMapper among PaintLayers? https://codereview.chromium.org/2238883006/diff/60001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintLayerClipper.h (right): https://codereview.chromium.org/2238883006/diff/60001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayerClipper.h:52: #include "platform/graphics/paint/ClipPaintPropertyNode.h" Nit: The XXXPaintPropertyNode.h headers are actually required by PropertyTreeState.h so they should be included in that file. https://codereview.chromium.org/2238853005/ does that.
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_layout_tests_slimming_paint_v2 on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_layout_te...)
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_layout_tests_slimming_paint_v2 on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_layout_te...)
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_asan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_layout_tests_slimming_paint_v2 on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_layout_te...)
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_layout_tests_slimming_paint_v2 on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_layout_te...)
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_layout_tests_slimming_paint_v2 on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_layout_te...)
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...) chromeos_amd64-generic_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_amd64-...) chromeos_daisy_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_daisy_...) chromeos_x86-generic_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_x86-ge...) linux_chromium_asan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_compile_dbg_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) mac_chromium_compile_dbg_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_comp...) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: cast_shell_android on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/cast_shell_a...)
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_layout_tests_slimming_paint_v2 on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_layout_te...)
Description was changed from ========== Use GeometryMapper to implement PaintLayerClipper. BUG=593596 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Use GeometryMapper to implement PaintLayerClipper. Turn it on in slimmingPaintInvalidation and SPv2 modes. BUG=593596 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
Description was changed from ========== Use GeometryMapper to implement PaintLayerClipper. Turn it on in slimmingPaintInvalidation and SPv2 modes. BUG=593596 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Use GeometryMapper to implement PaintLayerClipper. BUG=593596 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
https://codereview.chromium.org/2238883006/diff/60001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp (right): https://codereview.chromium.org/2238883006/diff/60001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:161: m_geometryMapper.reset(new GeometryMapper); On 2016/08/15 at 17:09:04, Xianzhu wrote: > Can you give some performance analysis? Don't have any yet. I'd prefer to commit this first and then do a comparison when the code is stable and known to be correct, via the rasterize-and-record invalidation benchmark that Walter just added. What do you think? > Can we share GeometryMapper among PaintLayers? Yes it can be shared, good idea. Note however that the old system couldn't do that. I've put a TODO. Resolving that TODO is related to the above request to do performance testing later.. https://codereview.chromium.org/2238883006/diff/60001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/paint/PaintLayerClipper.h (right): https://codereview.chromium.org/2238883006/diff/60001/third_party/WebKit/Sour... third_party/WebKit/Source/core/paint/PaintLayerClipper.h:52: #include "platform/graphics/paint/ClipPaintPropertyNode.h" On 2016/08/15 at 17:09:04, Xianzhu wrote: > Nit: The XXXPaintPropertyNode.h headers are actually required by PropertyTreeState.h so they should be included in that file. https://codereview.chromium.org/2238853005/ does that. Done. https://codereview.chromium.org/2238883006/diff/320001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp (right): https://codereview.chromium.org/2238883006/diff/320001/third_party/WebKit/Sou... third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp:106: if (m_paintLayer.paintsWithTransform(paintingInfo.getGlobalPaintFlags()) && Need to call paintLayerWithTransform even for SPv2, in order to map the cull rect to the new space.
The CQ bit was checked by chrishtr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 (right): https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2:2162: crbug.com/593596 compositing/geometry/layer-due-to-layer-children-deep.html [ Failure ] You can also mark them NeedsRebaseline. https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp (right): https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:89: newOverflowClip = Is this change necessary? https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:212: // The rect now needs to be transformed to the local space of this PaintLayer. Nit: 80 chars https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:488: layerBoundsWithVisualOverflow); // PaintLayer are in physical coordinates, so the overflow has to be flipped. Nit: 80 chars https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/paint/PaintLayerClipper.h (right): https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/paint/PaintLayerClipper.h:175: explicit PaintLayerClipper(const PaintLayer&, bool useGeometryMapper); Can you avoid the new parameter but check REF::Spv2Enabled in this constructor?
lgtm https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/paint/PaintLayerClipper.h (right): https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/paint/PaintLayerClipper.h:175: explicit PaintLayerClipper(const PaintLayer&, bool useGeometryMapper); On 2016/10/06 00:13:32, Xianzhu wrote: > Can you avoid the new parameter but check REF::Spv2Enabled in this constructor? Never mind. Just noticed that the rect checking code need this.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_layout_tests_slimming_paint_v2 on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_layout_te...)
https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 (right): https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2:2162: crbug.com/593596 compositing/geometry/layer-due-to-layer-children-deep.html [ Failure ] On 2016/10/06 at 00:13:32, Xianzhu wrote: > You can also mark them NeedsRebaseline. I can't do that without breaking SPv1 expectations or adding them to virtual/spv2, no? https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp (right): https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:89: newOverflowClip = On 2016/10/06 at 00:13:32, Xianzhu wrote: > Is this change necessary? Reverted. https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:212: // The rect now needs to be transformed to the local space of this PaintLayer. On 2016/10/06 at 00:13:32, Xianzhu wrote: > Nit: 80 chars Fixed. https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Sou... third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp:488: layerBoundsWithVisualOverflow); // PaintLayer are in physical coordinates, so the overflow has to be flipped. On 2016/10/06 at 00:13:32, Xianzhu wrote: > Nit: 80 chars Fixed.
The CQ bit was checked by chrishtr@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from wangxianzhu@chromium.org Link to the patchset: https://codereview.chromium.org/2238883006/#ps380001 (title: "none")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 (right): https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2:2162: crbug.com/593596 compositing/geometry/layer-due-to-layer-children-deep.html [ Failure ] On 2016/10/06 17:11:08, chrishtr wrote: > On 2016/10/06 at 00:13:32, Xianzhu wrote: > > You can also mark them NeedsRebaseline. > > I can't do that without breaking SPv1 expectations or adding them to > virtual/spv2, no? The NeedsRebaseline won't cause real rebaseline until the expectations are merged into the main TestExpectations. It seems better than Failure because it states the actual result is valid, while Failure states we need to fix it.
The CQ bit was unchecked by chrishtr@chromium.org
https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 (right): https://codereview.chromium.org/2238883006/diff/340001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2:2162: crbug.com/593596 compositing/geometry/layer-due-to-layer-children-deep.html [ Failure ] On 2016/10/06 at 17:26:19, Xianzhu wrote: > On 2016/10/06 17:11:08, chrishtr wrote: > > On 2016/10/06 at 00:13:32, Xianzhu wrote: > > > You can also mark them NeedsRebaseline. > > > > I can't do that without breaking SPv1 expectations or adding them to > > virtual/spv2, no? > > The NeedsRebaseline won't cause real rebaseline until the expectations are merged into the main TestExpectations. It seems better than Failure because it states the actual result is valid, while Failure states we need to fix it. Good point. Done.
The CQ bit was checked by chrishtr@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from wangxianzhu@chromium.org Link to the patchset: https://codereview.chromium.org/2238883006/#ps400001 (title: "none")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
The CQ bit was checked by chrishtr@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from wangxianzhu@chromium.org Link to the patchset: https://codereview.chromium.org/2238883006/#ps420001 (title: "none")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
The CQ bit was checked by chrishtr@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from wangxianzhu@chromium.org Link to the patchset: https://codereview.chromium.org/2238883006/#ps440001 (title: "none")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Committed patchset #23 (id:440001)
Message was sent while issue was closed.
Description was changed from ========== Use GeometryMapper to implement PaintLayerClipper. BUG=593596 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Use GeometryMapper to implement PaintLayerClipper. BUG=593596 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/902ab929046fdb09759d1601bd430fdb64b2235c Cr-Commit-Position: refs/heads/master@{#423731} ==========
Message was sent while issue was closed.
Patchset 23 (id:??) landed as https://crrev.com/902ab929046fdb09759d1601bd430fdb64b2235c Cr-Commit-Position: refs/heads/master@{#423731} |