RESOLVED FIXED 133335
REGRESSION (Margin tiles): Background gradient on dom.spec.whatwg.org is very slow to render
https://bugs.webkit.org/show_bug.cgi?id=133335
Summary REGRESSION (Margin tiles): Background gradient on dom.spec.whatwg.org is very...
Tim Horton
Reported 2014-05-27 21:01:23 PDT
Attachments
patch (4.24 KB, patch)
2014-05-27 21:37 PDT, Tim Horton
simon.fraser: review+
Tim Horton
Comment 1 2014-05-27 21:10:52 PDT
Here's the story: 1. Margin tiles mean that we use drawPattern() instead of draw() for the background gradient, because it gets tiled into the margin. 2. drawPattern() paints into an ImageBuffer and uses that to do the pattern tiling. There was already code in Image::drawTiled to avoid proper ImageBuffer-backed patterned drawing and instead repeatedly call draw() in the case where the tile buffer would be very large, but it was only enabled on iOS. It seems like a pretty reasonable thing to do everywhere, so let's do that (but with a bigger limit than on iOS).
Tim Horton
Comment 2 2014-05-27 21:13:32 PDT
3. The ImageBuffer is the size of the gradient. The gradient on this page is the size of the document. A bitmap the size of the document is nearly 2GB here.
Tim Horton
Comment 3 2014-05-27 21:37:44 PDT
Tim Horton
Comment 4 2014-05-27 21:50:47 PDT
Note You need to log in before you can comment on or make changes to this bug.