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

Issue 611883 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature


Sign in to add a comment

Stop using LayerImpls to represent RenderSurfaceImpls in the RSLL

Project Member Reported by ajuma@chromium.org, May 13 2016

Issue description

Currently, render surfaces are represented in the RSLL by their owning LayerImpl (both in the top-level list of surfaces, and in the layer_list stored by each render surface), but render surface ownership is going to be moving to effect nodes so there won't be an "owning" LayerImpl any longer.

We need to define something like an RsllMember interface (but with a much better name!), make LayerImpl and RenderSurfaceImpl implement this interface, change LayerImplList to be a list of things of this new type, and make LayerIterator work with this new type.
 

Comment 1 by ajuma@chromium.org, May 16 2016

Blockedon: 612208

Comment 2 by ajuma@chromium.org, May 16 2016

Blockedon: 612220

Comment 3 by ajuma@chromium.org, Jun 22 2016

Blockedon: 622410
Project Member

Comment 4 by bugdroid1@chromium.org, Jul 26 2016

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

commit 4c14b256d8b2b7b3196f246437a9a67f641b980b
Author: ajuma <ajuma@chromium.org>
Date: Tue Jul 26 20:10:59 2016

cc: Move blend_mode to the effect tree

This removes blend_mode from LayerImpl, and adds it to the effect tree
and to LayerImplTestProperties.

BUG= 611883 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_blink_rel

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

