Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Issue 2820133005: Revert of Back PaintRecord with PaintOpBuffer instead of SkPicture (Closed)

Created:
3 years, 8 months ago by hidehiko
Modified:
3 years, 8 months ago
CC:
ajuma+watch_chromium.org, blink-reviews, blink-reviews-platform-graphics_chromium.org, Rik, cc-bugs_chromium.org, chromium-reviews, danakj+watch_chromium.org, dshwang, drott+blinkwatch_chromium.org, krit, fmalita+watch_chromium.org, fs, gyuyoung2, jbroman, Justin Novosad, kinuko+watch, kouhei+svg_chromium.org, pdr+graphicswatchlist_chromium.org, pdr+svgwatchlist_chromium.org, rwlbuis, Stephen Chennney, Nico, Vitaly Buka (NO REVIEWS)
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Revert of Back PaintRecord with PaintOpBuffer instead of SkPicture (patchset #42 id:810001 of https://codereview.chromium.org/2768143002/ ) Reason for revert: Reverting due to CrOS breakage. crbug.com/712102 Original issue's description: > Back PaintRecord with PaintOpBuffer instead of SkPicture > > Change the backing of PaintRecord to be a data structure implemented in > cc/paint instead of using SkPicture directly. This new class cribs heavily > from SkLiteDL. > > PaintRecord used to be a typedef to an SkPicture but now is a typedef to > a PaintOpBuffer. (This leaves some flexibility to change this in the > future to an interface without having to modify all of Chromium again.) > > PaintOpBuffer stores a contiguous array of ops, with the ops stored > in place. As an optimization, the first op is stored locally in the > PaintOpBuffer itself to avoid extra allocations for small pictures. > > This patch moves slow path counting from a gpu analysis canvas into > PaintOpBuffer directly. As ops are recorded, slow paths are counted, and > a PaintRecord now knows how many ops it has. This is about a 1.5% savings > for record time (gpu analysis was 2% and 0.5% overhead to record later). > > This patch also implements the SkRecordNoopSaveLayerDrawRestores > optimization from Skia at raster time. This takes save layer (just > opacity) / draw / restore commands and turns them into draws with > opacity. It moves that optimization from Blink at record time inside of > CompositingRecorder and moves it to both DisplayItemList::RasterItem > and PaintOpBuffer::playback (since a save could be either a DisplayItem > or a PaintOp). It's not as robust as Skia's solution and so misses > a few cases that Skia catches, but the rasterize and record on 10k > page agreed that performance was good enough. > > CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 > > Review-Url: https://codereview.chromium.org/2768143002 > Cr-Commit-Position: refs/heads/master@{#464809} > Committed: https://chromium.googlesource.com/chromium/src/+/e49d70a44bf12043cc781390f7fc53ce7b4ac807 TBR=chrishtr@chromium.org,danakj@chromium.org,mtklein@chromium.org,thakis@chromium.org,vitalybuka@chromium.org,vmpstr@chromium.org,enne@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review-Url: https://codereview.chromium.org/2820133005 Cr-Commit-Position: refs/heads/master@{#465196} Committed: https://chromium.googlesource.com/chromium/src/+/ddefb10bee663f8d240c999309f37cc2f96d2e92

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+339 lines, -2547 lines) Patch
M cc/BUILD.gn View 3 chunks +0 lines, -4 lines 0 comments Download
M cc/paint/BUILD.gn View 1 chunk +0 lines, -6 lines 0 comments Download
M cc/paint/display_item_list.cc View 3 chunks +5 lines, -55 lines 0 comments Download
M cc/paint/display_item_list_unittest.cc View 3 chunks +1 line, -121 lines 0 comments Download
M cc/paint/paint_canvas.h View 3 chunks +2 lines, -9 lines 0 comments Download
M cc/paint/paint_flags.h View 3 chunks +1 line, -10 lines 0 comments Download
D cc/paint/paint_flags.cc View 1 chunk +0 lines, -42 lines 0 comments Download
M cc/paint/paint_image.h View 1 chunk +0 lines, -1 line 0 comments Download
M cc/paint/paint_image.cc View 1 chunk +0 lines, -3 lines 0 comments Download
D cc/paint/paint_op_buffer.h View 1 chunk +0 lines, -782 lines 0 comments Download
D cc/paint/paint_op_buffer.cc View 1 chunk +0 lines, -556 lines 0 comments Download
D cc/paint/paint_op_buffer_unittest.cc View 1 chunk +0 lines, -259 lines 0 comments Download
M cc/paint/paint_record.h View 1 chunk +7 lines, -10 lines 0 comments Download
D cc/paint/paint_record.cc View 1 chunk +0 lines, -26 lines 0 comments Download
M cc/paint/paint_recorder.h View 1 chunk +23 lines, -12 lines 0 comments Download
M cc/paint/paint_recorder.cc View 1 chunk +0 lines, -27 lines 0 comments Download
D cc/paint/record_paint_canvas.h View 1 chunk +0 lines, -160 lines 0 comments Download
D cc/paint/record_paint_canvas.cc View 1 chunk +0 lines, -384 lines 0 comments Download
M cc/paint/skia_paint_canvas.h View 1 chunk +1 line, -1 line 0 comments Download
M cc/paint/skia_paint_canvas.cc View 2 chunks +2 lines, -2 lines 0 comments Download
D cc/test/test_skcanvas.h View 1 chunk +0 lines, -31 lines 0 comments Download
D cc/test/test_skcanvas.cc View 1 chunk +0 lines, -26 lines 0 comments Download
M printing/pdf_metafile_skia.cc View 1 chunk +1 line, -1 line 0 comments Download
A third_party/WebKit/LayoutTests/fast/multicol/layers-in-multicol-expected.html View 1 chunk +87 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/multicol/layers-split-across-columns-expected.html View 1 chunk +90 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fast/multicol/transform-inside-opacity-expected.html View 1 chunk +6 lines, -0 lines 0 comments Download
D third_party/WebKit/LayoutTests/fast/multicol/transform-inside-opacity-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/paint/invalidation/column-float-under-stacked-inline-expected.png View Binary file 0 comments Download
D third_party/WebKit/LayoutTests/platform/linux/fast/multicol/layers-in-multicol-expected.png View Binary file 0 comments Download
D third_party/WebKit/LayoutTests/platform/linux/fast/multicol/layers-split-across-columns-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/transforms/2d/hindi-rotated-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/linux/virtual/disable-spinvalidation/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac-mac10.10/transforms/2d/hindi-rotated-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac-mac10.9/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac-mac10.9/transforms/2d/hindi-rotated-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac-mac10.9/transforms/transformed-focused-text-input-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac-mac10.9/virtual/disable-spinvalidation/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png View Binary file 0 comments Download
D third_party/WebKit/LayoutTests/platform/mac/fast/multicol/layers-in-multicol-expected.png View Binary file 0 comments Download
D third_party/WebKit/LayoutTests/platform/mac/fast/multicol/layers-split-across-columns-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/svg/as-background-image/background-image-preserveaspectRatio-support-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/svg/as-image/img-preserveAspectRatio-support-1-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/transforms/2d/hindi-rotated-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/transforms/transformed-focused-text-input-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/mac/virtual/disable-spinvalidation/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png View Binary file 0 comments Download
D third_party/WebKit/LayoutTests/platform/win/fast/multicol/layers-in-multicol-expected.png View Binary file 0 comments Download
D third_party/WebKit/LayoutTests/platform/win/fast/multicol/layers-split-across-columns-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/transforms/2d/hindi-rotated-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/win/virtual/disable-spinvalidation/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/win7/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/win7/transforms/2d/hindi-rotated-expected.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/platform/win7/virtual/disable-spinvalidation/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.png View Binary file 0 comments Download
M third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/ClipPathDisplayItem.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/ClipPathDisplayItem.cpp View 1 chunk +2 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/CompositingRecorder.cpp View 1 chunk +52 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/DisplayItem.h View 2 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/DisplayItemList.cpp View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/DrawingDisplayItem.cpp View 2 chunks +9 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp View 4 chunks +4 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp View 2 chunks +39 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/mac/LocalCurrentGraphicsContext.mm View 1 chunk +0 lines, -1 line 0 comments Download
M ui/views/controls/scrollbar/cocoa_scroll_bar.mm View 1 chunk +0 lines, -1 line 0 comments Download

Messages

Total messages: 6 (3 generated)
hidehiko
Created Revert of Back PaintRecord with PaintOpBuffer instead of SkPicture
3 years, 8 months ago (2017-04-18 09:32:11 UTC) #2
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2820133005/1
3 years, 8 months ago (2017-04-18 09:32:29 UTC) #3
commit-bot: I haz the power
3 years, 8 months ago (2017-04-18 11:15:10 UTC) #6
Message was sent while issue was closed.
Committed patchset #1 (id:1) as
https://chromium.googlesource.com/chromium/src/+/ddefb10bee663f8d240c999309f3...

Powered by Google App Engine
This is Rietveld 408576698