NEW 77369
Introduce a no-repaint-expected flag
https://bugs.webkit.org/show_bug.cgi?id=77369
Summary Introduce a no-repaint-expected flag
Julien Chaffraix
Reported 2012-01-30 14:23:58 PST
We have been seeing some instances of over-repainting, especially with accelerated compositing enabled (see bug 50417 for example). Our current strategy to avoid regressions was to write a repaint test in those cases. While it does work, it may miss some cases where we really shouldn't be repainting. Layout has a similar flag (RenderObject setNeedsLayoutIsForbidden) which makes me think it would be worthwhile.
Attachments
Simon Fraser (smfr)
Comment 1 2012-01-30 14:28:10 PST
I don't really understand what you're trying to achieve. We generally consider repaints as cheap, as long as they get coalesced into a single paint.
James Robinson
Comment 2 2012-01-30 14:38:16 PST
Could you define your terms more precisely? What exactly do you mean by over-repainting? Too many invalidations sent out, invalidation rects that are too large, too much time calculating repaint rects, something else ... ?
Julien Chaffraix
Comment 3 2012-01-30 15:24:03 PST
> Could you define your terms more precisely? What exactly do you mean by over-repainting? Too many invalidations sent out, invalidation rects that are too large, too much time calculating repaint rects, something else ... ? Good point, I should have said needless invalidations. With the accelerated composition, it appears that some of our invalidation could now be removed. > I don't really understand what you're trying to achieve. We generally consider repaints as cheap, as long as they get coalesced into a single paint. I guess that stemmed from my bad wording of the problem: the invalidation are cheap indeed, painting may not be. It's always better to avoid repainting at all if we can avoid it. Note that I haven't investigated how difficult it would be to add the flag, just that it would be a nice addition.
Simon Fraser (smfr)
Comment 4 2012-01-31 00:16:41 PST
I don't think the layout code is written with avoiding redundant invalidations in mind. I'm not sure there's a win here. There certainly is a win in avoiding redundant painting, but I'm not sure how you detect that.
Note You need to log in before you can comment on or make changes to this bug.