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

Issue 708513 link

Starred by 2 users

Issue metadata

Status: Archived
Owner:
Closed: Aug 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Render surface caching for Chrome OS UI

Project Member Reported by reve...@chromium.org, Apr 5 2017

Issue description

General render surface caching is hard as explained by  issue 177031 . Chrome OS UI suffers significantly from this so we should try implement a simpler solution that at least solves the problem for the UI.

Current proposal for can be found here:
https://docs.google.com/a/chromium.org/document/d/1VgiArtTNDXjPFb2YmwPIRNHMRg6V6ZfgLWzlTLpDMeA/edit?usp=sharing
 
Project Member

Comment 1 by bugdroid1@chromium.org, Apr 6 2017

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

commit b2b99a3b809f5ecbad2c3c9106dda9835e39a247
Author: reveman <reveman@chromium.org>
Date: Thu Apr 06 23:39:08 2017

cc: Reduce surface contents scale adjustments.

This avoids updating the surface contents scale based on the current
transform if layer_transforms_should_scale_layer_contents is false. The
result is that render surfaces size doesn't need to be adjusted during
transform animations in the Chrome OS UI. This is a prerequisite to
caching of render surfaces and is the preferred behavior as UI raster
scale should not change during these animations.

BUG= 708513 
TEST=cc_unittests --gtest_filter=LayerTreeHostCommonTest.CanAdjustRasterScaleTest
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

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

[modify] https://crrev.com/b2b99a3b809f5ecbad2c3c9106dda9835e39a247/cc/layers/render_surface_impl_unittest.cc
[modify] https://crrev.com/b2b99a3b809f5ecbad2c3c9106dda9835e39a247/cc/test/layer_tree_pixel_test.cc
[modify] https://crrev.com/b2b99a3b809f5ecbad2c3c9106dda9835e39a247/cc/test/layer_tree_pixel_test.h
[modify] https://crrev.com/b2b99a3b809f5ecbad2c3c9106dda9835e39a247/cc/trees/draw_property_utils.cc
[modify] https://crrev.com/b2b99a3b809f5ecbad2c3c9106dda9835e39a247/cc/trees/draw_property_utils.h
[modify] https://crrev.com/b2b99a3b809f5ecbad2c3c9106dda9835e39a247/cc/trees/layer_tree_host_common.cc
[modify] https://crrev.com/b2b99a3b809f5ecbad2c3c9106dda9835e39a247/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/b2b99a3b809f5ecbad2c3c9106dda9835e39a247/cc/trees/layer_tree_host_unittest_copyrequest.cc
[modify] https://crrev.com/b2b99a3b809f5ecbad2c3c9106dda9835e39a247/cc/trees/property_tree.cc
[modify] https://crrev.com/b2b99a3b809f5ecbad2c3c9106dda9835e39a247/cc/trees/property_tree.h

Comment 2 by sadrul@chromium.org, Apr 12 2017

Cc: sadrul@chromium.org

Comment 3 by wutao@chromium.org, May 10 2017

Status: Started (was: Assigned)
Uploaded a cl to add one UMA for CrossFadeAnimation smoothness, used in maximizing windows. So that we can evaluate how much improvement we can achieve by forcing use of render surface.

https://codereview.chromium.org/2869263002/

Comment 4 by wutao@chromium.org, May 10 2017

Uploaded a cl to force use of render surface.

https://codereview.chromium.org/2873593002/
Project Member

Comment 5 by bugdroid1@chromium.org, May 16 2017

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

commit 883ea6f5b904ba890bf23ff0b76bd711f6f343f9
Author: wutao <wutao@chromium.org>
Date: Tue May 16 19:40:51 2017

Add UMA for CrossFadeAnimation.

Add one UMA for CrossFadeAnimation smoothness, used in maximize windows,
so that we can evaluate how much improvement we can achieve by forcing
use of render surface.

BUG= 708513 
TEST=has histogram at local device.

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

[modify] https://crrev.com/883ea6f5b904ba890bf23ff0b76bd711f6f343f9/ash/rotator/screen_rotation_animator.cc
[modify] https://crrev.com/883ea6f5b904ba890bf23ff0b76bd711f6f343f9/ash/wm/overview/scoped_overview_animation_settings_aura.cc
[modify] https://crrev.com/883ea6f5b904ba890bf23ff0b76bd711f6f343f9/ash/wm/window_animations.cc
[modify] https://crrev.com/883ea6f5b904ba890bf23ff0b76bd711f6f343f9/tools/metrics/histograms/histograms.xml

Cc: puneetster@chromium.org
Since this is needed for overview mode used often by convertibles, can we up the priority and attach a more immediate Mstone for this bug?

