skia2/tools
Kevin Lubick 5443bb32a2 [canvaskit] Start a generic puppeteer perfing system.
IMPORTANT LESSON: when bringing in node (and possibly other
executables) via CIPD, add them to the path in gen_tasks_logic
so the parent executable (the task driver itself) has the right
PATH set. Otherwise, the subprocesses it spawns might grab the
wrong version because of how golang handles environments of
subprocesses.

This is starting as a fork of Skottie WASM. I hope to have a more unified
system for creating and running benchmarks.

Overall overview:
gen_tasks_logic.go creates a task in task.json that compiles
CanvasKit and the task drivers and then executes our task
(i.e. perf_puppeteer.go)

perf_puppeteer runs a node program (perf-with-puppeteer.js)
that uses puppeteer to execute benchmarking code on an
html page (canvaskit-skottie-frames-load.html).

I needed to update the node package so npm could be updated from
3.x to 6.14.4 so it knew about `npm ci`. This may not have been
entirely necessary, given the problems of executing the correct
npm (see important lesson above), but it hasn't broken things
further, so more up-to-date is probably a good thing.

Suggested Review Order:
 - canvaskit-skottie-frames-load.html (note it is similar to
   skottie-wasm-perf.html, but it waits for a button click
   to start animating and records times from the main JS thread
   itself)
 - perf-with-puppeteer.js (similar to skottie-wasm-perf.js, but
   has some things made optional [e.g. tracing])
 - perf_puppeteer_test.go (shows the inputs/outputs of various steps)
 - perf_puppeteer.go
 - Everything else.


