Chromium Code Reviews
DescriptionOnly create PaintChunks for drawings and foreignLayers
The display item list contains many types of items (e.g., drawings,
begin/end clips, etc) but only drawings and foreign layers are needed
for compositing. SPV2 splits up the display item list for compositing by
grouping contiguous items into paint chunks that can be composited
together. Because there are many non-(drawing, foreignLayer) display
items even in SPV2 (e.g., subsequence types), unnecessary layers would
be produced.
For example:
Display item list: [N1, D2, N3, D4, N5] (for drawing D & non-drawing N)
Propy tree states: [P1, P1, P2, P1, P1] (for property tree state P)
Chunks before patch (5): [N1P1], [D2P1], [N3P2], [D4P1], [N5P1]
Chunks after patch (2): [D2P1], [D4P1]
The changes in PaintController::copyCachedSubsequence can use a little
explanation. This function copies a sequence of display items and uses
the cached paint chunks to ensure the newly-copied display items have
the correct property tree states. There is no longer a chunk associated
with the cached kBeginSubsequence item so the first following chunk is
used. The properties used for the begin subsequence item are no longer
set but, because properties do not affect non-drawing/layer items, this
has no effect.
Because layerization now more closely matches spv1, 120 new tests pass.
BUG=667946
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Patch Set 1 #Patch Set 2 : Add tests and cleanup #Patch Set 3 : Great expectations #
Messages
Total messages: 13 (10 generated)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||