Cc: reve...@chromium.org
Labels: M61
Owner: wutao@chromium.org
This is already high priority. wutao@, how is progress towards having this in M61 going?

Comment 8 by wutao@chromium.org, Jul 1 2017

I am adding more unit tests for the prototype.
I tried the prototype with cross fade animation. It can cache and invalidate the cache of the render surface correctly.
I am working with the reviewer to identify some corner cases when should we invalidate the cache.

wutao@, thanks for the update! It's exciting to see this land soon!
Cc: weiliangc@chromium.org

Comment 11 by wutao@chromium.org, Jul 10 2017

reveman@, the cl [1] looks mostly good. I will add owners review now.

One biggest concern from weiliangc@ is that should we create a new render surface when we set cache_render_surface flag, even for some simple case we should not create a render_surface for it.
WDYT?

I tested in the cross fade animation with new cache code and create render surface for this simple layer animation, it seems the performance does not change too much.
But for the overview mode animation, it is much complicated and we might get performance improvement from it.

[1] https://codereview.chromium.org/2873593002/
Cross-fade has other issues and controlling raster is also going to be important for smooth animations. This is very important first step. The patch lgtm.

Regarding weiliangc@'s concern; we should be careful to only use this in the UI during animations or in cases where we understand what the side-effects are and have concluded that it's the appropriate solution. The about:flags we added to highlight render surface usage can be used to detect when this is used incorrectly.
Project Member

Comment 13 by bugdroid1@chromium.org, Jul 29 2017

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

commit 36850738fee2ff9af2f0207353d1d3b00ad3f5df
Author: wutao <wutao@chromium.org>
Date: Sat Jul 29 20:24:07 2017

Force use of and cache render surface.

Force use of render surface and cache it when there is no damage from
contributing contents. This will allow us to create a caching mechanism
that is simple to maintain and provides the benefits needed to make the
Chrome OS UI fast.

BUG= 708513 
TEST=manual && new damage_tracker_unittests && surface_aggregator_unittests
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

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

