skia2/tools
Brian Osman f9810666bd Threaded generation of software paths
Re-land of: https://skia-review.googlesource.com/36560

All information needed by the thread is captured by the prepare
callback object, the lambda captures a pointer to that, and does the
mask render. Once it's done, it signals the semaphore (also owned by the
callback). The callback defers the semaphore wait even longer (into the
ASAP upload), so the odds of waiting for the thread are REALLY low.

Also did a bunch of cleanup along the way, and put in some trace markers
so we can monitor how well this is working.

Traces of a GM that includes GPU and SW path rendering (path-reverse):

Original:
    https://screenshot.googleplex.com/f5BG3901tQg.png
Threaded, with wait in the callback (notice pre flush callback blocking):
    https://screenshot.googleplex.com/htOSZFE2s04.png
Current version, with wait deferred to ASAP upload function:
    https://screenshot.googleplex.com/GHjD0U3C34q.png
Bug: skia:
Change-Id: Idb92f385590749f41328a9aec65b2a93f4775079
Reviewed-on: https://skia-review.googlesource.com/40775
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-08-30 15:27:42 +00:00
..
bookmaker fix param return descriptions 2017-08-30 13:16:12 +00:00
copyright
debugger change SkRect::growToInclude to take a point instead of x,y 2017-08-28 17:54:06 +00:00
fiddle Add Make[backend] calls for creating GrContexts 2017-07-25 14:33:03 +00:00
flags Threaded generation of software paths 2017-08-30 15:27:42 +00:00
gpu Revert "Revert "Revert "Revert "Add GrTextureOp and use to implement SkGpuDevice::drawImage[Rect]() when possible"""" 2017-08-28 20:02:16 +00:00
lua Make iOS main() functions normal. 2017-02-06 18:02:41 +00:00
skdiff use unique_ptr for codec factories 2017-07-25 15:35:23 +00:00
skiaserve Convert NULL and 0 to nullptr. 2017-08-28 17:48:57 +00:00
skp Chromium lkgr is no longer updated. Use lkcr 2017-08-03 12:41:36 +00:00
skpbench Update gpu caps for valid sample counts. 2017-07-19 19:13:25 +00:00
svg Create new set of SVGs 2017-08-16 15:42:55 +00:00
timer SkTime::GetNSecs() 2015-10-23 07:02:06 -07:00
trace Optimize the size of our JSON 2017-08-17 11:51:26 +00:00
viewer Threaded generation of software paths 2017-08-30 15:27:42 +00:00
__init__.py
add_codereview_message.py
AndroidSkDebugToStdOut.cpp Change how SkDebugf is sent to stdout on Android. 2014-12-10 10:23:06 -08:00
BigPathBench.inc Factor out VisualBench timing code into a helper class 2015-10-05 07:23:30 -07:00
build_command_buffer.py Improvements to build_command_buffer.py 2016-11-04 10:54:54 -07:00
BUILD_simulator.py Fix Google3 fonts. Use fontconfig rather than custom_directory_factory. Add Google3 font caching. 2015-12-01 11:12:05 -08:00
check-headers-self-sufficient header cleanup 2017-07-05 15:18:52 +00:00
chrome_fuzz.cpp Fix SkFILEStream. 2017-03-10 19:58:46 +00:00
colorspaceinfo.cpp Replace interp() with clut_{3,4}D stages. 2017-08-10 14:34:35 +00:00
compare_codereview.py
CrashHandler.cpp SkLeanWindows.h: #include "Windows.h" fewer places 2016-06-07 17:21:10 -07:00
CrashHandler.h rewrite ambiguous comment 2015-02-10 07:47:31 -08:00
create_flutter_test_images.cpp Add tool to create test images with interesting color profiles 2017-05-17 18:15:20 +00:00
create_test_font.cpp Remove internal use of SkTypeface::Style. 2017-07-27 21:30:45 +00:00
doxygen_footer.txt
dump_record.cpp Revert "Revert "Reland: Remove SkLights include from SkCanvas.h"" 2017-05-03 19:17:11 +00:00
DumpRecord.cpp update deferred 2016-10-05 19:25:35 +00:00
DumpRecord.h
embed_resources.py Add option to embed font data into executable. 2015-03-30 12:53:48 -07:00
find_run_binary.py
fix_pythonpath.py
gcov_shim
generate_fir_coeff.py
generate_vk_interface.sh Add vulkan files into skia repo. This is an incomplete backend with only partial functionality at this time. 2016-02-22 09:56:40 -05:00
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 use unique_ptr for codec factories 2017-07-25 15:35:23 +00:00
git-sync-deps tools/git-sync-deps: less verbose when fetch is needed 2017-02-13 19:53:27 +00:00
gpuveto.cpp Make iOS main() functions normal. 2017-02-06 18:02:41 +00:00
gyp GN 2016-06-23 10:29:30 -07:00
imgblur.cpp Make iOS main() functions normal. 2017-02-06 18:02:41 +00:00
imgslice.cpp Make iOS main() functions normal. 2017-02-06 18:02:41 +00:00
install_dependencies.sh Add some required packages to tools/install_dependencies.sh 2016-09-02 05:21:40 -07:00
ios_utils.h iOS: cd into Documents folder at startup 2017-02-06 15:06:45 +00:00
ios_utils.m iOS: cd into Documents folder at startup 2017-02-06 15:06:45 +00:00
iOSShell.cpp Make SkGraphics::Term a no-op, stop calling it. 2015-09-09 07:35:42 -07:00
iOSShell.h C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla} 2015-03-25 18:17:32 -07:00
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 Land Ben's 32-bit symlink script. 2015-02-03 10:43:28 -05:00
misc_utils.py
ok_dsts.cpp ok: add 8888 and rp dsts 2017-06-13 14:25:41 +00:00
ok_engines.cpp factor Engine out of ok core 2017-07-26 21:36:40 +00:00
ok_srcs.cpp Add missing #include <stdlib.h> 2017-08-16 02:19:37 +00:00
ok_test.cpp sprinkle more tracing in GM, tests, and ok, and add TRACE_FUNC 2017-07-24 20:02:07 +00:00
ok_vias.cpp sprinkle more tracing in GM, tests, and ok, and add TRACE_FUNC 2017-07-24 20:02:07 +00:00
ok.cpp print running task in both ok_log() 2017-08-30 00:18:21 +00:00
ok.h factor Engine out of ok core 2017-07-26 21:36:40 +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 add nonsquare scale to pathops sorter tool 2017-06-02 19:30:07 +00:00
pathops_visualizer.htm keep integral rectangle intersections integral 2017-04-18 16:40:48 +00:00
picture_utils.cpp convert over to 2d-mode 2017-07-20 19:50: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 Make iOS main() functions normal. 2017-02-06 18:02:41 +00:00
ProcStats.cpp Fix getMaxResidentSetSizeMB() on iOS. 2017-02-06 17:06:11 +00:00
ProcStats.h DM+nanobench: print both current and max RSS. 2015-04-30 07:11:22 -07:00
public_headers_warnings_check.cpp GN: add public headers warnings check. 2016-11-16 19:27:29 +00:00
random_parse_path.cpp Add unit test to feed valid SVG sequences to make sure that 2016-02-09 10:30:22 -08:00
random_parse_path.h Add unit test to feed valid SVG sequences to make sure that 2016-02-09 10:30:22 -08:00
reformat-json.py
Registry.h move SkTRegister.h into tools 2017-01-11 19:53:36 +00:00
Resources.cpp add Make factory to SkMemoryStream (simplify call-sites) 2017-07-26 15:59:49 +00:00
Resources.h have resources return unique_ptr for stream 2017-07-23 18:24:24 +00:00
retrieve_from_googlesource.py
sanitize_source_files.py Clean up more references to GYP. 2017-02-06 17:55:35 +00:00
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 Add Chinese fling sample 2017-08-16 13:45:57 +00:00
sk_tool_utils.h Add Chinese fling sample 2017-08-16 13:45:57 +00:00
skhello.cpp Make iOS main() functions normal. 2017-02-06 18:02:41 +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 Make iOS main() functions normal. 2017-02-06 18:02:41 +00:00
skpmaker.cpp Make iOS main() functions normal. 2017-02-06 18:02:41 +00:00
SkShaper_harfbuzz.cpp Convert NULL and 0 to nullptr. 2017-08-28 17:48:57 +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 Consolidate SK_CRASH and sk_throw into SK_ABORT 2016-01-29 08:51:04 -08:00
test_all.py skimage, die die die 2014-12-15 12:47:52 -08:00
test_font_index.inc Add strikeout font metrics. 2017-07-21 18:59:05 +00:00
test_font_monospace.inc Add strikeout font metrics. 2017-07-21 18:59:05 +00:00
test_font_sans_serif.inc Add strikeout font metrics. 2017-07-21 18:59:05 +00:00
test_font_serif.inc Add strikeout font metrics. 2017-07-21 18:59:05 +00: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 Move SkTArray to include/private. 2016-02-17 13:13:44 -08:00
UrlDataManager.cpp Create image cache for use by json canvas 2016-02-08 07:08:21 -08:00
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 Valgrind suppressions for new Debian 9 GPU bot 2017-06-30 14:53:38 +00:00
whitelist_typefaces.cpp Make iOS main() functions normal. 2017-02-06 18:02:41 +00:00
win_dbghelp.cpp Style Change: NULL->nullptr 2015-08-27 07:41:16 -07:00
win_dbghelp.h
win_lcid.cpp Style Change: NULL->nullptr 2015-08-27 07:41:16 -07:00
xsan.blacklist GN: add sanitize arg 2016-09-08 08:39:34 -07:00