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

Issue 453653003: [SVG] DisplayList-based patterns. (Closed)

Created:
6 years, 4 months ago by f(malita)
Modified:
6 years, 2 months ago
CC:
blink-reviews, eae+blinkwatch, kouhei+svg_chromium.org, rwlbuis, jamesr, krit, blink-reviews-html_chromium.org, danakj, dglazkov+blink, Rik, jchaffraix+rendering, aandrey+blink_chromium.org, pdr., rune+blink, zoltan1, jbroman, gyuyoung.kim_webkit.org, blink-reviews-rendering, leviw+renderwatch, ed+blinkwatch_opera.com, Stephen Chennney, reed1
Project:
blink
Visibility:
Public.

Description

[SVG] DisplayList-based patterns. Instead of building an ImageBuffer tile (with all the ills of record time rasterization), build a DisplayList tile and use Skia's new SkPictureShader mechanism to fill/stroke the shape. To facilitate this, Pattern is extended to support both bitmap and picture shaders (the latter only in repeatXY mode -- the only mode currently used by SVG). Patterns (and their SkShaders) are cached per RenderSVGResourcePattern per client. Internally, SkPictureShader also caches its rasterized tile so there should be no performance degradation. A handful of tests (about 9) require minor rebaselining (and a couple have been updated for incorrect patternUnits). R=pdr@chromium.org,schenney@chromium.org,fs@opera.com,ed@opera.com BUG=401814, 425278 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=184271

Patch Set 1 #

Patch Set 2 : Rebased #

Patch Set 3 : 9 tests marked for rebaseline #

Total comments: 16

Patch Set 4 : Updated per review. #

Patch Set 5 : rebased & refactored #

Patch Set 6 : re-add test tweaks & expectations #

Total comments: 14

Patch Set 7 : review comments #

Total comments: 8

Patch Set 8 : more review comments #

Patch Set 9 : rebased #

