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

Issue 183763016: Reduce compositing update in Silk's toggle_drawer by 20% (Closed)

Created:
6 years, 9 months ago by abarth-chromium
Modified:
6 years, 9 months ago
Reviewers:
Ian Vollick, esprehn, ojan
CC:
blink-reviews, bemjb+rendering_chromium.org, dsinclair, zoltan1, eae+blinkwatch, leviw+renderwatch, blink-layers+watch_chromium.org, jchaffraix+rendering, pdr., eseidel, chrishtr
Visibility:
Public.

Description

Reduce compositing update in Silk's toggle_drawer by 20% This reduces the amount of time spent in compositing update for Silk's toggle_drawer test case by 20%. Previously, we would update the geometry for every composited layer mapping during every compositing update, regardless of whether any of the inputs to updateGraphicsLayerGeometry had changed. This CL introduces dirty bits on CompositedLayerMapping to track which RenderLayers underwent a change that could have resulted in changes during updateGraphicsLayerGeometry. This CL takes a basic approach, which is sufficient for toggle_drawer. Specifically, if a RenderLayer changes style, we mark its CompositedLayerMapping (and any ancestors and decendants) as needing a geometry update. If we go through layout or scroll, we trigger a forced update, which updates the geometry of all graphics layers. Over time, we can improve this system to track dirtiness during layout. We might also be able to avoid marking every ancestor dirty if we removed the downward tree walks during updateGraphicsLayerGeometry. Instead, we could compute the descendant-dependant information in an earlier phase and detect whether it changed directly. R=esprehn@chromium.org, ojan@chromium.org Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=168554 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=168604

Patch Set 1 #

Total comments: 2

Patch Set 2 : Fix win build #

Patch Set 3 : Now with failing test #

Patch Set 4 : Another failing test #

Patch Set 5 : rebase #

Patch Set 6 : Fix the glitch #

Total comments: 10

Patch Set 7 : address reviewer comments #

Patch Set 8 : Fix win build #

Unified diffs Side-by-side diffs Delta from patch set Stats (+112 lines, -28 lines) Patch
M Source/core/rendering/RenderLayer.cpp View 1 2 3 4 5 6 7 6 chunks +26 lines, -1 line 0 comments Download
M Source/core/rendering/compositing/CompositedLayerMapping.h View 1 2 3 4 5 6 4 chunks +13 lines, -7 lines 0 comments Download
M Source/core/rendering/compositing/CompositedLayerMapping.cpp View 1 2 3 4 5 6 5 chunks +34 lines, -4 lines 0 comments Download
M Source/core/rendering/compositing/GraphicsLayerUpdater.h View 1 chunk +8 lines, -3 lines 0 comments Download
M Source/core/rendering/compositing/GraphicsLayerUpdater.cpp View 1 2 3 4 5 6 7 chunks +13 lines, -10 lines 0 comments Download
M Source/core/rendering/compositing/RenderLayerCompositor.h View 2 chunks +2 lines, -0 lines 0 comments Download
M Source/core/rendering/compositing/RenderLayerCompositor.cpp View 1 2 3 4 5 6 6 chunks +16 lines, -3 lines 0 comments Download

Messages

Total messages: 24 (0 generated)
abarth-chromium
PTAL. I cleaned this up a bit from what we had on Friday. Hopefully now ...
6 years, 9 months ago (2014-03-02 07:26:35 UTC) #1
esprehn
lgtm, one comment. https://codereview.chromium.org/183763016/diff/1/Source/core/rendering/compositing/GraphicsLayerUpdater.cpp File Source/core/rendering/compositing/GraphicsLayerUpdater.cpp (right): https://codereview.chromium.org/183763016/diff/1/Source/core/rendering/compositing/GraphicsLayerUpdater.cpp#newcode166 Source/core/rendering/compositing/GraphicsLayerUpdater.cpp:166: mapping->willUpdateGeometryOfAllDecendants(); It seems like willUpdateGeometryOfAllDecendants() should ...
6 years, 9 months ago (2014-03-02 08:06:38 UTC) #2
abarth-chromium
https://codereview.chromium.org/183763016/diff/1/Source/core/rendering/compositing/GraphicsLayerUpdater.cpp File Source/core/rendering/compositing/GraphicsLayerUpdater.cpp (right): https://codereview.chromium.org/183763016/diff/1/Source/core/rendering/compositing/GraphicsLayerUpdater.cpp#newcode166 Source/core/rendering/compositing/GraphicsLayerUpdater.cpp:166: mapping->willUpdateGeometryOfAllDecendants(); On 2014/03/02 08:06:38, esprehn wrote: > It seems ...
6 years, 9 months ago (2014-03-02 08:22:35 UTC) #3
abarth-chromium
I think there are still some bugs with this CL. We should try to write ...
6 years, 9 months ago (2014-03-02 17:20:27 UTC) #4
abarth-chromium
Tests for (1) and (3) are in https://codereview.chromium.org/183833016/ I've got a test for (4), but ...
6 years, 9 months ago (2014-03-03 22:58:40 UTC) #5
abarth-chromium
Test for (4) is in https://codereview.chromium.org/185653011 along with a bug fix. :)
6 years, 9 months ago (2014-03-04 01:23:03 UTC) #6
abarth-chromium
This is ready for review again. The nuttiness around visible content can be removed once ...
6 years, 9 months ago (2014-03-05 01:25:58 UTC) #7
ojan
lgtm https://codereview.chromium.org/183763016/diff/80001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/183763016/diff/80001/Source/core/rendering/RenderLayer.cpp#newcode717 Source/core/rendering/RenderLayer.cpp:717: DisableCompositingQueryAsserts disabler; Are there tests that you know ...
6 years, 9 months ago (2014-03-05 18:29:50 UTC) #8
ojan
https://codereview.chromium.org/183763016/diff/80001/Source/core/rendering/compositing/CompositedLayerMapping.cpp File Source/core/rendering/compositing/CompositedLayerMapping.cpp (right): https://codereview.chromium.org/183763016/diff/80001/Source/core/rendering/compositing/CompositedLayerMapping.cpp#newcode1864 Source/core/rendering/compositing/CompositedLayerMapping.cpp:1864: for (RenderLayer* current = m_owningLayer; current; current = current->ancestorCompositingLayer()) ...
6 years, 9 months ago (2014-03-05 18:57:00 UTC) #9
abarth-chromium
Thanks for the review. https://codereview.chromium.org/183763016/diff/80001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/183763016/diff/80001/Source/core/rendering/RenderLayer.cpp#newcode717 Source/core/rendering/RenderLayer.cpp:717: DisableCompositingQueryAsserts disabler; On 2014/03/05 18:29:51, ...
6 years, 9 months ago (2014-03-05 23:12:18 UTC) #10
abarth-chromium
The CQ bit was checked by abarth@chromium.org
6 years, 9 months ago (2014-03-05 23:32:08 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/abarth@chromium.org/183763016/100001
6 years, 9 months ago (2014-03-05 23:33:45 UTC) #12
abarth-chromium
Committed patchset #7 manually as r168554 (presubmit successful).
6 years, 9 months ago (2014-03-06 02:01:59 UTC) #13
abarth-chromium
The CQ bit was checked by abarth@chromium.org
6 years, 9 months ago (2014-03-06 02:54:27 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/abarth@chromium.org/183763016/120001
6 years, 9 months ago (2014-03-06 02:54:54 UTC) #15
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-06 04:42:58 UTC) #16
commit-bot: I haz the power
Try jobs failed on following builders: linux_blink
6 years, 9 months ago (2014-03-06 04:42:59 UTC) #17
abarth-chromium
The CQ bit was checked by abarth@chromium.org
6 years, 9 months ago (2014-03-06 04:54:27 UTC) #18
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/abarth@chromium.org/183763016/120001
6 years, 9 months ago (2014-03-06 04:54:37 UTC) #19
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-06 07:05:47 UTC) #20
commit-bot: I haz the power
Try jobs failed on following builders: win_blink_rel
6 years, 9 months ago (2014-03-06 07:05:47 UTC) #21
esprehn
The CQ bit was checked by esprehn@chromium.org
6 years, 9 months ago (2014-03-06 07:20:26 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/abarth@chromium.org/183763016/120001
6 years, 9 months ago (2014-03-06 07:20:45 UTC) #23
commit-bot: I haz the power
6 years, 9 months ago (2014-03-06 08:26:55 UTC) #24
Message was sent while issue was closed.
Change committed as 168604

Powered by Google App Engine
This is Rietveld 408576698