1cb93a386Sopenharmony_ci#!/bin/bash
2cb93a386Sopenharmony_ci# Copyright 2020 Google LLC
3cb93a386Sopenharmony_ci#
4cb93a386Sopenharmony_ci# Use of this source code is governed by a BSD-style license that can be
5cb93a386Sopenharmony_ci# found in the LICENSE file.
6cb93a386Sopenharmony_ci
7cb93a386Sopenharmony_ci# This script measures frametimes for CanvasKit rendering all skps in ~/skps, using puppeteer. It
8cb93a386Sopenharmony_ci# can optionally output a human-readable summary of the collected measurements.
9cb93a386Sopenharmony_ci# See the document "SIMD CanvasKit Build Performance Testing" for results and context:
10cb93a386Sopenharmony_ci# https://docs.google.com/document/d/114kdSGPMnOSQCZ7pFgd3MGMn5mIW562RMoXVmD13e0M/edit?ts=5f0eedf6#
11cb93a386Sopenharmony_ci#
12cb93a386Sopenharmony_ci# arguments:
13cb93a386Sopenharmony_ci# --release     perfs the release build of CanvasKit and outputs data to release_out.json
14cb93a386Sopenharmony_ci# --simd        perfs the experimental_simd build of CanvasKit outputs data to simd_out.json
15cb93a386Sopenharmony_ci# --summary     outputs results from the perfs in a human readable table format.
16cb93a386Sopenharmony_ci#
17cb93a386Sopenharmony_ci# example usage: ./perf_all_skps.sh --release --simd --summary
18cb93a386Sopenharmony_ci
19cb93a386Sopenharmony_cifor f in $HOME/skps/*.skp;
20cb93a386Sopenharmony_cido
21cb93a386Sopenharmony_ci    if [[ "$*" == *"--release"* ]]
22cb93a386Sopenharmony_ci    then
23cb93a386Sopenharmony_ci        echo $f
24cb93a386Sopenharmony_ci        node perf-canvaskit-with-puppeteer.js \
25cb93a386Sopenharmony_ci            --canvaskit_js ../../out/canvaskit_wasm/canvaskit.js \
26cb93a386Sopenharmony_ci            --canvaskit_wasm ../../out/canvaskit_wasm/canvaskit.wasm --use_gpu \
27cb93a386Sopenharmony_ci            --input_skp $f \
28cb93a386Sopenharmony_ci            --bench_html render-skp.html \
29cb93a386Sopenharmony_ci            --chromium_executable_path "/applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary" \
30cb93a386Sopenharmony_ci            --output release_out.json \
31cb93a386Sopenharmony_ci            --merge_output_as `basename $f`
32cb93a386Sopenharmony_ci    fi
33cb93a386Sopenharmony_ci    if [[ "$*" == *"--simd"* ]]
34cb93a386Sopenharmony_ci    then
35cb93a386Sopenharmony_ci        node perf-canvaskit-with-puppeteer.js \
36cb93a386Sopenharmony_ci            --canvaskit_js ../../out/canvaskit_wasm_experimental_simd/canvaskit.js \
37cb93a386Sopenharmony_ci            --canvaskit_wasm ../../out/canvaskit_wasm_experimental_simd/canvaskit.wasm --use_gpu \
38cb93a386Sopenharmony_ci            --input_skp $f \
39cb93a386Sopenharmony_ci            --bench_html render-skp.html \
40cb93a386Sopenharmony_ci            --chromium_executable_path "/applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary" \
41cb93a386Sopenharmony_ci            --enable_simd \
42cb93a386Sopenharmony_ci            --output simd_out.json \
43cb93a386Sopenharmony_ci            --merge_output_as `basename $f`
44cb93a386Sopenharmony_ci    fi
45cb93a386Sopenharmony_cidone
46cb93a386Sopenharmony_ciif [[ "$*" == *"--summary"* ]]
47cb93a386Sopenharmony_cithen
48cb93a386Sopenharmony_ci    node skp_data_prep
49cb93a386Sopenharmony_cifi
50