Unified diffs Side-by-side diffs Delta from patch set Stats (+182 lines, -150 lines) Patch
M LayoutTests/TestExpectations View 1 2 3 4 5 6 7 8 1 chunk +9 lines, -0 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGResourcePattern.h View 1 2 3 4 5 6 3 chunks +17 lines, -18 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGResourcePattern.cpp View 1 2 3 4 5 6 7 8 5 chunks +66 lines, -111 lines 0 comments Download
M Source/core/rendering/svg/SVGRenderingContext.h View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -2 lines 0 comments Download
M Source/core/rendering/svg/SVGRenderingContext.cpp View 1 2 3 4 5 6 7 8 2 chunks +0 lines, -16 lines 0 comments Download
M Source/platform/blink_platform.gypi View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M Source/platform/graphics/BitmapPattern.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M Source/platform/graphics/BitmapPatternBase.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
A Source/platform/graphics/DisplayListPattern.h View 1 2 3 4 5 6 1 chunk +35 lines, -0 lines 0 comments Download
A Source/platform/graphics/DisplayListPattern.cpp View 1 2 3 4 1 chunk +38 lines, -0 lines 0 comments Download
M Source/platform/graphics/Pattern.h View 1 2 3 4 2 chunks +4 lines, -0 lines 0 comments Download
M Source/platform/graphics/Pattern.cpp View 1 2 3 4 2 chunks +8 lines, -0 lines 0 comments Download
M Source/platform/graphics/StaticBitmapPattern.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 22 (3 generated)
f(malita)
9 tests require minor rebaselines (the text diffs are due to corrected patternUnits): https://storage.googleapis.com/chromium-layout-test-archives/linux_blink_rel/19636/layout-test-results/results.html
6 years, 4 months ago (2014-08-08 00:59:57 UTC) #1
Erik Dahlström (inactive)
I really like the direction of this CL, thumbs up. Regarding the performance, would it ...
6 years, 4 months ago (2014-08-08 08:01:02 UTC) #2
Stephen White
Great stuff! https://codereview.chromium.org/453653003/diff/40001/Source/core/rendering/svg/RenderSVGResourcePattern.cpp File Source/core/rendering/svg/RenderSVGResourcePattern.cpp (right): https://codereview.chromium.org/453653003/diff/40001/Source/core/rendering/svg/RenderSVGResourcePattern.cpp#newcode82 Source/core/rendering/svg/RenderSVGResourcePattern.cpp:82: const SVGPatternElement& pattern, FloatRect& bounds, AffineTransform& transform) ...
6 years, 4 months ago (2014-08-08 14:00:48 UTC) #3
f(malita)
On 2014/08/08 08:01:02, Erik Dahlström wrote: > Regarding the performance, would it be possible to ...
6 years, 4 months ago (2014-08-08 15:30:36 UTC) #4
f(malita)
On 2014/08/08 15:30:36, Florin Malita wrote: > On 2014/08/08 08:01:02, Erik Dahlström wrote: > > ...
6 years, 4 months ago (2014-08-11 01:15:49 UTC) #5
f(malita)
Time to revisit. What changed: * new blazing-fast Skia recording backend * picture shader tile ...
6 years, 2 months ago (2014-10-21 18:29:37 UTC) #6
fs
Awesome! =D core/ bits LGTM (platform/ bits too, but not owner). https://codereview.chromium.org/453653003/diff/100001/LayoutTests/TestExpectations File LayoutTests/TestExpectations (right): ...
6 years, 2 months ago (2014-10-21 20:12:35 UTC) #7
f(malita)
https://codereview.chromium.org/453653003/diff/100001/LayoutTests/TestExpectations File LayoutTests/TestExpectations (right): https://codereview.chromium.org/453653003/diff/100001/LayoutTests/TestExpectations#newcode831 LayoutTests/TestExpectations:831: crbug.com/401814 svg/W3C-SVG-1.1/pservers-grad-06-b.svg [ NeedsRebaseline ] On 2014/10/21 20:12:35, fs ...
6 years, 2 months ago (2014-10-21 22:16:33 UTC) #8
fs
https://codereview.chromium.org/453653003/diff/100001/LayoutTests/TestExpectations File LayoutTests/TestExpectations (right): https://codereview.chromium.org/453653003/diff/100001/LayoutTests/TestExpectations#newcode831 LayoutTests/TestExpectations:831: crbug.com/401814 svg/W3C-SVG-1.1/pservers-grad-06-b.svg [ NeedsRebaseline ] On 2014/10/21 22:16:32, Florin ...
6 years, 2 months ago (2014-10-22 09:21:32 UTC) #9
Stephen White
LGTM. Great stuff! https://codereview.chromium.org/453653003/diff/120001/LayoutTests/svg/custom/absolute-root-position-masking.xhtml File LayoutTests/svg/custom/absolute-root-position-masking.xhtml (right): https://codereview.chromium.org/453653003/diff/120001/LayoutTests/svg/custom/absolute-root-position-masking.xhtml#newcode7 LayoutTests/svg/custom/absolute-root-position-masking.xhtml:7: <svg:pattern id="pattern" width="600" height="600" patternUnits="userSpaceOnUse"> What's ...
6 years, 2 months ago (2014-10-22 15:11:26 UTC) #10
fs
https://codereview.chromium.org/453653003/diff/120001/Source/platform/graphics/Pattern.cpp File Source/platform/graphics/Pattern.cpp (right): https://codereview.chromium.org/453653003/diff/120001/Source/platform/graphics/Pattern.cpp#newcode70 Source/platform/graphics/Pattern.cpp:70: m_pattern = createShader(); On 2014/10/22 15:11:26, Stephen White wrote: ...
6 years, 2 months ago (2014-10-22 15:29:03 UTC) #11
fs
On 2014/10/22 15:29:03, fs wrote: > ... Assuming you meant > something like: > > ...
6 years, 2 months ago (2014-10-22 15:45:53 UTC) #12
Stephen White
On 2014/10/22 15:45:53, fs wrote: > On 2014/10/22 15:29:03, fs wrote: > > ... Assuming ...
6 years, 2 months ago (2014-10-22 15:48:22 UTC) #13
f(malita)
https://codereview.chromium.org/453653003/diff/120001/LayoutTests/svg/custom/absolute-root-position-masking.xhtml File LayoutTests/svg/custom/absolute-root-position-masking.xhtml (right): https://codereview.chromium.org/453653003/diff/120001/LayoutTests/svg/custom/absolute-root-position-masking.xhtml#newcode7 LayoutTests/svg/custom/absolute-root-position-masking.xhtml:7: <svg:pattern id="pattern" width="600" height="600" patternUnits="userSpaceOnUse"> On 2014/10/22 15:11:26, Stephen ...
6 years, 2 months ago (2014-10-22 16:23:47 UTC) #14
Stephen White
https://codereview.chromium.org/453653003/diff/120001/Source/core/rendering/svg/RenderSVGResourcePattern.cpp File Source/core/rendering/svg/RenderSVGResourcePattern.cpp (right): https://codereview.chromium.org/453653003/diff/120001/Source/core/rendering/svg/RenderSVGResourcePattern.cpp#newcode65 Source/core/rendering/svg/RenderSVGResourcePattern.cpp:65: OwnPtr<PatternData>& patternData = m_patternMap.add(&object, nullptr).storedValue->value; On 2014/10/22 16:23:47, Florin ...
6 years, 2 months ago (2014-10-22 17:50:48 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/453653003/140001
6 years, 2 months ago (2014-10-23 12:53:46 UTC) #17
commit-bot: I haz the power
Failed to apply patch for Source/core/rendering/svg/RenderSVGResourcePattern.cpp: While running patch -p1 --forward --force --no-backup-if-mismatch; patching file ...
6 years, 2 months ago (2014-10-23 12:54:05 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/453653003/160001
6 years, 2 months ago (2014-10-23 13:22:58 UTC) #21
commit-bot: I haz the power
6 years, 2 months ago (2014-10-23 14:31:29 UTC) #22
Message was sent while issue was closed.
Committed patchset #9 (id:160001) as 184271

Powered by Google App Engine
This is Rietveld 408576698