diff options
author | 2017-01-11 10:58:31 -0500 | |
---|---|---|
committer | 2017-01-12 17:17:32 +0000 | |
commit | 89a0e72287e991cfa2f860f92fad545ca59defe1 (patch) | |
tree | da5c494a32700a7438357bca4a50a1ac49237224 /tools/flags | |
parent | 108f55ed5d0b63baf653e4e443cc469df887c811 (diff) |
Implement Analytic AA for General Paths (with Guard against Chrome)
I've set up a SK_SUPPORT_LEGACY_AAA flag to guard against Chromium layout tests. I also set that flag in this CL so theoretically this CL won't trigger any GM changes. I'll use this to verify my guard, and remove that flag and actually enables concave AAA in a future CL.
When enabled, for most simple concave paths (e.g., rectangle stroke, rrect stroke, sawtooth, stars...), the Analytic AA achieves 1.3x-2x speedup, and they look much prettier. And they probably are the majority in our use cases by number. But they probably are not the majority by time cost; a single complicated path may cost 10x-100x more time to render than a rectangle stroke... For those complicated paths, we fall back to supersampling by default as we're likely to be 1.1-1.2x slower and the quality improvement is not visually significant. However, one can use gSkForceAnalyticAA to disable that fallback.
BUG=skia:
Change-Id: If9549a3acc4a187cfaf7eb51890c148da3083d31
Reviewed-on: https://skia-review.googlesource.com/6091
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
Diffstat (limited to 'tools/flags')
-rw-r--r-- | tools/flags/SkCommonFlags.cpp | 4 | ||||
-rw-r--r-- | tools/flags/SkCommonFlags.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/tools/flags/SkCommonFlags.cpp b/tools/flags/SkCommonFlags.cpp index 52a5388ddf..0148bcd820 100644 --- a/tools/flags/SkCommonFlags.cpp +++ b/tools/flags/SkCommonFlags.cpp @@ -68,6 +68,10 @@ DEFINE_bool2(pre_log, p, false, "Log before running each test. May be incomprehe DEFINE_bool(analyticAA, true, "If false, disable analytic anti-aliasing"); +DEFINE_bool(forceAnalyticAA, false, "Force analytic anti-aliasing even if the path is complicated: " + "whether it's concave or convex, we consider a path complicated" + "if its number of points is comparable to its resolution."); + bool CollectImages(SkCommandLineFlags::StringArray images, SkTArray<SkString>* output) { SkASSERT(output); diff --git a/tools/flags/SkCommonFlags.h b/tools/flags/SkCommonFlags.h index 1a707c8586..92ac141dad 100644 --- a/tools/flags/SkCommonFlags.h +++ b/tools/flags/SkCommonFlags.h @@ -33,6 +33,7 @@ DECLARE_bool(veryVerbose); DECLARE_string(writePath); DECLARE_bool(pre_log); DECLARE_bool(analyticAA); +DECLARE_bool(forceAnalyticAA); DECLARE_string(key); DECLARE_string(properties); |