New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 771770 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 732609



Sign in to add a comment

[SPv2] Raster invalidation doesn't handle reordering correctly

Project Member Reported by trchen@chromium.org, Oct 4 2017

Issue description

What 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.

 
chunk-reorder.html
979 bytes View Download
chunk-reorder-expected.html
316 bytes View Download
Status: Assigned (was: Untriaged)
Blocking: 732609
Project Member

Comment 3 by bugdroid1@chromium.org, 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

Status: Fixed (was: Assigned)

Sign in to add a comment