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

Issue 2581243002: Simplify and speed up painting of clipping masks (Closed)

Created:
4 years ago by Stephen Chennney
Modified:
4 years ago
Reviewers:
chrishtr
CC:
chromium-reviews, blink-reviews, dshwang, blink-reviews-paint_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Simplify and speed up painting of clipping masks To paint the contents of clipping mask layers, we use the full paint machinery including paint offsets, several layers of paint methods in a call hierarchy, layout object queries and more. All we need to do when we have already processed the clips is to fill the area bounded by the clip rects with black. This will save all those method calls, and a bunch of if checks that slow down every other paint operation, and makes border-radius for composited children much more efficient and less complex. R=chrishtr@chromium.org BUG=674977 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Patch Set 1 #

Patch Set 2 : Fix cases with no clip recorder #

Unified diffs Side-by-side diffs Delta from patch set Stats (+48 lines, -10 lines) Patch
M third_party/WebKit/Source/core/paint/LayerClipRecorder.h View 1 chunk +9 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/paint/LayerClipRecorder.cpp View 3 chunks +5 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayerPainter.h View 2 chunks +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp View 1 3 chunks +31 lines, -0 lines 0 comments Download

Messages

Total messages: 13 (9 generated)
Stephen Chennney
I'd like to land this to dramatically simplify the border-radius work, and generally clean things ...
4 years ago (2016-12-16 18:10:52 UTC) #3
Stephen Chennney
Still needs a little work. I'm apparently not catching all the call sites.
4 years ago (2016-12-16 18:11:43 UTC) #5
Stephen Chennney
OK, this works but unfortunately only hits a couple of cases. It seems we process ...
4 years ago (2016-12-16 19:56:03 UTC) #10
Stephen Chennney
4 years ago (2016-12-19 16:37:20 UTC) #13
On 2016/12/16 19:56:03, Stephen Chennney wrote:
> OK, this works but unfortunately only hits a couple of cases. It seems we
> process the clips later in the pipeline for most existing situations. Of
course,
> that number will blow up when I finally get the border-radius work done.

This patch is wrong, which wasn't revealed in testing.

Powered by Google App Engine
This is Rietveld 408576698