Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Issue 2266223002: cc: Compute draw transforms dynamically. (Closed)

Created:
4 years, 4 months ago by sunxd
Modified:
4 years, 2 months ago
CC:
chromium-reviews, cc-bugs_chromium.org, telemetry-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

cc: Compute draw transforms dynamically. This makes cc stop pre-computing all target space transforms and only compute and cache transforms on demand. The intermediate results will be cached in cc::PropertyTreesCachedData. The cache is invalidated every frame. The following steps are removing transform tree cached data and stoping adding transform nodes for render surfaces. BUG=624120 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel Committed: https://crrev.com/1449b69d9135cfe3223b171f09677434e23906c3 Cr-Commit-Position: refs/heads/master@{#426235}

Patch Set 1 #

Patch Set 2 : Recursively compute the transform #

Patch Set 3 : Use the very first version of SmallMap cache #

Patch Set 4 : Add benchmark #

Patch Set 5 : Rebase #

Patch Set 6 : Use std::map as the cache data structure. #

Patch Set 7 : Measure avg instead of sum #

Patch Set 8 : Rebase #

Patch Set 9 : Minor changes. #

Patch Set 10 : Fix build error #

Total comments: 2

Patch Set 11 : Remove flag verify_transform_tree_calculation #

Patch Set 12 : Remove TransformTree::ComputeTransform #

Patch Set 13 : WIP. #

Patch Set 14 : Fix layout tests #

Total comments: 4

Patch Set 15 : Make PaintArtifactCompositor set needs_update for effect tree. #

Patch Set 16 : The value of success can be tricky. #

Patch Set 17 : Rebase #

Patch Set 18 : Check perf regression reason. #

Patch Set 19 : Check perf regression reason. #

Patch Set 20 : Puzzled #

Patch Set 21 : Puzzled #

Patch Set 22 : Revert ComputeTransforms #

Patch Set 23 : Go back to patch 7 #

Patch Set 24 : Only cache 3d #

Patch Set 25 : Do not compute inverse. #

Patch Set 26 : Do not compute inverse. #

Patch Set 27 : Do not compute inverse. #

Patch Set 28 : Lazy evaluation of inverse #

Patch Set 29 : Android test #

Patch Set 30 : Test more #

Patch Set 31 : Rebase!!! #

Patch Set 32 : Test more #

Patch Set 33 : Cache screen space transforms #

Patch Set 34 : Always compute screen space transform #

Patch Set 35 : Same alg for FromTarget #

Patch Set 36 : Remove flag #

Patch Set 37 : Format #

Patch Set 38 : Rebase #

Patch Set 39 : Fix layout tests. #

Patch Set 40 : Compile error #

Patch Set 41 : Use vectors. #

Patch Set 42 : Rebase!!!! #

Patch Set 43 : Do not cache 3d transforms #

Patch Set 44 : Test. #

Patch Set 45 : Update cached number correctly #

Patch Set 46 : Rebase #

Patch Set 47 : Use one level cache #

Patch Set 48 : Nit #

Total comments: 21

Patch Set 49 : Resolve comments #

Patch Set 50 : Add comments #

Patch Set 51 : Rebase #

Patch Set 52 : Rebase #

Patch Set 53 : Remove script changes. #

Patch Set 54 : Rebase! #

Unified diffs Side-by-side diffs Delta from patch set Stats (+179 lines, -224 lines) Patch
M cc/layers/layer_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 1 chunk +0 lines, -1 line 0 comments Download
M cc/layers/picture_layer_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 1 chunk +0 lines, -1 line 0 comments Download
M cc/layers/scrollbar_layer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 2 chunks +0 lines, -2 lines 0 comments Download
M cc/layers/texture_layer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 1 chunk +0 lines, -1 line 0 comments Download
M cc/output/bsp_tree_perftest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 1 chunk +0 lines, -1 line 0 comments Download
M cc/proto/property_tree.proto View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 1 chunk +0 lines, -1 line 0 comments Download
M cc/test/fake_layer_tree_host.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 1 chunk +0 lines, -1 line 0 comments Download
M cc/test/layer_tree_settings_for_testing.cc View 1 2 3 4 5 6 7 8 9 10 23 24 25 26 27 28 29 30 31 32 33 34 35 1 chunk +0 lines, -1 line 0 comments Download
M cc/test/layer_tree_test.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 1 chunk +0 lines, -1 line 0 comments Download
M cc/test/test_layer_tree_host_base.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 1 chunk +0 lines, -1 line 0 comments Download
M cc/tiles/tile_manager_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 2 chunks +0 lines, -2 lines 0 comments Download
M cc/trees/layer_tree_host_common.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 2 chunks +0 lines, -2 lines 0 comments Download
M cc/trees/layer_tree_host_common.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 4 chunks +0 lines, -6 lines 0 comments Download
M cc/trees/layer_tree_host_common_perftest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 1 chunk +0 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_common_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 1 chunk +0 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 1 chunk +0 lines, -1 line 0 comments Download
M cc/trees/layer_tree_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 1 chunk +0 lines, -1 line 0 comments Download
M cc/trees/layer_tree_settings.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 1 chunk +0 lines, -1 line 0 comments Download
M cc/trees/layer_tree_settings.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 1 chunk +0 lines, -2 lines 0 comments Download
M cc/trees/property_tree.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 7 chunks +38 lines, -13 lines 0 comments Download
M cc/trees/property_tree.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 14 chunks +138 lines, -173 lines 0 comments Download
M cc/trees/property_tree_builder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 2 chunks +0 lines, -8 lines 0 comments Download
M cc/trees/property_tree_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 2 chunks +0 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 3 chunks +3 lines, -0 lines 0 comments Download

Messages