[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/ipc/cc_param_traits.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/ipc/cc_param_traits_unittest.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/ipc/cc_serialization_perftest.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/ipc/render_pass.mojom
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/ipc/render_pass_struct_traits.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/ipc/render_pass_struct_traits.h
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/ipc/struct_traits_unittest.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/layers/layer.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/layers/layer.h
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/layers/layer_impl.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/layers/layer_impl.h
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/layers/layer_impl_test_properties.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/layers/layer_impl_test_properties.h
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/layers/render_surface_impl.h
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/output/direct_renderer.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/quads/render_pass.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/quads/render_pass.h
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/quads/render_pass_unittest.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/trees/damage_tracker.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/trees/damage_tracker.h
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/trees/damage_tracker_unittest.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/trees/draw_property_utils.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/trees/effect_node.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/trees/effect_node.h
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/trees/layer_tree_host_common.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/trees/occlusion_tracker.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/trees/property_tree.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/cc/trees/property_tree_builder.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/components/viz/service/display/surface_aggregator.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/components/viz/service/display/surface_aggregator.h
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/components/viz/service/display/surface_aggregator_unittest.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/ui/compositor/layer.cc
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/ui/compositor/layer.h
[modify] https://crrev.com/36850738fee2ff9af2f0207353d1d3b00ad3f5df/ui/compositor/layer_unittest.cc

Comment 14 by wutao@chromium.org, Jul 30 2017

Labels: -Pri-2 -M61 M-61 Merge-Request-61 Pri-1
This code need to be merged back to M61 to make the signin/lock screen blur work efficiently.
[1]   issue 738185  
Project Member

Comment 15 by sheriffbot@chromium.org, Jul 31 2017

Labels: -Merge-Request-61 Hotlist-Merge-Approved Merge-Approved-61
Your change meets the bar and is auto-approved for M61. Please go ahead and merge the CL to branch 3163 manually. Please contact milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), ketakid @(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 16 by bugdroid1@chromium.org, Jul 31 2017

Labels: -merge-approved-61 merge-merged-3163
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/efe43597129b110a6503c64865c44730a9cf68e2

commit efe43597129b110a6503c64865c44730a9cf68e2
Author: Qiang Xu <warx@chromium.org>
Date: Mon Jul 31 18:47:19 2017

[merge to m61] Force use of and cache render surface.

merge to m61 on behalf of wutao@

Force use of render surface and cache it when there is no damage from
contributing contents. This will allow us to create a caching mechanism
that is simple to maintain and provides the benefits needed to make the
Chrome OS UI fast.

TBR: ochang@chromium.org, weiliangc@chromium.org, reveman@chromium.org,
danakj@chromium.org, jbauman@chromium.org
BUG:  708513 
TEST: manual && new damage_tracker_unittests && surface_aggregator_unittests
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

(cherry picked from commit 36850738fee2ff9af2f0207353d1d3b00ad3f5df)

Review-Url: https://codereview.chromium.org/2873593002
Cr-Original-Commit-Position: refs/heads/master@{#490671}
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I70d920430320c396b262bfe55250e5b6b86bc56f
Reviewed-on: https://chromium-review.googlesource.com/594672
Reviewed-by: Qiang(Joe) Xu <warx@chromium.org>
Cr-Commit-Position: refs/branch-heads/3163@{#171}
Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528}
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/ipc/cc_param_traits.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/ipc/cc_param_traits_unittest.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/ipc/cc_serialization_perftest.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/ipc/render_pass.mojom
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/ipc/render_pass_struct_traits.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/ipc/render_pass_struct_traits.h
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/ipc/struct_traits_unittest.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/layers/layer.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/layers/layer.h
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/layers/layer_impl.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/layers/layer_impl.h
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/layers/layer_impl_test_properties.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/layers/layer_impl_test_properties.h
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/layers/render_surface_impl.h
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/output/direct_renderer.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/quads/render_pass.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/quads/render_pass.h
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/quads/render_pass_unittest.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/trees/damage_tracker.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/trees/damage_tracker.h
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/trees/damage_tracker_unittest.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/trees/draw_property_utils.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/trees/effect_node.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/trees/effect_node.h
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/trees/layer_tree_host_common.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/trees/occlusion_tracker.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/trees/property_tree.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/cc/trees/property_tree_builder.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/components/viz/service/display/surface_aggregator.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/components/viz/service/display/surface_aggregator.h
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/components/viz/service/display/surface_aggregator_unittest.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/ui/compositor/layer.cc
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/ui/compositor/layer.h
[modify] https://crrev.com/efe43597129b110a6503c64865c44730a9cf68e2/ui/compositor/layer_unittest.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Aug 1 2017

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

commit f84da4f6a93cdec02a387218a49da695d2ac19b3
Author: Alex Mineer <amineer@chromium.org>
Date: Tue Aug 01 13:18:24 2017

Revert "[merge to m61] Force use of and cache render surface."

This reverts commit efe43597129b110a6503c64865c44730a9cf68e2.

Reason for revert: Breaks build
BUG: 750991

Original change's description:
> [merge to m61] Force use of and cache render surface.
> 
> merge to m61 on behalf of wutao@
> 
> Force use of render surface and cache it when there is no damage from
> contributing contents. This will allow us to create a caching mechanism
> that is simple to maintain and provides the benefits needed to make the
> Chrome OS UI fast.
> 
> TBR: ochang@chromium.org, weiliangc@chromium.org, reveman@chromium.org,
> danakj@chromium.org, jbauman@chromium.org
> BUG:  708513 
> TEST: manual && new damage_tracker_unittests && surface_aggregator_unittests
> CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
> 
> (cherry picked from commit 36850738fee2ff9af2f0207353d1d3b00ad3f5df)
> 
> Review-Url: https://codereview.chromium.org/2873593002
> Cr-Original-Commit-Position: refs/heads/master@{#490671}
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: I70d920430320c396b262bfe55250e5b6b86bc56f
> Reviewed-on: https://chromium-review.googlesource.com/594672
> Reviewed-by: Qiang(Joe) Xu <warx@chromium.org>
> Cr-Commit-Position: refs/branch-heads/3163@{#171}
> Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528}

TBR=warx@chromium.org

Change-Id: I9b007dc5021fb04465862f6be93de78464709934
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/595908
Reviewed-by: Alex Mineer <amineer@chromium.org>
Cr-Commit-Position: refs/branch-heads/3163@{#206}
Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528}
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/ipc/cc_param_traits.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/ipc/cc_param_traits_unittest.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/ipc/cc_serialization_perftest.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/ipc/render_pass.mojom
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/ipc/render_pass_struct_traits.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/ipc/render_pass_struct_traits.h
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/ipc/struct_traits_unittest.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/layers/layer.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/layers/layer.h
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/layers/layer_impl.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/layers/layer_impl.h
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/layers/layer_impl_test_properties.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/layers/layer_impl_test_properties.h
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/layers/render_surface_impl.h
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/output/direct_renderer.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/quads/render_pass.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/quads/render_pass.h
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/quads/render_pass_unittest.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/trees/damage_tracker.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/trees/damage_tracker.h
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/trees/damage_tracker_unittest.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/trees/draw_property_utils.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/trees/effect_node.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/trees/effect_node.h
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/trees/layer_tree_host_common.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/trees/occlusion_tracker.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/trees/property_tree.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/cc/trees/property_tree_builder.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/components/viz/service/display/surface_aggregator.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/components/viz/service/display/surface_aggregator.h
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/components/viz/service/display/surface_aggregator_unittest.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/ui/compositor/layer.cc
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/ui/compositor/layer.h
[modify] https://crrev.com/f84da4f6a93cdec02a387218a49da695d2ac19b3/ui/compositor/layer_unittest.cc

Project Member

Comment 18 by bugdroid1@chromium.org, Aug 1 2017

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

commit e204efae5661027999f306c27b8aef0b189c063d
Author: Qiang Xu <warx@chromium.org>
Date: Tue Aug 01 21:16:57 2017

reland: [merge to m61] Force use of and cache render surface.

reland: merge to m61 on behalf of wutao@

Force use of render surface and cache it when there is no damage from
contributing contents. This will allow us to create a caching mechanism
that is simple to maintain and provides the benefits needed to make the
Chrome OS UI fast.

TBR: ochang@chromium.org, weiliangc@chromium.org, reveman@chromium.org,
danakj@chromium.org, jbauman@chromium.org
BUG:  708513 
TEST: manual && new damage_tracker_unittests && surface_aggregator_unittests
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

(cherry picked from commit 36850738fee2ff9af2f0207353d1d3b00ad3f5df)

Review-Url: https://codereview.chromium.org/2873593002
Cr-Original-Commit-Position: refs/heads/master@{#490671}
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I299e884f21e5d0969f0dea9fa00c052390c716bd
Reviewed-on: https://chromium-review.googlesource.com/596849
Reviewed-by: Qiang(Joe) Xu <warx@chromium.org>
Cr-Commit-Position: refs/branch-heads/3163@{#219}
Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528}
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/ipc/cc_param_traits.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/ipc/cc_param_traits_unittest.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/ipc/cc_serialization_perftest.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/ipc/render_pass.mojom
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/ipc/render_pass_struct_traits.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/ipc/render_pass_struct_traits.h
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/ipc/struct_traits_unittest.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/layers/layer.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/layers/layer.h
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/layers/layer_impl.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/layers/layer_impl.h
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/layers/layer_impl_test_properties.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/layers/layer_impl_test_properties.h
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/layers/render_surface_impl.h
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/output/direct_renderer.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/quads/render_pass.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/quads/render_pass.h
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/quads/render_pass_unittest.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/trees/damage_tracker.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/trees/damage_tracker.h
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/trees/damage_tracker_unittest.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/trees/draw_property_utils.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/trees/effect_node.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/trees/effect_node.h
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/trees/layer_tree_host_common.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/trees/occlusion_tracker.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/trees/property_tree.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/cc/trees/property_tree_builder.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/components/viz/service/display/surface_aggregator.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/components/viz/service/display/surface_aggregator.h
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/components/viz/service/display/surface_aggregator_unittest.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/ui/compositor/layer.cc
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/ui/compositor/layer.h
[modify] https://crrev.com/e204efae5661027999f306c27b8aef0b189c063d/ui/compositor/layer_unittest.cc

Project Member

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

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

commit 5f8abd27d24cc8605591ec77421a15cdb3433e38
Author: Qiang(Joe) Xu <warx@chromium.org>
Date: Wed Aug 02 18:21:46 2017

Revert "reland: [merge to m61] Force use of and cache render surface."

This reverts commit e204efae5661027999f306c27b8aef0b189c063d.

Reason for revert: breaks viz_unittests target in M-61

Original change's description:
> reland: [merge to m61] Force use of and cache render surface.
> 
> reland: merge to m61 on behalf of wutao@
> 
> Force use of render surface and cache it when there is no damage from
> contributing contents. This will allow us to create a caching mechanism
> that is simple to maintain and provides the benefits needed to make the
> Chrome OS UI fast.
> 
> TBR: ochang@chromium.org, weiliangc@chromium.org, reveman@chromium.org,
> danakj@chromium.org, jbauman@chromium.org
> BUG:  708513 
> TEST: manual && new damage_tracker_unittests && surface_aggregator_unittests
> CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
> 
> (cherry picked from commit 36850738fee2ff9af2f0207353d1d3b00ad3f5df)
> 
> Review-Url: https://codereview.chromium.org/2873593002
> Cr-Original-Commit-Position: refs/heads/master@{#490671}
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: I299e884f21e5d0969f0dea9fa00c052390c716bd
> Reviewed-on: https://chromium-review.googlesource.com/596849
> Reviewed-by: Qiang(Joe) Xu <warx@chromium.org>
> Cr-Commit-Position: refs/branch-heads/3163@{#219}
> Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528}

TBR=warx@chromium.org

Change-Id: Iaa5f960bb5b8f1cd06d0120eb9820c294ae885ed
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/598687
Reviewed-by: Qiang(Joe) Xu <warx@chromium.org>
Cr-Commit-Position: refs/branch-heads/3163@{#241}
Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528}
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/ipc/cc_param_traits.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/ipc/cc_param_traits_unittest.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/ipc/cc_serialization_perftest.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/ipc/render_pass.mojom
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/ipc/render_pass_struct_traits.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/ipc/render_pass_struct_traits.h
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/ipc/struct_traits_unittest.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/layers/layer.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/layers/layer.h
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/layers/layer_impl.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/layers/layer_impl.h
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/layers/layer_impl_test_properties.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/layers/layer_impl_test_properties.h
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/layers/render_surface_impl.h
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/output/direct_renderer.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/quads/render_pass.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/quads/render_pass.h
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/quads/render_pass_unittest.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/trees/damage_tracker.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/trees/damage_tracker.h
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/trees/damage_tracker_unittest.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/trees/draw_property_utils.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/trees/effect_node.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/trees/effect_node.h
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/trees/layer_tree_host_common.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/trees/occlusion_tracker.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/trees/property_tree.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/cc/trees/property_tree_builder.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/components/viz/service/display/surface_aggregator.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/components/viz/service/display/surface_aggregator.h
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/components/viz/service/display/surface_aggregator_unittest.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/ui/compositor/layer.cc
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/ui/compositor/layer.h
[modify] https://crrev.com/5f8abd27d24cc8605591ec77421a15cdb3433e38/ui/compositor/layer_unittest.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Aug 3 2017

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

commit c17be93af7fa74ecb4dd6aa15fcac63975f68ba6
Author: Qiang Xu <warx@chromium.org>
Date: Thu Aug 03 04:23:07 2017

reland: [merge to m61] Force use of and cache render surface.

reland: merge to m61 on behalf of wutao@

Force use of render surface and cache it when there is no damage from
contributing contents. This will allow us to create a caching mechanism
that is simple to maintain and provides the benefits needed to make the
Chrome OS UI fast.

TBR: ochang@chromium.org, weiliangc@chromium.org, reveman@chromium.org,
danakj@chromium.org, jbauman@chromium.org
BUG= 708513 
TEST=manual && new damage_tracker_unittests && surface_aggregator_unittests
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

(cherry picked from commit 36850738fee2ff9af2f0207353d1d3b00ad3f5df)

Review-Url: https://codereview.chromium.org/2873593002
Cr-Original-Commit-Position: refs/heads/master@{#490671}
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: If3622cb872d86ea931f43680897c68a92d42263b
Reviewed-on: https://chromium-review.googlesource.com/599369
Reviewed-by: Qiang(Joe) Xu <warx@chromium.org>
Cr-Commit-Position: refs/branch-heads/3163@{#264}
Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528}
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/ipc/cc_param_traits.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/ipc/cc_param_traits_unittest.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/ipc/cc_serialization_perftest.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/ipc/render_pass.mojom
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/ipc/render_pass_struct_traits.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/ipc/render_pass_struct_traits.h
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/ipc/struct_traits_unittest.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/layers/layer.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/layers/layer.h
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/layers/layer_impl.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/layers/layer_impl.h
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/layers/layer_impl_test_properties.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/layers/layer_impl_test_properties.h
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/layers/render_surface_impl.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/layers/render_surface_impl.h
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/output/direct_renderer.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/quads/render_pass.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/quads/render_pass.h
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/quads/render_pass_unittest.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/trees/damage_tracker.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/trees/damage_tracker.h
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/trees/damage_tracker_unittest.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/trees/draw_property_utils.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/trees/effect_node.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/trees/effect_node.h
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/trees/layer_tree_host_common.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/trees/occlusion_tracker.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/trees/property_tree.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/cc/trees/property_tree_builder.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/components/viz/service/display/surface_aggregator.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/components/viz/service/display/surface_aggregator.h
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/components/viz/service/display/surface_aggregator_unittest.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/ui/compositor/layer.cc
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/ui/compositor/layer.h
[modify] https://crrev.com/c17be93af7fa74ecb4dd6aa15fcac63975f68ba6/ui/compositor/layer_unittest.cc

Status: Fixed (was: Started)
I will close this issue for now.
We are going to use this cache mechanism in animations and other UI effects across CrOS.

Comment 22 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment