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

Issue 119343003: Fast blurred rectangles on GPU (Closed)

Created:
7 years ago by humper
Modified:
6 years, 10 months ago
Reviewers:
bsalomon, reed1
CC:
skia-review_googlegroups.com
Base URL:
https://skia.googlesource.com/skia.git@master
Visibility:
Public.

Description

Perform the same analytic blur calculation on the GPU that we do on the CPU. Results in significant performance gains when using Ganesh to render drop shadows in Chrome. BUG= Committed: http://code.google.com/p/skia/source/detail?r=13210

Patch Set 1 #

Patch Set 2 : some progress with brian, just another checkpoint #

Patch Set 3 : use rect from path instead of clipped rect #

Patch Set 4 : checkpoint for manfred #

Patch Set 5 : First working prototype; fixed texture coordinates and cache keys #

Patch Set 6 : cleanup patch + check for fill vs. stroke #

Total comments: 8

Patch Set 7 : handle null input color, and some comments from Brian #

Total comments: 4

Patch Set 8 : nits, documentation, and complete the refactor of the blurry scanline. #

Total comments: 2

Patch Set 9 : be a better citizen with the texture coordinates so we don't stomp on other efffects #

Patch Set 10 : remove unused makeidiv function #

Patch Set 11 : whitespace error #

Patch Set 12 : change path pointer to path reference to adhere to skia style" #

Patch Set 13 : respect current CTM for blur radius, and don't try to direct compute non-normal blur types #

Patch Set 14 : don't adjust the grpaint until we're sure that the fast blur path will succed #

Patch Set 15 : fix float return value for getSigma and stab in the dark at a couple of windows build errors #

Patch Set 16 : more windows build fixes #

Total comments: 4

Patch Set 17 : nits and fix CTM calculation location #

Patch Set 18 : Second rework of 119343003 for 10.6 and excluding GMs pending rebaseline #

Unified diffs Side-by-side diffs Delta from patch set Stats (+392 lines, -36 lines) Patch
M expectations/gm/ignored-tests.txt View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +18 lines, -0 lines 0 comments Download
M gyp/effects.gypi View 1 2 3 4 5 6 7 8 2 chunks +1 line, -1 line 0 comments Download
M include/core/SkMaskFilter.h View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +11 lines, -0 lines 0 comments Download
M src/core/SkMaskFilter.cpp View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +7 lines, -0 lines 0 comments Download
M src/effects/SkBlurMask.h View 1 2 3 4 5 6 7 1 chunk +35 lines, -0 lines 0 comments Download
M src/effects/SkBlurMask.cpp View 1 2 3 4 5 6 7 8 6 chunks +36 lines, -34 lines 0 comments Download
M src/effects/SkBlurMaskFilter.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 chunks +276 lines, -0 lines 0 comments Download
M src/gpu/SkGpuDevice.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +8 lines, -1 line 0 comments Download

Messages

Total messages: 14 (0 generated)
humper
PTAL
7 years ago (2013-12-21 01:38:53 UTC) #1
bsalomon
The perf improvement looks real real nice! https://codereview.chromium.org/119343003/diff/120001/include/core/SkMaskFilter.h File include/core/SkMaskFilter.h (right): https://codereview.chromium.org/119343003/diff/120001/include/core/SkMaskFilter.h#newcode96 include/core/SkMaskFilter.h:96: virtual bool ...
7 years ago (2013-12-21 02:50:09 UTC) #2
humper
https://codereview.chromium.org/119343003/diff/120001/include/core/SkMaskFilter.h File include/core/SkMaskFilter.h (right): https://codereview.chromium.org/119343003/diff/120001/include/core/SkMaskFilter.h#newcode96 include/core/SkMaskFilter.h:96: virtual bool directFilterMaskGPU(GrContext *context, On 2013/12/21 02:50:09, bsalomon wrote: ...
7 years ago (2013-12-23 13:26:58 UTC) #3
humper
On 2013/12/23 13:26:58, humper wrote: > https://codereview.chromium.org/119343003/diff/120001/include/core/SkMaskFilter.h > File include/core/SkMaskFilter.h (right): > > https://codereview.chromium.org/119343003/diff/120001/include/core/SkMaskFilter.h#newcode96 > ...
6 years, 11 months ago (2014-01-02 17:21:49 UTC) #4
reed1
did not review the gpu-specific changes https://codereview.chromium.org/119343003/diff/220001/src/core/SkMaskFilter.cpp File src/core/SkMaskFilter.cpp (right): https://codereview.chromium.org/119343003/diff/220001/src/core/SkMaskFilter.cpp#newcode312 src/core/SkMaskFilter.cpp:312: bool SkMaskFilter::directFilterMaskGPU(GrContext *context, ...
6 years, 11 months ago (2014-01-02 17:32:39 UTC) #5
humper
https://codereview.chromium.org/119343003/diff/220001/src/core/SkMaskFilter.cpp File src/core/SkMaskFilter.cpp (right): https://codereview.chromium.org/119343003/diff/220001/src/core/SkMaskFilter.cpp#newcode312 src/core/SkMaskFilter.cpp:312: bool SkMaskFilter::directFilterMaskGPU(GrContext *context, On 2014/01/02 17:32:39, reed1 wrote: > ...
6 years, 11 months ago (2014-01-02 18:12:10 UTC) #6
bsalomon
lgtm with two minor nits inline. https://codereview.chromium.org/119343003/diff/290001/include/core/SkMaskFilter.h File include/core/SkMaskFilter.h (right): https://codereview.chromium.org/119343003/diff/290001/include/core/SkMaskFilter.h#newcode95 include/core/SkMaskFilter.h:95: * true if ...
6 years, 11 months ago (2014-01-06 15:04:10 UTC) #7
humper
On 2014/01/06 15:04:10, bsalomon wrote: > lgtm with two minor nits inline. > > https://codereview.chromium.org/119343003/diff/290001/include/core/SkMaskFilter.h ...
6 years, 11 months ago (2014-01-27 18:45:18 UTC) #8
bsalomon
https://codereview.chromium.org/119343003/diff/570001/src/effects/SkBlurMaskFilter.cpp File src/effects/SkBlurMaskFilter.cpp (right): https://codereview.chromium.org/119343003/diff/570001/src/effects/SkBlurMaskFilter.cpp#newcode622 src/effects/SkBlurMaskFilter.cpp:622: // builder->fsCodeAppendf("\t%s = vec4(%s.r,%s.g,0,1);\n", outputColor, texture_coords.c_str(), texture_coords.c_str()); should we ...
6 years, 11 months ago (2014-01-27 19:07:00 UTC) #9
bsalomon
lgtm
6 years, 11 months ago (2014-01-27 20:31:32 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://skia-tree-status.appspot.com/cq/humper@google.com/119343003/600001
6 years, 11 months ago (2014-01-27 20:58:30 UTC) #11
commit-bot: I haz the power
Change committed as 13210
6 years, 11 months ago (2014-01-27 22:41:51 UTC) #12
epoger
A revert of this CL has been created in https://codereview.chromium.org/140853008/ by epoger@google.com. The reason for ...
6 years, 11 months ago (2014-01-28 01:21:02 UTC) #13
epoger
6 years, 11 months ago (2014-01-28 03:45:38 UTC) #14
Message was sent while issue was closed.
On 2014/01/28 01:21:02, epoger wrote:
> We'll need to examine the GM impact before re-landing.  I can work with you to
> do this on Tuesday if you like; just IM or email me..

By the time you are reading this, current GM results (as displayed at
http://108.170.217.246:10117/static/index.html , or if you run rebaseline_server
locally) will no longer include the results of this CL (since the revert has
occurred).

Here's how you can examine the GM results at the time this CL had worked its way
through the bots:

1. Patch in https://codereview.chromium.org/download/issue145353007_1.diff
2. Run your own rebaseline_server, telling it to display results as of
skia-autogen's https://code.google.com/p/skia-autogen/source/detail?r=24410 :
gm/rebaseline_server/server.py --export --actuals-revision 24410

Powered by Google App Engine
This is Rietveld 408576698