New issue
Advanced search Search tips

Issue 693693 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 665259

Blocking:
issue 471333



Sign in to add a comment

Get rid of paired display items for SPv2

Project Member Reported by chrishtr@chromium.org, Feb 17 2017

Issue description

Paired display items are replaced by property tree nodes in SPv2.
Currently, paired display items are still emitted even in SPv2
mode, but are ignored by the PaintArtifactCompositor when sending
display lists from Blink to cc.

The following use-cases block simply removing the paired display items:

a. Subsequence caching depends upon subsequence display item markers.
b. PaintRecordBuilder (formerly SkPictureBuilder) depends on a way to
create paired display items that are then folded down into a single
DrawingDisplayItem.

The plan of record for how to remove paired display items while still
supporting the above use-cases is:

1. Re-implement subsequence caching markers to be data structures outside
of the actual display list, owned by the PaintController, which point at
the beginnings and ends of each subsequence.

2. Factor the "folding" logic currently in the PaintArtifactCompositor
for non-composited paint property tree nodes into a generic class which
can fold a set of PaintChunks relative to an ancestor PropertyTreeState.

3. Migrate the PaintRecordBuilder use-cases to use #2.

4. Stop emitting paired display items.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Feb 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ff33efd971d548425b385adc947f8618788eb666

commit ff33efd971d548425b385adc947f8618788eb666
Author: pdr <pdr@chromium.org>
Date: Tue Feb 21 18:13:21 2017

Temporarily suppress element id collision DCHECK for SPV2

This patch temporarily suppresses an id collision DCHECK with SPV2 which
is failing because multiple layers have the same element id. This occurs for
simple cases [1] because many unnecessary layers are created with the
same property tree state. We explored fixing this with [2] but decided the
long-term fix described in  crbug.com/693693  would be better.

This suppression should be removed once  crbug.com/693693  is fixed.

[1] Enable SPV2 with --enable-slimming-paint-v2, then open:
<!doctype html>
abc<div style="width: 10px; height: 5000px; transform: translate3d(0,0,0);">def</div>

[2] https://codereview.chromium.org/2698673007

BUG=667946,  693693 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2707643002
Cr-Commit-Position: refs/heads/master@{#451797}

[modify] https://crrev.com/ff33efd971d548425b385adc947f8618788eb666/cc/trees/layer_tree_impl.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Aug 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eb35bbd49aacbaaa015c9cc63d9c6ae16a26d64c

commit eb35bbd49aacbaaa015c9cc63d9c6ae16a26d64c
Author: pdr <pdr@chromium.org>
Date: Fri Aug 11 00:37:11 2017

Remove element id collision suppression system

We added a hack to allow duplicate element ids for spv2 but it
is no longer needed. Eventually, element ids will be removed
entirely.

Bug:  693693 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I6715c377673ddee41a1a6f3a1ac8cd5421cb0382
Reviewed-on: https://chromium-review.googlesource.com/611206
Reviewed-by: Walter Korman <wkorman@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#493618}
[modify] https://crrev.com/eb35bbd49aacbaaa015c9cc63d9c6ae16a26d64c/cc/trees/layer_tree_impl.cc

Comment 3 by pdr@chromium.org, Aug 11 2017

Status: Fixed (was: Available)

Sign in to add a comment