[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/layers/layer.cc
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/layers/layer.h
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/layers/layer_impl.cc
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/layers/layer_impl.h
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/layers/layer_impl_test_properties.cc
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/layers/layer_impl_test_properties.h
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/layers/layer_impl_unittest.cc
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/layers/render_surface_impl.h
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/layers/render_surface_unittest.cc
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/proto/property_tree.proto
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/trees/effect_node.cc
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/trees/effect_node.h
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/trees/occlusion_tracker.cc
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/trees/occlusion_tracker_unittest.cc
[modify] https://crrev.com/4c14b256d8b2b7b3196f246437a9a67f641b980b/cc/trees/property_tree_builder.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Jul 28 2016

Project Member

Comment 6 by bugdroid1@chromium.org, Sep 23 2016

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

commit 816002e4c87216af3f9b2998896493937f47247e
Author: ajuma <ajuma@chromium.org>
Date: Fri Sep 23 23:30:42 2016

cc: Compute SurfacePropertyChanged without depending on owning layer

This makes the computation of RenderSurfaceImpl::SurfacePropertyChanged
depend on property trees rather than on the surface's owning layer.

BUG= 611883 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

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

[modify] https://crrev.com/816002e4c87216af3f9b2998896493937f47247e/cc/layers/layer.cc
[modify] https://crrev.com/816002e4c87216af3f9b2998896493937f47247e/cc/layers/layer.h
[modify] https://crrev.com/816002e4c87216af3f9b2998896493937f47247e/cc/layers/layer_impl.cc
[modify] https://crrev.com/816002e4c87216af3f9b2998896493937f47247e/cc/layers/layer_unittest.cc
[modify] https://crrev.com/816002e4c87216af3f9b2998896493937f47247e/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/816002e4c87216af3f9b2998896493937f47247e/cc/layers/render_surface_impl.h
[modify] https://crrev.com/816002e4c87216af3f9b2998896493937f47247e/cc/layers/render_surface_unittest.cc
[modify] https://crrev.com/816002e4c87216af3f9b2998896493937f47247e/cc/proto/layer.proto
[modify] https://crrev.com/816002e4c87216af3f9b2998896493937f47247e/cc/trees/damage_tracker_unittest.cc
[modify] https://crrev.com/816002e4c87216af3f9b2998896493937f47247e/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/816002e4c87216af3f9b2998896493937f47247e/cc/trees/layer_tree_impl.cc
[modify] https://crrev.com/816002e4c87216af3f9b2998896493937f47247e/cc/trees/property_tree_builder.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Oct 26 2016

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

commit 440c9aaa7a7a309ad9605813d57f754720f1b7bb
Author: ajuma <ajuma@chromium.org>
Date: Wed Oct 26 01:44:44 2016

cc: Use transform node's sorting_context_id in RenderSurfaceImpl

This removes another dependency of RenderSurfaceImpl on its owning
layer, making it get its sorting context id from its transform node
rather than its owning layer.

BUG= 611883 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

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

[modify] https://crrev.com/440c9aaa7a7a309ad9605813d57f754720f1b7bb/cc/layers/render_surface_impl.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Nov 1 2016

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

commit 740a49caf190bab13f8fdfd0979b29e09752da6b
Author: ajuma <ajuma@chromium.org>
Date: Tue Nov 01 13:33:03 2016

cc: Remove more references to owning_layer_ from RenderSurfaceImpl

This removes more dependencies of RenderSurfaceImpl on its owning layer.
Specifically, this removes the use of owning_layer_ for accessing
property trees and debug colors, and for gettng the surface's
effect tree index. This also renames the OwningLayerId() method to id().

BUG= 611883 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

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

[modify] https://crrev.com/740a49caf190bab13f8fdfd0979b29e09752da6b/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/740a49caf190bab13f8fdfd0979b29e09752da6b/cc/layers/render_surface_impl.h
[modify] https://crrev.com/740a49caf190bab13f8fdfd0979b29e09752da6b/cc/trees/damage_tracker.cc
[modify] https://crrev.com/740a49caf190bab13f8fdfd0979b29e09752da6b/cc/trees/draw_property_utils.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Nov 7 2016

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

commit 84667306ea7de0c234ad66737a3c519c21511ade
Author: ajuma <ajuma@chromium.org>
Date: Mon Nov 07 23:36:20 2016

Revert of cc: Remove more references to owning_layer_ from RenderSurfaceImpl (patchset #2 id:20001 of https://codereview.chromium.org/2460413003/ )

Reason for revert:
Possibly caused a regression in draw properties computation time (see  http://crbug.com/663068 ).

Original issue's description:
> cc: Remove more references to owning_layer_ from RenderSurfaceImpl
>
> This removes more dependencies of RenderSurfaceImpl on its owning layer.
> Specifically, this removes the use of owning_layer_ for accessing
> property trees and debug colors, and for gettng the surface's
> effect tree index. This also renames the OwningLayerId() method to id().
>
> BUG= 611883 
> CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
>
> Committed: https://crrev.com/740a49caf190bab13f8fdfd0979b29e09752da6b
> Cr-Commit-Position: refs/heads/master@{#428991}

TBR=jaydasika@chromium.org,weiliangc@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 611883 , 663068 

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

[modify] https://crrev.com/84667306ea7de0c234ad66737a3c519c21511ade/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/84667306ea7de0c234ad66737a3c519c21511ade/cc/layers/render_surface_impl.h
[modify] https://crrev.com/84667306ea7de0c234ad66737a3c519c21511ade/cc/trees/damage_tracker.cc
[modify] https://crrev.com/84667306ea7de0c234ad66737a3c519c21511ade/cc/trees/draw_property_utils.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Nov 24 2016

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

commit fa5b0164962353a8e0e3ad6597ee9723a1c51985
Author: ajuma <ajuma@chromium.org>
Date: Thu Nov 24 16:44:46 2016

Reland of cc: Remove more references to owning_layer_ from RenderSurfaceImpl (patchset #1 id:1 of https://codereview.chromium.org/2483033002/ )

Reason for revert:
This turned out not to be the cause of the regression in draw properties computation time.

Original issue's description:
> Revert of cc: Remove more references to owning_layer_ from RenderSurfaceImpl (patchset #2 id:20001 of https://codereview.chromium.org/2460413003/ )
>
> Reason for revert:
> Possibly caused a regression in draw properties computation time (see  http://crbug.com/663068 ).
>
> Original issue's description:
> > cc: Remove more references to owning_layer_ from RenderSurfaceImpl
> >
> > This removes more dependencies of RenderSurfaceImpl on its owning layer.
> > Specifically, this removes the use of owning_layer_ for accessing
> > property trees and debug colors, and for gettng the surface's
> > effect tree index. This also renames the OwningLayerId() method to id().
> >
> > BUG= 611883 
> > CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
> >
> > Committed: https://crrev.com/740a49caf190bab13f8fdfd0979b29e09752da6b
> > Cr-Commit-Position: refs/heads/master@{#428991}
>
> TBR=jaydasika@chromium.org,weiliangc@chromium.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG= 611883 , 663068 
>
> Committed: https://crrev.com/84667306ea7de0c234ad66737a3c519c21511ade
> Cr-Commit-Position: refs/heads/master@{#430419}

BUG= 611883 , 663068 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

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

[modify] https://crrev.com/fa5b0164962353a8e0e3ad6597ee9723a1c51985/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/fa5b0164962353a8e0e3ad6597ee9723a1c51985/cc/layers/render_surface_impl.h
[modify] https://crrev.com/fa5b0164962353a8e0e3ad6597ee9723a1c51985/cc/trees/damage_tracker.cc
[modify] https://crrev.com/fa5b0164962353a8e0e3ad6597ee9723a1c51985/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp

Comment 11 by ajuma@chromium.org, Jan 10 2017

Blockedon: 679836

Comment 12 by ajuma@chromium.org, Jan 10 2017

Blockedon: 679837

Comment 13 by ajuma@chromium.org, Jan 10 2017

Blockedon: 679842
Project Member

Comment 14 by bugdroid1@chromium.org, Jan 17 2017

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

commit 0cf25b2f6bac451a6b6449398e30809607ec37bb
Author: ajuma <ajuma@chromium.org>
Date: Tue Jan 17 21:58:33 2017

cc: Remove calls to owning_layer_->DrawTransform in RenderSurfaceImpl

This replaces calls to owning_layer_->DrawTransform with calls to
OwningEffectNode()->surface_contents_scale.

Since this removes the last remaining use of owning_layer_, this also
deletes RenderSurfaceImpl::owning_layer_.

BUG= 611883 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

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

[modify] https://crrev.com/0cf25b2f6bac451a6b6449398e30809607ec37bb/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/0cf25b2f6bac451a6b6449398e30809607ec37bb/cc/layers/render_surface_impl.h

Project Member

Comment 15 by bugdroid1@chromium.org, Jan 27 2017

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

commit 35b24f6319f8516d7393dd8cd68225cf0cedaa2f
Author: ajuma <ajuma@chromium.org>
Date: Fri Jan 27 21:23:09 2017

cc: Remove direct calls to LayerImpl::SetHasRenderSurface from tests

This replaces most calls to LayerImpl::SetHasRenderSurface in unit
tests with setting LayerImpl::test_properties::force_render_surface,
except for calls that involve the root layer and calls in LayerImplTests.
Calls that involve the root layer are just deleted without replacement,
since the root layer always has a render surface. Calls in LayerImplTests
can be deleted when LayerImpl::SetHasRenderSurface is itself deleted.

BUG= 611883 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

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

[modify] https://crrev.com/35b24f6319f8516d7393dd8cd68225cf0cedaa2f/cc/layers/picture_layer_impl_unittest.cc
[modify] https://crrev.com/35b24f6319f8516d7393dd8cd68225cf0cedaa2f/cc/layers/render_surface_impl_unittest.cc
[modify] https://crrev.com/35b24f6319f8516d7393dd8cd68225cf0cedaa2f/cc/layers/render_surface_unittest.cc
[modify] https://crrev.com/35b24f6319f8516d7393dd8cd68225cf0cedaa2f/cc/test/layer_test_common.cc
[modify] https://crrev.com/35b24f6319f8516d7393dd8cd68225cf0cedaa2f/cc/tiles/tile_manager_unittest.cc
[modify] https://crrev.com/35b24f6319f8516d7393dd8cd68225cf0cedaa2f/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/35b24f6319f8516d7393dd8cd68225cf0cedaa2f/cc/trees/layer_tree_host_impl_unittest.cc
[modify] https://crrev.com/35b24f6319f8516d7393dd8cd68225cf0cedaa2f/cc/trees/layer_tree_impl_unittest.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Feb 23 2017

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

commit 6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf
Author: ajuma <ajuma@chromium.org>
Date: Thu Feb 23 14:07:12 2017

cc: Move render surface ownership from layers to the effect tree

This moves ownership of render surfaces from LayerImpl to the effect
tree. This is a step towards removing the assumption that each render
surface has a corresponding layer. After this, the main remaining step
is replacing iteration over the render surface layer list with iteration
over the effect tree and layer list.

BUG= 611883 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

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

[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/layers/layer_impl.cc
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/layers/layer_impl.h
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/layers/layer_impl_unittest.cc
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/layers/layer_iterator.h
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/layers/render_surface_impl.h
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/trees/damage_tracker.cc
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/trees/draw_property_utils.cc
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/trees/effect_node.cc
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/trees/effect_node.h
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/trees/layer_tree_host_common.cc
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/trees/layer_tree_host_impl_unittest.cc
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/trees/layer_tree_impl.cc
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/trees/occlusion_tracker.cc
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/trees/property_tree.cc
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/trees/property_tree.h
[modify] https://crrev.com/6b96f4cc4a05c50afd3091cf3bbdd0ecd8990cdf/cc/trees/property_tree_builder.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Apr 4 2017

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

commit 95621958b771f10bac0a7690cdbc6f610573e8a1
Author: ajuma <ajuma@chromium.org>
Date: Tue Apr 04 19:58:14 2017

cc: Replace LayerIterator with iterator that walks layer list and effect tree

LayerIterator was used to traverse the render surface layer list in
front-to-back order. This assumed that every render surface had a
corresponding layer that could be used to represent it. In the future
we want to be able to create render surfaces for effect nodes that don't
have any owning layer.

This CL replaces LayerIterator with EffectTreeLayerListIterator, an
iterator that visits layer and render surfaces in the same order as
LayerIterator, but using only the layer list and effect tree, not the
render surface layer list.

BUG= 611883 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

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

[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/BUILD.gn
[add] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/layers/effect_tree_layer_list_iterator.cc
[add] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/layers/effect_tree_layer_list_iterator.h
[rename] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/layers/effect_tree_layer_list_iterator_unittest.cc
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/layers/layer_impl.cc
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/layers/layer_impl.h
[delete] https://crrev.com/dfdfa5a0d0415d80b0f284e14e90638c4b54b025/cc/layers/layer_iterator.h
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/layers/layer_list_iterator.h
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/layers/render_surface_impl.h
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/trees/damage_tracker.cc
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/trees/debug_rect_history.cc
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/trees/debug_rect_history.h
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/trees/layer_tree_host.cc
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/trees/layer_tree_host_common.cc
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/trees/layer_tree_host_unittest_copyrequest.cc
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/trees/layer_tree_impl.cc
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/trees/occlusion_tracker.cc
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/trees/occlusion_tracker.h
[modify] https://crrev.com/95621958b771f10bac0a7690cdbc6f610573e8a1/cc/trees/occlusion_tracker_unittest.cc

Comment 18 by enne@chromium.org, Apr 14 2017

Cc: ajuma@chromium.org
 Issue 557164  has been merged into this issue.
Project Member

Comment 19 by bugdroid1@chromium.org, Apr 18 2017

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

commit 9c92fa02ca4c58cf5338ac0c7d59cdd3cf22ed13
Author: ajuma <ajuma@chromium.org>
Date: Tue Apr 18 19:53:08 2017

cc: Make DamageTracker use the effect tree and layer list

This makes DamageTracker use the effect tree and layer list rather than
traversing the render surface layer list.

The ordering requirements that we need to maintain are:
1) Each render surface's damage must be computed before its target's
   damage can be computed.
2) When accumulating the damage for a render surface, contributing
   layers and surfaces must be visited in draw order, since a
   contributing surface with a background filter expands damage from
   contributors behind it (before it in draw order) but not from
   contributors after it.

We do this by visiting the top-level layer list in draw order, adding
the damage for each layer to its target's accumulated damage. Whenever
all of a surface's contributors have been visited (this can be determined
using the effect tree and each layer's effect tree index), the surface's
damage is computed and then added to its own target's accumulated damage.

BUG= 611883 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

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

[modify] https://crrev.com/9c92fa02ca4c58cf5338ac0c7d59cdd3cf22ed13/cc/layers/effect_tree_layer_list_iterator.cc
[modify] https://crrev.com/9c92fa02ca4c58cf5338ac0c7d59cdd3cf22ed13/cc/trees/damage_tracker.cc
[modify] https://crrev.com/9c92fa02ca4c58cf5338ac0c7d59cdd3cf22ed13/cc/trees/damage_tracker.h
[modify] https://crrev.com/9c92fa02ca4c58cf5338ac0c7d59cdd3cf22ed13/cc/trees/damage_tracker_unittest.cc
[modify] https://crrev.com/9c92fa02ca4c58cf5338ac0c7d59cdd3cf22ed13/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/9c92fa02ca4c58cf5338ac0c7d59cdd3cf22ed13/cc/trees/layer_tree_host_impl.h
[modify] https://crrev.com/9c92fa02ca4c58cf5338ac0c7d59cdd3cf22ed13/cc/trees/property_tree.cc
[modify] https://crrev.com/9c92fa02ca4c58cf5338ac0c7d59cdd3cf22ed13/cc/trees/property_tree.h

Project Member

Comment 20 by bugdroid1@chromium.org, Apr 28 2017

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

commit b784ef49f2e1609ccec5007fe9229186d34a432d
Author: ajuma <ajuma@chromium.org>
Date: Fri Apr 28 23:01:52 2017

cc: Replace render surface layer list with a render surface list

The render surface layer list structure consisted of a top level
list of layers representing render surfaces, along with a list of
layers at each surface representing contributing layers or surfaces.

This CL replaces the render surface layer list with a top level
list of surfaces. Individual surfaces no longer store a list of
contributors.

BUG= 611883 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

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

[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/layers/effect_tree_layer_list_iterator_unittest.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/layers/layer_collections.h
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/layers/layer_position_constraint_unittest.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/layers/render_surface_impl.h
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/layers/render_surface_unittest.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/layers/surface_layer_impl_unittest.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/output/bsp_tree_perftest.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/test/layer_test_common.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/damage_tracker.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/damage_tracker.h
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/damage_tracker_unittest.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/debug_rect_history.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/debug_rect_history.h
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/layer_tree_host_common.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/layer_tree_host_common.h
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/layer_tree_host_common_perftest.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/layer_tree_host_impl.h
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/layer_tree_host_impl_unittest.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/layer_tree_impl.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/layer_tree_impl.h
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/layer_tree_impl_unittest.cc
[modify] https://crrev.com/b784ef49f2e1609ccec5007fe9229186d34a432d/cc/trees/occlusion_tracker_unittest.cc

Project Member

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

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

commit 651848a51fcc175e9a42f588efc3d7d138ccaa36
Author: ajuma <ajuma@chromium.org>
Date: Mon May 01 21:23:45 2017

cc: Rename LayerImpl::is_drawn_render_surface_layer_list_member

Since there's no longer a render surface layer list, this renames
LayerImpl::is_drawn_render_surface_layer_list_member to
contributes_to_drawn_render_surface.

BUG= 611883 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

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

[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/layers/effect_tree_layer_list_iterator.cc
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/layers/layer_impl.cc
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/layers/layer_impl.h
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/layers/picture_layer_impl.cc
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/layers/picture_layer_impl_unittest.cc
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/tiles/tile_manager_unittest.cc
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/trees/damage_tracker.cc
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/trees/damage_tracker_unittest.cc
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/trees/debug_rect_history.cc
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/trees/layer_tree_host_common.cc
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/trees/layer_tree_host_unittest_occlusion.cc
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/trees/layer_tree_impl.cc
[modify] https://crrev.com/651848a51fcc175e9a42f588efc3d7d138ccaa36/cc/trees/layer_tree_impl_unittest.cc

Status: Fixed (was: Assigned)

Sign in to add a comment