New issue
Advanced search Search tips

Issue 879650 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 8
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 836886



Sign in to add a comment

[BlinkGenPropertyTrees] Do perf analysis of cc damage

Project Member Reported by pdr@chromium.org, Aug 31

Issue description

We should do a perf analysis of cc damage with --enable-blink-gen-property-trees. The task here is to look at some small invalidation such as a blinking cursor and ensure that the cc damage is also small (i.e., not full-screen).
 
Project Member

Comment 1 by bugdroid1@chromium.org, Sep 21

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

commit f48e972b25a15dae4c3ddfc33b2256e11fda5527
Author: Philip Rogers <pdr@chromium.org>
Date: Fri Sep 21 18:04:08 2018

[BlinkGenPropertyTrees] Minimize damage during layer updates

This change introduces cc::Layer::SetChildLayerList and uses it to
avoid re-attaching all layers every frame when using layer lists. This
is one step closer to sending a layer list to cc instead of a layer
tree.

The primary change is to remove the call to RemoveChildLayers in
PaintArtifactCompositor::Update. Instead of attaching layers to the
root layer incrementally, they are built up using LayerListBuilder and
then set on the root layer in a single step.

This approach revealed some dependencies that are no longer true. Because
the host tracks layers that need to push, it is important that Layer's
host is set prior to calling any Layer setters. Layer::SetElementId only
worked in layer list mode because the Layer's host was not set; this has
been fixed.

Bug:  879650 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux-blink-gen-property-trees;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I894297dff3c1cdebacb3485abc3bec1d855e9afc
Reviewed-on: https://chromium-review.googlesource.com/1226264
Reviewed-by: enne <enne@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593254}
[modify] https://crrev.com/f48e972b25a15dae4c3ddfc33b2256e11fda5527/cc/layers/layer.cc
[modify] https://crrev.com/f48e972b25a15dae4c3ddfc33b2256e11fda5527/cc/layers/layer.h
[modify] https://crrev.com/f48e972b25a15dae4c3ddfc33b2256e11fda5527/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/f48e972b25a15dae4c3ddfc33b2256e11fda5527/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
[modify] https://crrev.com/f48e972b25a15dae4c3ddfc33b2256e11fda5527/third_party/blink/renderer/core/exported/web_frame_test.cc
[modify] https://crrev.com/f48e972b25a15dae4c3ddfc33b2256e11fda5527/third_party/blink/renderer/core/frame/frame_test_helpers.cc
[modify] https://crrev.com/f48e972b25a15dae4c3ddfc33b2256e11fda5527/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc
[modify] https://crrev.com/f48e972b25a15dae4c3ddfc33b2256e11fda5527/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h
[modify] https://crrev.com/f48e972b25a15dae4c3ddfc33b2256e11fda5527/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
[modify] https://crrev.com/f48e972b25a15dae4c3ddfc33b2256e11fda5527/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.h
[modify] https://crrev.com/f48e972b25a15dae4c3ddfc33b2256e11fda5527/third_party/blink/renderer/platform/graphics/graphics_layer.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 5

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

commit 16e374e6736d205c9dfeb6bf06861f3b9f5fe491
Author: Philip Rogers <pdr@chromium.org>
Date: Fri Oct 05 02:12:14 2018

[BlinkGenPropertyTrees] Do not modify property trees via Layer API

This is a followup to https://crrev.com/593254 and stops changing
property trees via the cc::Layer API when using layer lists. The only
remaining change is through Layer::UpdateScrollOffset.

Bug:  879650 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Id2ff7211b7717f0954fe37d6c9aedb7f9a6f7d14
Reviewed-on: https://chromium-review.googlesource.com/c/1262455
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596962}
[modify] https://crrev.com/16e374e6736d205c9dfeb6bf06861f3b9f5fe491/cc/layers/layer.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 9

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

commit f362b3e85778774538f19ccd67d3013bce7d0f1d
Author: Philip Rogers <pdr@chromium.org>
Date: Tue Oct 09 05:43:02 2018

[BlinkGenPropertyTrees] Do not modify scroll offset in property trees

This is a followup to https://crrev.com/593254 and https://crrev.com/596962
and stops changing property trees via the cc::Layer API when using layer lists.

Bug:  879650 
Cq-Include-Trybots: luci.chromium.try:linux-blink-gen-property-trees;luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ia0d49943f97d2918a09fa5623662476d01bb5066
Reviewed-on: https://chromium-review.googlesource.com/c/1269519
Commit-Queue: David Bokan <bokan@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597811}
[modify] https://crrev.com/f362b3e85778774538f19ccd67d3013bce7d0f1d/cc/layers/layer.cc

Status: Fixed (was: Assigned)

Sign in to add a comment