Split out of bug 84410: http://trac.webkit.org/changeset/91114 added call to backgroundClipRect() relative to the root layer. This is very expensive to compute on every layer.
I have a hacky patch working, but the call to layer->updateLayerPosition() in RenderLayerCompositor::computeCompositingRequirements() is clearing cached clip rects. That call should not be necessary (it's been there from the first version of that file).
Fixing this gets CPU usage on a reduction of http://alliances.commandandconquer.com/en/ down from 100% to 30%, even before the patch on 84410.
Random statistic of the day: in general browsing of top news sites, about 30-40% of RenderLayers had clipRects associated with them.
Created attachment 143739 [details] Patch (not ready for review)
Attachment 143739 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1 Source/WebCore/ChangeLog:8: You should remove the 'No new tests' and either add and list tests, or explain why no new tests were possible. [changelog/nonewtests] [5] Total errors found: 1 in 7 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 144142 [details] Patch
Comment on attachment 144142 [details] Patch r=me
http://trac.webkit.org/changeset/118562
<rdar://problem/12705253>