skia2/tools
Yuqian Li 89a0e72287 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>
2017-01-12 17:17:32 +00:00
..
android Revert[2] "remove SK_SUPPORT_LEGACY_CLIP_REGIONOPS" 2016-12-09 14:33:41 +00:00
copyright
debugger SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h 2017-01-11 18:55:34 +00:00
fiddle fiddle: Don't run F16 by default, it doesn't work with OSMesa. 2016-12-02 16:27:16 +00:00
flags Implement Analytic AA for General Paths (with Guard against Chrome) 2017-01-12 17:17:32 +00:00
gpu Make GrPaints move their GrProcessor ownership into GrPipelineBuilder. 2017-01-11 19:56:48 +00:00
lua Revert[2] "Change SkCanvas to *not* inherit from SkRefCnt" 2016-11-13 18:31:13 +00:00
skdiff SkBitmap::setPixelRef(): less reference churn 2016-12-12 20:18:50 +00:00
skiaserve Rename batch->op in GrAuditTrail json and skiaserver's url handlers 2017-01-05 19:30:27 +00:00
skp RecreateSKPs: Fix another .join() issue 2016-10-17 08:09:34 -07:00
skpbench skpbench: fix parser script for bots 2016-11-15 18:52:10 +00:00
svg Fix Seal_of_Mississippi URL and update version of SVG asset. 2016-09-16 08:26:35 -07:00
timer
viewer SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h 2017-01-11 18:55:34 +00:00
__init__.py
add_codereview_message.py
AndroidSkDebugToStdOut.cpp
BigPathBench.inc
build_command_buffer.py Improvements to build_command_buffer.py 2016-11-04 10:54:54 -07:00
BUILD_simulator.py
chrome_fuzz.cpp hide setImageFilter(ptr) 2016-11-01 16:05:41 +00:00
colorspaceinfo.cpp Added gamma visualizations to colorspaceinfo tool 2016-12-16 23:03:01 +00:00
compare_codereview.py
CrashHandler.cpp SkLeanWindows.h: #include "Windows.h" fewer places 2016-06-07 17:21:10 -07:00
CrashHandler.h
create_test_font.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
doxygen_footer.txt
dump_record.cpp SkFontData to use smart pointers. 2016-09-16 06:24:20 -07:00
DumpRecord.cpp update deferred 2016-10-05 19:25:35 +00:00
DumpRecord.h
embed_resources.py
find_run_binary.py
fix_pythonpath.py
gcov_shim
generate_fir_coeff.py
generate_includes_cpp.py
generate_vk_interface.sh
get_current_monitor_profile.cpp Monitor profile tool, now with Windows support, too! 2016-07-12 15:06:25 -07:00
get_images_from_skps.cpp Updated the get_images_from_skps tool to check for ICC profile support 2016-12-12 17:06:41 +00:00
git-skia-verify
git-sync-deps
gpuveto.cpp SkPictureGpuAnalyzer 2016-05-13 11:40:07 -07:00
gyp GN 2016-06-23 10:29:30 -07:00
imgblur.cpp SkEncodeImage: no more link-time registration 2016-11-30 22:48:56 +00:00
imgslice.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
install_dependencies.sh Add some required packages to tools/install_dependencies.sh 2016-09-02 05:21:40 -07:00
iOSShell.cpp
iOSShell.h
jsondiff.py
LsanSuppressions.cpp Build LSAN suppressions into the test binaries. 2016-09-01 07:06:54 -07:00
merge_static_libs.py
milestone.py SkPDF: milestone in metadata, also SkMilestone.h 2016-03-29 09:09:29 -07:00
mirror-dev.sh
misc_utils.py
monobench.cpp monobench: don't sort the Bench vector while iterating through it... 2017-01-05 20:00:26 +00:00
OverwriteLine.h
parse_llvm_coverage.py Walk through files in parse_llvm_coverage.py instead of using 'git ls-files' 2016-04-18 04:18:56 -07:00
pathops_sorter.htm simplify bug 2016-12-08 20:29:37 +00:00
pathops_visualizer.htm rework xor to be more like winding 2016-12-16 22:47:00 +00:00
picture_utils.cpp SkImageEncoder: simplify API 2016-11-23 16:40:32 +00:00
picture_utils.h Move DM png code to picture_utils, for use by other tools. 2016-04-19 09:18:11 -07:00
pinspect.cpp Repurpose Release_Developer BUILDTYPE and remove SK_DEVELOPER. 2016-04-29 06:41:35 -07:00
ProcStats.cpp GN: dm 2016-07-27 13:55:27 -07:00
ProcStats.h
public_headers_warnings_check.cpp GN: add public headers warnings check. 2016-11-16 19:27:29 +00:00
random_parse_path.cpp
random_parse_path.h
reformat-json.py
Registry.h move SkTRegister.h into tools 2017-01-11 19:53:36 +00:00
Resources.cpp helper to convert CGImage -> SkImage 2016-12-21 17:38:18 +00:00
Resources.h helper to convert CGImage -> SkImage 2016-12-21 17:38:18 +00:00
retrieve_from_googlesource.py
sanitize_source_files.py
sk_tool_utils_flags.h
sk_tool_utils_font.cpp tools: s/SkAutoTUnref/sk_sp/ 2016-11-03 21:00:34 +00:00
sk_tool_utils.cpp Tag string bitmaps (for GMs) as sRGB 2016-12-20 16:39:05 +00:00
sk_tool_utils.h SkEncodeImage: no more link-time registration 2016-11-30 22:48:56 +00:00
skhello.cpp SkEncodeImage: no more link-time registration 2016-11-30 22:48:56 +00:00
SkJSONCPP.h Move SkJSONCPP.h to tools. It tool-only. 2016-07-26 12:41:27 -07:00
skp_parser.cpp Revert[2] "Change SkCanvas to *not* inherit from SkRefCnt" 2016-11-13 18:31:13 +00:00
skpinfo.cpp ensure we always set the pictinfo.fVersion 2016-10-04 19:33:23 +00:00
skpmaker.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
SkShaper_harfbuzz.cpp SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h 2017-01-11 18:55:34 +00:00
SkShaper_primitive.cpp SkPDF: SkShaper_primitive uses new textblob API 2016-09-10 07:01:53 -07:00
SkShaper.h SkShaper: optionally disable harfbuzz 2016-08-03 10:43:55 -07:00
Stats.h
test_all.py
test_font_data_chars.cpp
test_font_data.cpp
test_font_index.inc Rename textual includes as *.inc. 2016-07-27 11:12:12 -07:00
test_font_monospace.inc Rename textual includes as *.inc. 2016-07-27 11:12:12 -07:00
test_font_sans_serif.inc Rename textual includes as *.inc. 2016-07-27 11:12:12 -07:00
test_font_serif.inc Rename textual includes as *.inc. 2016-07-27 11:12:12 -07:00
test_gpuveto.py
test_pdfs.py
ThermalManager.cpp Is it just me or is this logging just noise? 2016-09-16 11:50:13 -07:00
ThermalManager.h
UrlDataManager.cpp
UrlDataManager.h Use sse4.2 CRC32 instructions to hash when available. 2016-08-08 09:06:28 -07:00
using_skia_and_harfbuzz.cpp SkTextBlob: Begin implementing Extended TextBlob API 2016-08-30 11:58:33 -07:00
valgrind.supp Tweak valgrind suppressions for intentional leaks. 2016-09-16 05:47:06 -07:00
whitelist_typefaces.cpp SkEncodeImage: no more link-time registration 2016-11-30 22:48:56 +00:00
win_dbghelp.cpp
win_dbghelp.h
win_lcid.cpp
xsan.blacklist GN: add sanitize arg 2016-09-08 08:39:34 -07:00