RESOLVED FIXED 71869
[Chromium] Implement tile-sized painting using SkPicture
https://bugs.webkit.org/show_bug.cgi?id=71869
Summary [Chromium] Implement tile-sized painting using SkPicture
David Reveman
Reported 2011-11-08 17:54:53 PST
Add texture uploader that paints tile-sized chunks using SkPicture recording and playback. Expose setting which allows this texture updater to be turned on/off.
Attachments
Patch (15.93 KB, patch)
2011-11-08 18:36 PST, David Reveman
no flags
Patch (16.16 KB, patch)
2011-11-09 14:09 PST, David Reveman
no flags
Patch (20.19 KB, patch)
2011-11-10 12:41 PST, David Reveman
no flags
Patch (19.86 KB, patch)
2011-11-11 15:29 PST, David Reveman
webkit.review.bot: commit-queue-
Patch (19.91 KB, patch)
2011-11-15 12:37 PST, David Reveman
no flags
Patch (17.71 KB, patch)
2011-11-18 15:28 PST, David Reveman
no flags
Patch (17.73 KB, patch)
2011-11-18 15:41 PST, David Reveman
no flags
Patch (14.81 KB, patch)
2011-11-20 16:25 PST, David Reveman
no flags
Patch (14.81 KB, patch)
2011-11-22 16:53 PST, David Reveman
no flags
Patch (14.80 KB, patch)
2011-12-02 10:55 PST, David Reveman
no flags
Patch (18.65 KB, patch)
2011-12-05 17:31 PST, David Reveman
no flags
Patch (18.58 KB, patch)
2011-12-06 13:16 PST, David Reveman
no flags
David Reveman
Comment 1 2011-11-08 18:36:10 PST
Adrienne Walker
Comment 2 2011-11-09 13:50:23 PST
Comment on attachment 114191 [details] Patch I am still worried about the memory behavior of keeping around a CPU-side buffer of pixels for every tile that ever gets painted. When does this get freed?
David Reveman
Comment 3 2011-11-09 14:09:10 PST
David Reveman
Comment 4 2011-11-09 14:11:26 PST
(In reply to comment #2) > (From update of attachment 114191 [details]) > I am still worried about the memory behavior of keeping around a CPU-side buffer of pixels for every tile that ever gets painted. When does this get freed? Sorry, I meant to fix that. Latest patch allocates the buffer in ::prepareRect and frees after using it in ::updateRect.
David Reveman
Comment 5 2011-11-10 12:41:08 PST
WebKit Review Bot
Comment 6 2011-11-10 12:42:49 PST
Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.
David Reveman
Comment 7 2011-11-11 15:29:42 PST
WebKit Review Bot
Comment 8 2011-11-12 15:09:09 PST
Comment on attachment 114787 [details] Patch Attachment 114787 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/10447798
Darin Fisher (:fishd, Google)
Comment 9 2011-11-14 11:12:59 PST
Comment on attachment 114787 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=114787&action=review > Source/WebKit/chromium/public/WebSettings.h:136 > + virtual void setPerTilePainting(bool) = 0; why do you need to convey this setting in two places? WebSettings and WebLayerTreeView::Settings?
David Reveman
Comment 10 2011-11-14 11:47:58 PST
(In reply to comment #9) > (From update of attachment 114787 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=114787&action=review > > > Source/WebKit/chromium/public/WebSettings.h:136 > > + virtual void setPerTilePainting(bool) = 0; > > why do you need to convey this setting in two places? WebSettings and WebLayerTreeView::Settings? No, I don't think we do. This is my first time adding a compositor setting. What's the rational used to deciding the place a setting belongs to? I couldn't tell based on existing settings.
David Reveman
Comment 11 2011-11-15 12:37:19 PST
Adrienne Walker
Comment 12 2011-11-16 14:37:06 PST
Comment on attachment 115221 [details] Patch This looks great. I wonder a little bit if this should be the default path, because it fixes the "paint aggregator" problem.
David Reveman
Comment 13 2011-11-18 15:28:14 PST
David Reveman
Comment 14 2011-11-18 15:41:21 PST
David Reveman
Comment 15 2011-11-20 16:25:18 PST
David Reveman
Comment 16 2011-11-21 12:39:39 PST
(In reply to comment #9) > (From update of attachment 114787 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=114787&action=review > > > Source/WebKit/chromium/public/WebSettings.h:136 > > + virtual void setPerTilePainting(bool) = 0; > > why do you need to convey this setting in two places? WebSettings and WebLayerTreeView::Settings? Removed the WebLayerTreeView::Settings changes from the latest patch. Only in WebSettings now.
David Reveman
Comment 17 2011-11-22 16:53:18 PST
David Reveman
Comment 18 2011-12-02 10:55:06 PST
David Reveman
Comment 19 2011-12-05 17:31:35 PST
James Robinson
Comment 20 2011-12-06 13:07:33 PST
Comment on attachment 117961 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=117961&action=review This looks great, let's do it! > Source/WebCore/platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:66 > + explicit BitmapSkPictureCanvasLayerTextureUpdater(PassOwnPtr<LayerPainterChromium>, bool useMapTexSubImage); you don't need 'explicit' for 2-arg c'tors
David Reveman
Comment 21 2011-12-06 13:16:05 PST
David Reveman
Comment 22 2011-12-06 13:18:43 PST
(In reply to comment #20) > (From update of attachment 117961 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=117961&action=review > > This looks great, let's do it! Yay! > > > Source/WebCore/platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:66 > > + explicit BitmapSkPictureCanvasLayerTextureUpdater(PassOwnPtr<LayerPainterChromium>, bool useMapTexSubImage); > > you don't need 'explicit' for 2-arg c'tors Latest patch removes unnecessary 'explicit' from c'tor.
WebKit Review Bot
Comment 23 2011-12-06 14:37:28 PST
Comment on attachment 118100 [details] Patch Clearing flags on attachment: 118100 Committed r102181: <http://trac.webkit.org/changeset/102181>
WebKit Review Bot
Comment 24 2011-12-06 14:37:34 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.