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

Issue 725433002: Remove optimization to lazily allocate transparency layers in LayerPainter. (Closed)

Created:
6 years, 1 month ago by chrishtr
Modified:
6 years, 1 month ago
CC:
blink-reviews, blink-reviews-paint_chromium.org, slimming-paint-reviews_chromium.org
Project:
blink
Visibility:
Public.

Description

Remove optimization to lazily allocate transparency layers in LayerPainter. Before this CL, LayerPainter would try to avoid starting a transparency layer until it encountered actual drawable content within the RenderLayer that has transparency, or its child. This optimization makes for code complexity and speed issues, makes it hard to implement clean display lists, and is most likely not a useful optimization. It is likely not useful for two reasons: * It only has effect if the webpage has opacity but no actual content. That does not seem common. * Skia already has optimizations to remove unnecessary layers if there is no content within them: https://code.google.com/p/chromium/codesearch#chromium/src/third_party/skia/src/core/SkRecordOpts.cpp&q=SkRecordNoopSaveRestores&sq=package:chromium&type=cs&l=21 BUG=432755 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=185324

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Patch Set 7 : #

Total comments: 12

Patch Set 8 : #

Patch Set 9 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+44 lines, -71 lines) Patch
A LayoutTests/paint/transparency/transparency-that-paints-content-only-in-child.html View 1 2 3 4 5 6 7 1 chunk +4 lines, -0 lines 0 comments Download
A LayoutTests/paint/transparency/transparency-that-paints-content-only-in-child-expected.html View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M Source/core/paint/FilterPainter.cpp View 1 2 3 1 chunk +0 lines, -6 lines 0 comments Download
M Source/core/paint/LayerPainter.h View 1 2 3 4 5 6 7 3 chunks +4 lines, -3 lines 0 comments Download
M Source/core/paint/LayerPainter.cpp View 1 2 3 4 5 6 7 8 8 chunks +32 lines, -47 lines 0 comments Download
M Source/core/rendering/RenderLayer.h View 1 2 1 chunk +0 lines, -1 line 0 comments Download
M Source/core/rendering/RenderLayer.cpp View 1 2 1 chunk +0 lines, -14 lines 0 comments Download

Messages

Total messages: 14 (3 generated)
chrishtr
6 years, 1 month ago (2014-11-13 02:00:44 UTC) #2
leviw_travelin_and_unemployed
LGTM+++++! http://www.wallpaperup.com/uploads/wallpapers/2013/05/22/91382/big_thumb_ebf73a0abb73e6b05a34a83cea95074b.jpg
6 years, 1 month ago (2014-11-13 02:04:06 UTC) #3
mstensho (USE GERRIT)
Note that the tests added to TestExpectations do not fail because of multicol. With this ...
6 years, 1 month ago (2014-11-13 14:03:32 UTC) #5
mstensho (USE GERRIT)
So beginTransparencyLayers() is called lazily (in paintBackgroundForFragments() and paintForegroundForFragments()), so that if you get shouldPaintContent ...
6 years, 1 month ago (2014-11-13 14:28:36 UTC) #6
chrishtr
On 2014/11/13 at 14:28:36, mstensho wrote: > So beginTransparencyLayers() is called lazily (in paintBackgroundForFragments() and ...
6 years, 1 month ago (2014-11-13 17:29:57 UTC) #7
chrishtr
Updated the CL to fully remove the lazy allocation of transparency layers. Please take another ...
6 years, 1 month ago (2014-11-13 18:40:32 UTC) #8
mstensho (USE GERRIT)
Awesome! https://codereview.chromium.org/725433002/diff/120001/LayoutTests/TestExpectations File LayoutTests/TestExpectations (right): https://codereview.chromium.org/725433002/diff/120001/LayoutTests/TestExpectations#newcode1 LayoutTests/TestExpectations:1: Please back out this. https://codereview.chromium.org/725433002/diff/120001/LayoutTests/paint/transparency/transparency-that-paints-content-only-in-child-expected.html File LayoutTests/paint/transparency/transparency-that-paints-content-only-in-child-expected.html (right): ...
6 years, 1 month ago (2014-11-13 19:06:21 UTC) #9
chrishtr
https://codereview.chromium.org/725433002/diff/120001/LayoutTests/TestExpectations File LayoutTests/TestExpectations (right): https://codereview.chromium.org/725433002/diff/120001/LayoutTests/TestExpectations#newcode1 LayoutTests/TestExpectations:1: On 2014/11/13 19:06:21, mstensho wrote: > Please back out ...
6 years, 1 month ago (2014-11-13 19:40:57 UTC) #10
mstensho (USE GERRIT)
lgtm, provided that you fix the compilation error. ;) https://codereview.chromium.org/725433002/diff/120001/Source/core/paint/LayerPainter.cpp File Source/core/paint/LayerPainter.cpp (right): https://codereview.chromium.org/725433002/diff/120001/Source/core/paint/LayerPainter.cpp#newcode81 Source/core/paint/LayerPainter.cpp:81: ...
6 years, 1 month ago (2014-11-13 19:49:28 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/725433002/160001
6 years, 1 month ago (2014-11-13 20:58:01 UTC) #13
commit-bot: I haz the power
6 years, 1 month ago (2014-11-13 22:03:25 UTC) #14
Message was sent while issue was closed.
Committed patchset #9 (id:160001) as 185324

Powered by Google App Engine
This is Rietveld 408576698