Go to file
Michael Ludwig e267464b89 Make small epsilons more rigorous for gpu gaussian blurs
This also has several other bug fixes and refactorings within it that
I realized were possible while updating every where that had checked
sigma > 0 to be sigma > kEffectivelyZeroSigma.

The big things are that SkBlurPriv.h goes away and its functions are
just moved into SkGpuBlurUtils since they were only used by the GPU.
The implementations of those functions are also collected into
SkGpuBlurUtils.cpp.  I removed the GrMatrixConvolution::MakeGaussian,
in favor of SkGpuBlurUtils filling in the kernel itself and then calling
the regular Make. This let me consolidate two different 1D kernel
computing functions, and remove the 1D fallback code from the 2D kernel
calculation because GaussianBlur() can detect that earlier.

The new GM, BlurSigmaSmall, originally drew incorrectly on the GPU
backend because it's small but non-zero sigma would trick the sigma > 0
checks in various places so we'd do a full 2 pass X/Y blur. However,
when the sigma was too small, the kernel was just filled with 0s so the
Y pass would effectively clear everything. While I could have just fixed
that to be a [0, 1, 0] kernel, updating the blur pipeline to compare
against integer radii seems more robust.

Change-Id: I3c41e0235a27615a9056b25e627ffedd995264bd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328797
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-10-21 17:37:12 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bazel bazel baby steps 2020-09-14 15:18:32 +00:00
bench Reland "[svg] Relocate out of experimental" 2020-10-16 02:32:41 +00:00
bin bin/try: automatically set 'git cl issue' when not found 2020-06-25 17:44:01 +00:00
build/fuchsia [fuchsia] Fix fidlc command. 2020-06-10 03:29:24 +00:00
build_overrides Port to ANGLE's GN files 2020-09-11 15:22:34 +00:00
client_utils/android Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
demos.skia.org [canvaskit] Remove Sk from nearly all function/type names. 2020-10-07 21:01:32 +00:00
dm Reland "[svg] Relocate out of experimental" 2020-10-16 02:32:41 +00:00
docker [canvaskit,pathkit] Update to emsdk 2.0 2020-08-20 14:55:50 +00:00
docs/examples Only expose isConvex on path publicly. 2020-08-28 16:56:29 +00:00
example Reland "Remove use of legacy display globals." 2020-10-05 19:13:58 +00:00
experimental [svg] Post-relocation cleanup 2020-10-18 19:29:38 +00:00
fuzz Reland "[svg] Relocate out of experimental" 2020-10-16 02:32:41 +00:00
gm Make small epsilons more rigorous for gpu gaussian blurs 2020-10-21 17:37:12 +00:00
gn Revert "Create a basic IRNode pooling system." 2020-10-21 15:50:13 +00:00
include update dox for drawPaint 2020-10-20 19:48:11 +00:00
infra [canvaskit] Fix gm test runner on non-tryjobs 2020-10-21 11:31:27 +00:00
modules [svg] Parse text attributes 2020-10-20 16:04:41 +00:00
platform_tools add new DemoActivity to showcase SkottieView xml loading and surface view backing 2020-10-20 15:33:11 +00:00
resources Parse out the orientation in the SubIFD of EXIF 2020-10-12 13:50:27 +00:00
samplecode Almost remove GrContext 2020-10-20 15:52:01 +00:00
site Update site favicon to new theme. 2020-10-12 15:23:48 +00:00
specs Fix CanvasKit generated documentation to work with emscripten 1.39.16. 2020-05-27 12:23:32 +00:00
src Make small epsilons more rigorous for gpu gaussian blurs 2020-10-21 17:37:12 +00:00
tests Make small epsilons more rigorous for gpu gaussian blurs 2020-10-21 17:37:12 +00:00
third_party retry³ absl 2020-10-07 01:36:15 +00:00
tools upstream cl/337571894 with tweaks 2020-10-20 16:22:01 +00:00
.bazelignore bazel baby steps 2020-09-14 15:18:32 +00:00
.clang-format Disable BinPackParameters in .clang-format 2020-03-27 14:32:40 +00:00
.clang-tidy Disable ClangTidy namespace comments for short blocks. 2020-08-24 14:01:22 +00:00
.gitignore bazel baby steps 2020-09-14 15:18:32 +00:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS Fix GrCCPerFlushResources error caused by cache eviction 2020-10-14 17:24:41 +00:00
BUILD.bazel bazel baby steps 2020-09-14 15:18:32 +00:00
BUILD.gn Reland "[svg] Relocate out of experimental" 2020-10-16 02:32:41 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll SwiftShader from df17a76102df to 84f5eeb6dd9b (3 revisions) 2020-10-21 04:56:01 +00:00
go.mod [infra] Sync to latest infra repo. 2020-10-20 13:56:41 +00:00
go.sum [infra] Sync to latest infra repo. 2020-10-20 13:56:41 +00:00
LICENSE LICENSE file: clean up 2019-11-22 21:59:03 +00:00
OWNERS add OWNERS file 2017-12-01 19:50:19 +00:00
PRESUBMIT.py Generate SkSL golden output files from test inputs during the build. 2020-09-14 14:54:12 +00:00
public.bzl [svg] Post-relocation cleanup 2020-10-18 19:29:38 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
RELEASE_NOTES.txt Remove legacy SkImageGenerator YUV planes interface 2020-10-20 13:44:11 +00:00
whitespace.txt Whitespace change to re-trigger Mac/iOS tests 2020-02-23 20:55:01 +00:00
WORKSPACE.bazel bazel baby steps 2020-09-14 15:18:32 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.