Total messages: 89 (65 generated)
sunxd
The changes in draw_property perf tests will be removed after running a final telemetry before ...
4 years, 3 months ago (2016-09-02 17:07:52 UTC) #9
jaydasika
https://codereview.chromium.org/2266223002/diff/180001/cc/trees/property_tree.cc File cc/trees/property_tree.cc (left): https://codereview.chromium.org/2266223002/diff/180001/cc/trees/property_tree.cc#oldcode330 cc/trees/property_tree.cc:330: combined_transform = ToTarget(current->id, kInvalidNodeId); This is not behind a ...
4 years, 3 months ago (2016-09-02 18:10:01 UTC) #10
sunxd
https://codereview.chromium.org/2266223002/diff/180001/cc/trees/property_tree.cc File cc/trees/property_tree.cc (left): https://codereview.chromium.org/2266223002/diff/180001/cc/trees/property_tree.cc#oldcode330 cc/trees/property_tree.cc:330: combined_transform = ToTarget(current->id, kInvalidNodeId); On 2016/09/02 18:10:01, jaydasika wrote: ...
4 years, 3 months ago (2016-09-02 18:13:10 UTC) #11
sunxd
Actually ComputeTransform, CombineTransformsBetween and CombineTransformsInverseBetween are dead code after this patch, I'm thinking about removing ...
4 years, 3 months ago (2016-09-02 21:51:54 UTC) #14
sunxd
I'm thinking about adding the getdrawtransforms test in next patch.
4 years, 3 months ago (2016-09-06 22:14:22 UTC) #24
ajuma
https://codereview.chromium.org/2266223002/diff/260001/cc/trees/draw_property_utils.cc File cc/trees/draw_property_utils.cc (left): https://codereview.chromium.org/2266223002/diff/260001/cc/trees/draw_property_utils.cc#oldcode902 cc/trees/draw_property_utils.cc:902: DCHECK(success); In which cases is this DCHECK now failing? ...
4 years, 3 months ago (2016-09-07 14:51:23 UTC) #27
sunxd
https://codereview.chromium.org/2266223002/diff/260001/cc/trees/draw_property_utils.cc File cc/trees/draw_property_utils.cc (left): https://codereview.chromium.org/2266223002/diff/260001/cc/trees/draw_property_utils.cc#oldcode902 cc/trees/draw_property_utils.cc:902: DCHECK(success); On 2016/09/07 14:51:23, ajuma wrote: > In which ...
4 years, 3 months ago (2016-09-07 15:20:02 UTC) #28
sunxd
4 years, 3 months ago (2016-09-07 17:15:50 UTC) #29
sunxd
4 years, 3 months ago (2016-09-07 18:11:10 UTC) #30
sunxd
PTAL.
4 years, 2 months ago (2016-10-12 18:42:07 UTC) #57
sunxd
On 2016/10/12 18:42:07, sunxd wrote: > PTAL. The current perf numbers can be found at: ...
4 years, 2 months ago (2016-10-12 19:08:58 UTC) #59
ajuma
https://codereview.chromium.org/2266223002/diff/960001/cc/trees/property_tree.cc File cc/trees/property_tree.cc (right): https://codereview.chromium.org/2266223002/diff/960001/cc/trees/property_tree.cc#newcode180 cc/trees/property_tree.cc:180: needs_update_ = needs_update; Can we make needs_update_ private to ...
4 years, 2 months ago (2016-10-12 20:08:48 UTC) #62
sunxd
https://codereview.chromium.org/2266223002/diff/960001/cc/trees/property_tree.cc File cc/trees/property_tree.cc (right): https://codereview.chromium.org/2266223002/diff/960001/cc/trees/property_tree.cc#newcode180 cc/trees/property_tree.cc:180: needs_update_ = needs_update; On 2016/10/12 20:08:47, ajuma wrote: > ...
4 years, 2 months ago (2016-10-12 21:08:19 UTC) #63
ajuma
Thanks, lgtm assuming the final cluster telemetry results look reasonable. https://codereview.chromium.org/2266223002/diff/960001/cc/trees/property_tree.cc File cc/trees/property_tree.cc (right): https://codereview.chromium.org/2266223002/diff/960001/cc/trees/property_tree.cc#newcode2203 ...
4 years, 2 months ago (2016-10-12 21:37:41 UTC) #64
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2266223002/1060001
4 years, 2 months ago (2016-10-18 15:19:37 UTC) #71
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/283611)
4 years, 2 months ago (2016-10-18 15:29:23 UTC) #73
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2266223002/1060001
4 years, 2 months ago (2016-10-19 14:24:32 UTC) #75
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/285064)
4 years, 2 months ago (2016-10-19 14:43:07 UTC) #77
Ian Vollick
On 2016/10/19 14:43:07, commit-bot: I haz the power wrote: > Try jobs failed on following ...
4 years, 2 months ago (2016-10-19 15:05:46 UTC) #78
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2266223002/1060001
4 years, 2 months ago (2016-10-19 15:06:59 UTC) #80
commit-bot: I haz the power
Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds/90177) ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, ...
4 years, 2 months ago (2016-10-19 15:25:44 UTC) #82
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2266223002/1080001
4 years, 2 months ago (2016-10-19 15:32:17 UTC) #85
commit-bot: I haz the power
Committed patchset #54 (id:1080001)
4 years, 2 months ago (2016-10-19 17:31:21 UTC) #87
commit-bot: I haz the power
4 years, 2 months ago (2016-10-21 13:09:54 UTC) #89
Message was sent while issue was closed.
Patchset 54 (id:??) landed as
https://crrev.com/1449b69d9135cfe3223b171f09677434e23906c3
Cr-Commit-Position: refs/heads/master@{#426235}

Powered by Google App Engine
This is Rietveld 408576698