DescriptionReduce 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 #
Messages
Total messages: 24 (0 generated)
|