WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
88386
shouldSuppressPaintingLayer shouldn't be called on every RenderLayers
https://bugs.webkit.org/show_bug.cgi?id=88386
Summary
shouldSuppressPaintingLayer shouldn't be called on every RenderLayers
Julien Chaffraix
Reported
2012-06-05 18:40:49 PDT
After doing some archeology (see
r16129
), the code is used to avoid FOUCs by preventing paints to propagate to child RenderLayers (meaning that there will be a flash to white instead). It was later extended to allow for paints suppression. All the conditions that the function checks are tied to the document - the exception being that it checks for child layer - which means that instead of having a fixed cost per paint phase, it's a cost per RenderLayer::paintLayer. On
http://dglazkov.github.com/performance-tests/biggrid.html
, this is an ~8 - 10% cost as we need to do a lot of paintLayer calls. At the time the function was introduced, it's unclear if the painting went through a single point as it does now but we can easily move the code to the FrameView now. Patch forthcoming.
Attachments
Proposed change v1.
(6.58 KB, patch)
2012-06-05 19:41 PDT
,
Julien Chaffraix
simon.fraser
: review-
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Julien Chaffraix
Comment 1
2012-06-05 19:41:47 PDT
Created
attachment 145917
[details]
Proposed change v1.
Simon Fraser (smfr)
Comment 2
2012-06-05 20:29:13 PDT
Comment on
attachment 145917
[details]
Proposed change v1. What happens when there are compositing layers, which can enter painting on a non-root RenderLayer? Or do we never have compositing layers this early on?
Simon Fraser (smfr)
Comment 3
2012-06-06 08:23:54 PDT
Comment on
attachment 145917
[details]
Proposed change v1. r- until we resolve the compositing issue.
Julien Chaffraix
Comment 4
2012-06-06 09:21:43 PDT
(In reply to
comment #2
)
> (From update of
attachment 145917
[details]
) > What happens when there are compositing layers, which can enter painting on a non-root RenderLayer? Or do we never have compositing layers this early on?
The compositing code is bypassing the checks for the owning layer already as RenderLayerBacking::paintContents calls directly RenderLayer::paintLayerContents. However you would not paint the descendant layers as you would need to go through RenderLayer::paintLayer. I don't think anything prevents us from having compositing layers during a potential FOUC so the logic needs to be changed.
Julien Chaffraix
Comment 5
2012-06-06 10:46:55 PDT
Mhh, it also looks like the new logic wouldn't repaint the RenderView or the document's element which means we wouldn't paint the background and do a "flash to white" like the old code. It doesn't sound like a good idea to change that.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug