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

Issue 202683005: optimizing layout performance when only transform3d matrix changed by

Created:
6 years, 9 months ago by yaojie.yan
Modified:
4 years, 9 months ago
CC:
sof, bemjb+rendering_chromium.org, zoltan1, eae+blinkwatch, leviw+renderwatch, dglazkov+blink, adamk+blink_chromium.org, jchaffraix+rendering, pdr., rwlbuis, Inactive
Base URL:
http://src.chromium.org/blink/trunk/
Visibility:
Public.

Description

optimizing layout performance when only transform3d matrix changed by optimizing layout performance when only transform3d matrix changed by removing unnecessary RecomputeCompositingRequirements overhead. It takes long time in compositing stage for pages with many compositing layers such as www.famo.us. But it does not always need to do full compositing(including RecomputeCompositingRequirements and UpdateLayerTreeGeometry) for some JS trigged css animations(js changes transform3d matrix). In this patch, if only style Changed with css-transform3d-matrix, we can just do UpdateLayerTreeGeometry, since no-composting layers added or removed. With this optimization, it improve www.famo.us fps from 10fps to 17fps. BUG=337087

Patch Set 1 #

Total comments: 7
Unified diffs Side-by-side diffs Delta from patch set Stats (+43 lines, -12 lines) Patch
M Source/core/dom/Document.h View 2 chunks +3 lines, -0 lines 0 comments Download
M Source/core/dom/Document.cpp View 2 chunks +3 lines, -2 lines 0 comments Download
M Source/core/frame/FrameView.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/frame/FrameView.cpp View 2 chunks +3 lines, -3 lines 0 comments Download
M Source/core/rendering/RenderObject.cpp View 3 chunks +11 lines, -3 lines 0 comments Download
M Source/core/rendering/compositing/RenderLayerCompositor.h View 2 chunks +3 lines, -1 line 1 comment Download
M Source/core/rendering/compositing/RenderLayerCompositor.cpp View 4 chunks +10 lines, -1 line 3 comments Download
M Source/core/rendering/style/RenderStyle.cpp View 1 chunk +5 lines, -0 lines 0 comments Download
M Source/core/rendering/style/RenderStyleConstants.h View 2 chunks +4 lines, -1 line 3 comments Download

Messages

Total messages: 8 (1 generated)
yaojie.yan
Hi, I resubmitted the original patch(#185693002) to fix the Layout testing failure. Now all the ...
6 years, 9 months ago (2014-03-18 08:53:36 UTC) #1
Ian Vollick
https://codereview.chromium.org/202683005/diff/1/Source/core/rendering/compositing/RenderLayerCompositor.cpp File Source/core/rendering/compositing/RenderLayerCompositor.cpp (right): https://codereview.chromium.org/202683005/diff/1/Source/core/rendering/compositing/RenderLayerCompositor.cpp#newcode388 Source/core/rendering/compositing/RenderLayerCompositor.cpp:388: if (m_layersChanged) I think this is a layering violation. ...
6 years, 9 months ago (2014-03-18 11:59:15 UTC) #2
abarth-chromium
not lgtm I don't think this change is correct conceptually. If you change the transform ...
6 years, 9 months ago (2014-03-18 15:22:23 UTC) #3
Ian Vollick
On 2014/03/18 15:22:23, abarth wrote: > not lgtm > > I don't think this change ...
6 years, 9 months ago (2014-03-18 15:39:55 UTC) #4
yaojie.yan
On 2014/03/18 15:22:23, abarth wrote: > not lgtm > > I don't think this change ...
6 years, 9 months ago (2014-03-20 07:42:15 UTC) #5
yaojie.yan
https://codereview.chromium.org/202683005/diff/1/Source/core/rendering/compositing/RenderLayerCompositor.cpp File Source/core/rendering/compositing/RenderLayerCompositor.cpp (right): https://codereview.chromium.org/202683005/diff/1/Source/core/rendering/compositing/RenderLayerCompositor.cpp#newcode388 Source/core/rendering/compositing/RenderLayerCompositor.cpp:388: if (m_layersChanged) Yes, but my REAL purpose is to ...
6 years, 9 months ago (2014-03-20 07:43:19 UTC) #6
abarth-chromium
6 years, 9 months ago (2014-03-20 16:09:57 UTC) #7
On 2014/03/20 07:42:15, yaojie.yan wrote:
> Yes, you are correct, but the famo.us is more specific case, the transform3d
> object also is transparent. I think its transform do not effects the overlap
> testing.

That's not correct.  If something later in paint order overlaps the element,
then it will need to be promoted due to overlap with the transformed element.

Powered by Google App Engine
This is Rietveld 408576698