[SPv2] Raster invalidation doesn't handle reordering correctly |
|||
Issue descriptionWhat steps will reproduce the problem? (1) Download the attached test to third_party/WebKit/LayoutTests/ (2) blink/tools/run_layout_tests.sh --additional-driver-flag=--enable-slimming-paint-v2 chunk-reorder.html What is the expected result? Test should pass. What happens instead? Test failed. This is due to we only invalidate the leading chunk if a bunch of chunks do not show up in expected ordering. For example (corresponds to the attached test): Old chunk list: A B C D E New chunk list: A D E B C We would have only invalidated chunk B and D. The optimal thing to do is to find the minimal editing distance between them (in this case, [B, C] or [D, E]), but we may favor a less optimal but linear time algorithm. Note: due to the wrap back in our current (incorrect) algorithm we won't detect a wrap back reordering either. For example: Old chunk list: A B C D New chunk list: C D A B We would have only invalidated chunk C.
,
Oct 11 2017
,
Oct 17 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ad5901e7f9b543e27f5dfd5d0c5f90e6654f2301 commit ad5901e7f9b543e27f5dfd5d0c5f90e6654f2301 Author: Xianzhu Wang <wangxianzhu@chromium.org> Date: Tue Oct 17 03:37:28 2017 [SPv2] Fix raster invalidation on chunk reordering Instead of invalidating chunks that are not in sequence of the previous chunks, now invalidate chunks which are moved before any previously matched chunks. This is the same method used in PaintController to invalidate reordered display items. Bug: 771770 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: Idca6531db89a149a7280079b5ff598b77de97d0a Reviewed-on: https://chromium-review.googlesource.com/710314 Reviewed-by: Tien-Ren Chen <trchen@chromium.org> Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org> Cr-Commit-Position: refs/heads/master@{#509266} [modify] https://crrev.com/ad5901e7f9b543e27f5dfd5d0c5f90e6654f2301/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/clip-with-layout-delta-expected.txt [add] https://crrev.com/ad5901e7f9b543e27f5dfd5d0c5f90e6654f2301/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/compositing/chunk-reorder-expected.txt [modify] https://crrev.com/ad5901e7f9b543e27f5dfd5d0c5f90e6654f2301/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/svg/text-rescale-expected.txt [add] https://crrev.com/ad5901e7f9b543e27f5dfd5d0c5f90e6654f2301/third_party/WebKit/LayoutTests/paint/invalidation/compositing/chunk-reorder-expected.html [add] https://crrev.com/ad5901e7f9b543e27f5dfd5d0c5f90e6654f2301/third_party/WebKit/LayoutTests/paint/invalidation/compositing/chunk-reorder-expected.txt [add] https://crrev.com/ad5901e7f9b543e27f5dfd5d0c5f90e6654f2301/third_party/WebKit/LayoutTests/paint/invalidation/compositing/chunk-reorder.html [modify] https://crrev.com/ad5901e7f9b543e27f5dfd5d0c5f90e6654f2301/third_party/WebKit/Source/platform/graphics/compositing/CompositedLayerRasterInvalidator.cpp [modify] https://crrev.com/ad5901e7f9b543e27f5dfd5d0c5f90e6654f2301/third_party/WebKit/Source/platform/graphics/compositing/CompositedLayerRasterInvalidatorTest.cpp
,
Oct 17 2017
|
|||
►
Sign in to add a comment |
|||
Comment 1 by schenney@chromium.org
, Oct 10 2017