RESOLVED FIXED Bug 85678
Leaf non self-painting layers should bail out early in RenderLayer::paintLayer
https://bugs.webkit.org/show_bug.cgi?id=85678
Summary Leaf non self-painting layers should bail out early in RenderLayer::paintLayer
Julien Chaffraix
Reported 2012-05-04 15:51:16 PDT
Currently RenderLayer::paintLayer() doesn't check for leaf non self-painting layers (it checks for fully transparent layers though). However in this case, we have no work to do. For cases like tables with RenderLayers on every cells where the RenderLayer tree is heavily weighted by its leafs, paintLayer() is introducing some overhead. The benchmark in mind here is http://dglazkov.github.com/performance-tests/biggrid.html. Create a 10,000 rows x 50 columns and tick "overflow: hidden" (which creates an overflow RenderLayer on all the cells): in this case, the paint time when scrolling is around 120 ms on my machine. This is due to walking all RenderLayers and doing some checks to end up not painting as we are not visible and don't need to anyway. Patch forthcoming.
Attachments
Propsed change. Nice improvement. (2.10 KB, patch)
2012-05-04 16:05 PDT, Julien Chaffraix
darin: review+
Julien Chaffraix
Comment 1 2012-05-04 16:05:21 PDT
Created attachment 140349 [details] Propsed change. Nice improvement.
Darin Adler
Comment 2 2012-05-04 17:54:02 PDT
Comment on attachment 140349 [details] Propsed change. Nice improvement. View in context: https://bugs.webkit.org/attachment.cgi?id=140349&action=review > Source/WebCore/ChangeLog:13 > + For RenderLayer trees heavily weigthed by their leafs (like a table with a leaf RenderLayer for each cells), typo: weigthed I would just say: For layer trees that have a large number of leaf nodes
Julien Chaffraix
Comment 3 2012-05-04 19:16:26 PDT
Julien Chaffraix
Comment 4 2012-05-10 10:22:34 PDT
Comment on attachment 140349 [details] Propsed change. Nice improvement. Clear cq? flag from old attachment.
mitz
Comment 5 2012-06-27 00:16:27 PDT
This cause bug 90052.
mitz
Comment 6 2012-06-27 00:16:56 PDT
Sorry, I mean that <http://trac.webkit.org/r116203> caused bug 99052.
Note You need to log in before you can comment on or make changes to this bug.