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

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

Created:
3 years, 8 months ago by cmumford
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 #39 id:750001 of https://codereview.chromium.org/2768143002/ ) Reason for revert: Triggered automatic tree closure. Failure on mac. https://uberchromegw.corp.google.com/i/chromium.mac/builders/Mac%20Builder 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@{#464555} > Committed: https://chromium.googlesource.com/chromium/src/+/09670a9d1f03c414f8b7bb67c4bd27ccf46a84e1 TBR=chrishtr@chromium.org,danakj@chromium.org,mtklein@chromium.org,thakis@chromium.org,vitalybuka@chromium.org,vmpstr@chromium.org,enne@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2810363004 Cr-Commit-Position: refs/heads/master@{#464563} Committed: https://chromium.googlesource.com/chromium/src/+/b853845f45ee3dd7941b13a92dcf526f9c9ce895

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+339 lines, -2527 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
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, -555 lines 0 comments Download
D cc/paint/paint_op_buffer_unittest.cc View 1 chunk +0 lines, -247 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, -381 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)
cmumford
Created Revert of Back PaintRecord with PaintOpBuffer instead of SkPicture
3 years, 8 months ago (2017-04-13 22:06:10 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/2810363004/1
3 years, 8 months ago (2017-04-13 22:07:05 UTC) #3
commit-bot: I haz the power
3 years, 8 months ago (2017-04-13 22:09:51 UTC) #6
Message was sent while issue was closed.
Committed patchset #1 (id:1) as
https://chromium.googlesource.com/chromium/src/+/b853845f45ee3dd7941b13a92dcf...

Powered by Google App Engine
This is Rietveld 408576698