Change-Id: I380e81b825f36682c257664d488267edaf36369e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285783
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2020-05-01 19:23:08 +00:00
..
android [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
calmbench [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
copyright Fix pylint check in presubmit 2018-06-22 14:38:28 +00:00
debugger rm unneeded SK_SUPPORT_LEGACY_DIDCONCAT44 2020-04-20 20:44:35 +00:00
doxygen Make OUTPUT_DIRECTORY in ProdDoxyfile configurable 2019-12-18 16:46:25 +00:00
fiddle Revert "Revert "Revert "Revert "Don't build GL on Metal, Vulkan, Dawn, Direct3D bots"""" 2020-03-20 17:11:58 +00:00
flags Add a flag for suppressing tessellation shaders 2020-04-23 18:35:48 +00:00
fm report all test errors in fm 2020-04-15 18:10:46 +00:00
fonts Move scaler context fallback to GDI 2020-02-11 19:50:27 +00:00
gdb Update gdb bitmap viewer. 2018-06-20 21:24:27 +00:00
gpu Replace skstd::exchange with std::exchange 2020-04-30 11:14:20 +00:00
infra [infra] Use "mod download" and "install", not "get" in chrome_release_branch 2019-12-06 11:16:41 +00:00
lottie-web-perf Add blocklist command line parameter 2019-09-06 21:07:20 +00:00
lottiecap [LottieWeb] Fix frames 2018-08-29 17:58:42 +00:00
lua [Tree Status] Update all references in Skia repo to tree-status 2020-03-02 18:43:49 +00:00
malisc Extend --writeShaders to output SPIR-V 2019-04-15 14:04:18 +00:00
mdbviz Reland "Merge GrOpList and GrRTOpList and rename to GrOpsTask." 2019-08-22 20:52:09 +00:00
perf-canvaskit-puppeteer [canvaskit] Start a generic puppeteer perfing system. 2020-05-01 19:23:08 +00:00
rebaseline [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
sk_app Fix assertion in ImGui::NewFrame if getBackbufferSurface returns null. 2020-04-13 14:16:52 +00:00
skdiff Move SkTSearch.h into src. 2019-05-15 14:15:07 +00:00
skiaserve Revert "Revert "Revert "Revert "Don't build GL on Metal, Vulkan, Dawn, Direct3D bots"""" 2020-03-20 17:11:58 +00:00
skottie_ios_app reformat GN files 2020-04-01 23:23:03 +00:00
skottie-wasm-perf [skottieWASM] make sure we are using CPU or GPU correctly 2019-12-03 18:29:53 +00:00
skp [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
skpbench Create DDL for final composition step in DDL test harness 2020-04-24 12:16:34 +00:00
skqp SkQP: Fix broken run_skqp_exe 2020-04-21 18:39:45 +00:00
skui update skstd 2020-04-30 15:05:43 +00:00
svg [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
timer Adapt GrRectBlur for cases with rect W/H less than six sigma. 2019-09-10 14:39:07 +00:00
trace Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
viewer update skstd 2020-04-30 15:05:43 +00:00
__init__.py Add bench_pictures config 2012-12-12 20:13:26 +00:00
abandon_gerrit_cls.py Add wrapper script to call tool to bulk abandon Gerrit CLs 2020-03-11 18:50:57 +00:00
add_codereview_message.py Remove trailing whitespace. 2017-10-09 21:20:34 +00:00
AndroidSkDebugToStdOut.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
AutoreleasePool.h Reland "Added AutoreleasePool for managing pool memory in testing apps." 2019-05-31 15:40:01 +00:00
AutoreleasePool.mm Reland "Added AutoreleasePool for managing pool memory in testing apps." 2019-05-31 15:40:01 +00:00
BigPathBench.inc Factor out VisualBench timing code into a helper class 2015-10-05 07:23:30 -07:00
blob_cache_sim.cpp SkRemoteGlyphCache Add tracing to diff canvas 2019-10-24 17:09:31 +00: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
build_workaround_header.py Add CheckGeneratedFiles recipe check for gpu workarounds 2018-04-25 19:26:27 +00:00
check-headers-self-sufficient rm SkPreConfig.h and SkPostConfig.h 2020-02-06 19:16:43 +00:00
chrome_fuzz.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
chrome_release_branch [infra] Add chrome_release_branch script 2019-04-16 19:46:10 +00:00
chrome_release_branch.bat [infra] Add chrome_release_branch script 2019-04-16 19:46:10 +00:00
chrome_release_branch.py Exclude G3 trybot for non-master branches 2020-02-28 18:25:17 +00:00
clang-tidy.sh don't run clang-tidy on third_party 2020-03-30 15:26:32 +00:00
compare_codereview.py Further tweak compare_codereview.py. 2014-03-25 18:02:17 +00:00
cpu_modules.cpp Particle cleanup: split SkParticleBinding out of SkParticleEffect 2019-08-30 15:32:38 +00:00
CrashHandler.cpp SKQP Build for Fuchsia SDK 2019-11-18 12:34:28 +00:00
CrashHandler.h rewrite ambiguous comment 2015-02-10 07:47:31 -08:00
DDLPromiseImageHelper.cpp Create DDL for final composition step in DDL test harness 2020-04-24 12:16:34 +00:00
DDLPromiseImageHelper.h Create DDL for final composition step in DDL test harness 2020-04-24 12:16:34 +00:00
DDLTileHelper.cpp Create DDL for final composition step in DDL test harness 2020-04-24 12:16:34 +00:00
DDLTileHelper.h Create DDL for final composition step in DDL test harness 2020-04-24 12:16:34 +00:00
doxygen_footer.txt Fix update-doxygen, which fails when skia-autogen is reset 2012-09-26 16:09:43 +00:00
dump_record.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
DumpRecord.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
DumpRecord.h Factor out DumpRecord method from dump_record tool for later use 2014-05-15 16:10:37 +00:00
embed_resources.py [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
find_run_binary.py [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
fix_pythonpath.py [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
force_older_glibc_math.h roll cast toolchain 2019-08-15 20:02:18 +00:00
gcov_shim add a way to get code coverage 2013-09-13 19:32:43 +00:00
get_current_monitor_profile.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
get_images_from_skps.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
git-sync-deps tools/git-sync-deps works with either python 2020-01-10 16:30:11 +00:00
HashAndEncode.cpp basic, untested BGR 1010102 and 101010x 2020-02-11 21:44:57 +00:00
HashAndEncode.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
hello-opencl.cpp run all available OpenCL devices 2019-02-11 21:29:33 +00:00
image_diff_metric.cpp pdf-comparison and image_diff_metric tools 2019-09-19 21:18:28 +00:00
imgcvt.cpp Move skcms.h to include/third_party/skcms 2019-04-29 15:02:45 +00:00
install_dependencies.sh Add harfbuzz to tools/install_dependencies.sh 2019-05-03 23:52:09 +00:00
ios_utils.h Fix bugs with fence sync API on iOS devices 2017-10-10 19:05:13 +00:00
ios_utils.m rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
jsondiff.py Fix pylint check in presubmit 2018-06-22 14:38:28 +00:00
list_gms.cpp gm: GMFactory returns a unique_ptr<> 2019-08-12 19:02:40 +00:00
list_gpu_unit_tests.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
LsanSuppressions.cpp stifle leaks in terminator_CreateDevice() 2020-04-08 15:28:48 +00:00
merge_static_libs.py Remove trailing whitespace. 2017-10-09 21:20:34 +00:00
milestone.py SkPDF: milestone in metadata, also SkMilestone.h 2016-03-29 09:09:29 -07:00
mirror-dev.sh Update mirror-dev for *-dev:amd64 packages. 2017-11-09 22:44:57 +00:00
misc_utils.py Whitespace fixes for Python tools 2014-06-25 08:40:58 -07:00
OverwriteLine.h eliminate SK_BUILD_FOR_WIN32 2018-01-26 19:52:04 +00:00
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 fix pathops bug 8380 2018-12-21 19:15:54 +00:00
pathops_visualizer.htm fix pathops bug 8380 2018-12-21 19:15:54 +00:00
ProcStats.cpp SKQP Build for Fuchsia SDK 2019-11-18 12:34:28 +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 rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
random_parse_path.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
reformat-json.py add reformat-json.py script 2013-07-19 15:45:22 +00:00
Registry.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
remote_demo.cpp Part 1/2 to remove SkTextBlobCacheDiffCanvas::Settings 2019-08-16 15:27:35 +00:00
ResourceFactory.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
Resources.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
Resources.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
retrieve_from_googlesource.py [minor] mark scripts as executable 2019-11-21 17:06:27 +00:00
rewrite_includes.py renable SkM44.h checks 2020-02-26 14:54:55 +00:00
sanitize_source_files.py Clean up more references to GYP. 2017-02-06 17:55:35 +00:00
skhello.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkMetaData.cpp SkMetaData: drop unused pointer ownership 2019-08-12 18:26:00 +00:00
SkMetaData.h SkMetaData: drop unused pointer ownership 2019-08-12 18:26:00 +00:00
skottie2movie.cpp Copy SkottieUtils' classes into skresources 2019-11-26 14:25:44 +00:00
skp_parser.cpp Remove an uncessary and unused parameter for partially generating the JSON command list 2019-12-13 19:30:03 +00:00
skpinfo.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSharingProc.cpp Reland "Deserialize MultiPictureDocument based SKP files (with image sharing proc) in wasm debugger." 2019-06-21 15:49:21 +00:00
SkSharingProc.h Reland "Deserialize MultiPictureDocument based SKP files (with image sharing proc) in wasm debugger." 2019-06-21 15:49:21 +00:00
SkVMBuilders.cpp remove i16x2 ops 2020-04-13 19:08:11 +00:00
SkVMBuilders.h remove i16x2 ops 2020-04-13 19:08:11 +00:00
Stats.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
test_all.py skimage, die die die 2014-12-15 12:47:52 -08:00
test_pdfs.py Add an SKP to PDF rendered. test_pdfs.py will be hooked up in buildbot testing later. 2012-10-10 15:20:34 +00:00
ToolUtils.cpp Add BGR_10A2 support to Ganesh (take 2) 2020-04-30 15:25:20 +00:00
ToolUtils.h Move "set_path_pt" from SampleAAGeometry into ToolUtils 2020-01-06 19:00:13 +00:00
UrlDataManager.cpp begin refactoring SkTDynamicHash and SkTMultiMap 2020-03-16 14:06:30 +00:00
UrlDataManager.h Support using an externally manage list of images in UrlDataManager for wasm debugger. 2020-01-03 21:25:12 +00:00
using_skia_and_harfbuzz.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
valgrind.supp Add valgrind suppressions for GrClearImage 2019-11-05 15:46:13 +00:00
whitelist_typefaces.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
win_dbghelp.cpp Move SkTSearch.h into src. 2019-05-15 14:15:07 +00:00
win_dbghelp.h eliminate SK_BUILD_FOR_WIN32 2018-01-26 19:52:04 +00:00
win_lcid.cpp Move SkTSearch.h into src. 2019-05-15 14:15:07 +00:00
xsan.blacklist turn on alignment sanitizer 2018-08-09 21:13:15 +00:00