With lots of layers this can be very slow as it always traverses the entire layer tree. We should track which branches actually have changes.
Created attachment 307124 [details] patch
Created attachment 307125 [details] patch
<rdar://problem/31631307>
Comment on attachment 307125 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=307125&action=review Nice, I always wanted to do this. > Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:4033 > + if (ancestorCA.m_hasDescendantsWithUncommittedChanges) > + return; > + ancestorCA.m_hasDescendantsWithUncommittedChanges = true; I would prefer you go through a setter and not poke the member variable directly.
Created attachment 307197 [details] patch
https://trac.webkit.org/r215393
Re-opened since this is blocked by bug 170876
Created attachment 307266 [details] patch Enable the optimisation for Mac only for now.
Created attachment 307268 [details] patch
Comment on attachment 307268 [details] patch Clearing flags on attachment: 307268 Committed r215410: <http://trac.webkit.org/changeset/215410>
All reviewed patches have been landed. Closing bug.
That's unfortunate. Do we understand the iOS issue?
I think so. I just wanted to do some more testing on iOS before enabling it.