Add arm64 Wuffs perf bots

Bug: chromium:1023191
Bug: skia:8235

Chromium has detected a performance regression on the Nexus 5x when
switching to Wuffs. Benchmark Wuffs on Nexus 5x to help isolate and
fix the problem.

Change-Id: I36a13845ec83290d640263499ec4e5aca7b1239a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255080
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
This commit is contained in:
Leon Scroggins III 2019-11-20 10:58:30 -05:00 committed by Skia Commit-Bot
parent cdd774104c
commit b5a4004a3e
5 changed files with 323 additions and 0 deletions

View File

@ -17,6 +17,7 @@
"Build-Debian9-Clang-arm64-Release-Android_ASAN",
"Build-Debian9-Clang-arm64-Release-Android_ASAN_Vulkan",
"Build-Debian9-Clang-arm64-Release-Android_Vulkan",
"Build-Debian9-Clang-arm64-Release-Android_Wuffs",
"Build-Debian9-Clang-cf_x86_phone-eng-Android_Framework",
"Build-Debian9-Clang-host-sdk-Android_Framework",
"Build-Debian9-Clang-x64-Debug-Android",
@ -184,6 +185,7 @@
"Perf-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Release-All-Android_Vulkan_NoGPUThreads",
"Perf-Android-Clang-Nexus5-CPU-Snapdragon800-arm-Release-All-Android",
"Perf-Android-Clang-Nexus5-GPU-Adreno330-arm-Release-All-Android",
"Perf-Android-Clang-Nexus5x-CPU-Snapdragon808-arm64-Release-All-Android_Wuffs",
"Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android",
"Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android",
"Perf-Android-Clang-P30-GPU-MaliG76-arm64-Release-All-Android",

View File

@ -46,6 +46,8 @@ def compile_fn(api, checkout_root, out_dir):
args['skia_enable_vulkan_debug_layers'] = 'false'
if 'ASAN' in extra_tokens:
args['sanitize'] = '"ASAN"'
if 'Wuffs' in extra_tokens:
args['skia_use_wuffs'] = 'true'
# If an Android API level is specified, use that.
for t in extra_tokens:

View File

@ -0,0 +1,102 @@
[
{
"cmd": [
"vpython",
"-u",
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
"copy",
"[START_DIR]/cache/work/skia/infra/bots/assets/android_ndk_linux/VERSION",
"/path/to/tmp/"
],
"infra_step": true,
"name": "Get android_ndk_linux VERSION",
"~followup_annotations": [
"@@@STEP_LOG_LINE@VERSION@42@@@",
"@@@STEP_LOG_END@VERSION@@@"
]
},
{
"cmd": [
"python",
"-u",
"[START_DIR]/cache/work/skia/bin/fetch-gn"
],
"cwd": "[START_DIR]/cache/work/skia",
"env": {
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"infra_step": true,
"name": "fetch-gn"
},
{
"cmd": [
"[START_DIR]/cache/work/skia/bin/gn",
"gen",
"[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_Wuffs/Release",
"--args=extra_cflags=[\"-DDUMMY_ndk_version=42\"] is_debug=false ndk=\"[START_DIR]/android_ndk_linux\" skia_use_wuffs=true target_cpu=\"arm64\" werror=true"
],
"cwd": "[START_DIR]/cache/work/skia",
"env": {
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"name": "gn gen"
},
{
"cmd": [
"ninja",
"-C",
"[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_Wuffs/Release"
],
"cwd": "[START_DIR]/cache/work/skia",
"env": {
"CHROME_HEADLESS": "1",
"PATH": "<PATH>:RECIPE_REPO[depot_tools]"
},
"name": "ninja"
},
{
"cmd": [
"python",
"-u",
"import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products = ['dm', 'nanobench', 'skpbench']\n\ntry:\n os.makedirs(dst)\nexcept OSError as e:\n if e.errno != errno.EEXIST:\n raise\n\nfor pattern in build_products:\n path = os.path.join(src, pattern)\n for f in glob.glob(path):\n dst_path = os.path.join(dst, os.path.relpath(f, src))\n if not os.path.isdir(os.path.dirname(dst_path)):\n os.makedirs(os.path.dirname(dst_path))\n print 'Copying build product %s to %s' % (f, dst_path)\n shutil.move(f, dst_path)\n",
"[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-arm64-Release-Android_Wuffs/Release",
"[START_DIR]/[SWARM_OUT_DIR]/out/Release"
],
"infra_step": true,
"name": "copy build products",
"~followup_annotations": [
"@@@STEP_LOG_LINE@python.inline@import errno@@@",
"@@@STEP_LOG_LINE@python.inline@import glob@@@",
"@@@STEP_LOG_LINE@python.inline@import os@@@",
"@@@STEP_LOG_LINE@python.inline@import shutil@@@",
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
"@@@STEP_LOG_LINE@python.inline@@@@",
"@@@STEP_LOG_LINE@python.inline@src = sys.argv[1]@@@",
"@@@STEP_LOG_LINE@python.inline@dst = sys.argv[2]@@@",
"@@@STEP_LOG_LINE@python.inline@build_products = ['dm', 'nanobench', 'skpbench']@@@",
"@@@STEP_LOG_LINE@python.inline@@@@",
"@@@STEP_LOG_LINE@python.inline@try:@@@",
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(dst)@@@",
"@@@STEP_LOG_LINE@python.inline@except OSError as e:@@@",
"@@@STEP_LOG_LINE@python.inline@ if e.errno != errno.EEXIST:@@@",
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
"@@@STEP_LOG_LINE@python.inline@@@@",
"@@@STEP_LOG_LINE@python.inline@for pattern in build_products:@@@",
"@@@STEP_LOG_LINE@python.inline@ path = os.path.join(src, pattern)@@@",
"@@@STEP_LOG_LINE@python.inline@ for f in glob.glob(path):@@@",
"@@@STEP_LOG_LINE@python.inline@ dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
"@@@STEP_LOG_LINE@python.inline@ if not os.path.isdir(os.path.dirname(dst_path)):@@@",
"@@@STEP_LOG_LINE@python.inline@ os.makedirs(os.path.dirname(dst_path))@@@",
"@@@STEP_LOG_LINE@python.inline@ print 'Copying build product %s to %s' % (f, dst_path)@@@",
"@@@STEP_LOG_LINE@python.inline@ shutil.move(f, dst_path)@@@",
"@@@STEP_LOG_END@python.inline@@@"
]
},
{
"name": "$result"
}
]

View File

@ -30,6 +30,7 @@ TEST_BUILDERS = [
'Build-Debian9-Clang-arm-Release-Android_ASAN',
'Build-Debian9-Clang-arm-Release-Chromebook_GLES',
'Build-Debian9-Clang-arm-Release-Flutter_Android',
'Build-Debian9-Clang-arm64-Release-Android_Wuffs',
'Build-Debian9-Clang-x86-devrel-Android_SKQP',
'Build-Debian9-Clang-x86_64-Debug-Chromebook_GLES',
'Build-Debian9-Clang-x86_64-Debug-Coverage',

View File

@ -152,6 +152,11 @@
"Build-Debian9-Clang-arm64-Release-Android_Vulkan"
]
},
"Build-Debian9-Clang-arm64-Release-Android_Wuffs": {
"tasks": [
"Build-Debian9-Clang-arm64-Release-Android_Wuffs"
]
},
"Build-Debian9-Clang-cf_x86_phone-eng-Android_Framework": {
"tasks": [
"Build-Debian9-Clang-cf_x86_phone-eng-Android_Framework"
@ -937,6 +942,11 @@
"Upload-Perf-Android-Clang-Nexus5-GPU-Adreno330-arm-Release-All-Android"
]
},
"Perf-Android-Clang-Nexus5x-CPU-Snapdragon808-arm64-Release-All-Android_Wuffs": {
"tasks": [
"Upload-Perf-Android-Clang-Nexus5x-CPU-Snapdragon808-arm64-Release-All-Android_Wuffs"
]
},
"Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android": {
"tasks": [
"Upload-Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android"
@ -5188,6 +5198,75 @@
],
"service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com"
},
"Build-Debian9-Clang-arm64-Release-Android_Wuffs": {
"caches": [
{
"name": "vpython",
"path": "cache/vpython"
}
],
"cipd_packages": [
{
"name": "infra/tools/luci/kitchen/${platform}",
"path": ".",
"version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
},
{
"name": "infra/tools/luci-auth/${platform}",
"path": "cipd_bin_packages",
"version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
},
{
"name": "infra/tools/luci/vpython/${platform}",
"path": "cipd_bin_packages",
"version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
},
{
"name": "skia/bots/android_ndk_linux",
"path": "android_ndk_linux",
"version": "version:15"
}
],
"command": [
"cipd_bin_packages/vpython${EXECUTABLE_SUFFIX}",
"skia/infra/bots/run_recipe.py",
"${ISOLATED_OUTDIR}",
"compile",
"{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildername\":\"Build-Debian9-Clang-arm64-Release-Android_Wuffs\",\"swarm_out_dir\":\"build\"}",
"skia"
],
"dependencies": [
"Housekeeper-PerCommit-BundleRecipes"
],
"dimensions": [
"cpu:x86-64-Haswell_GCE",
"gpu:none",
"machine_type:n1-highcpu-64",
"os:Debian-9.8",
"pool:Skia"
],
"env_prefixes": {
"PATH": [
"cipd_bin_packages",
"cipd_bin_packages/bin"
],
"VPYTHON_VIRTUALENV_ROOT": [
"cache/vpython"
]
},
"execution_timeout_ns": 3600000000000,
"extra_tags": {
"log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations"
},
"idempotent": true,
"io_timeout_ns": 3600000000000,
"isolate": "compile.isolate",
"max_attempts": 2,
"outputs": [
"build"
],
"service_account": "skia-external-compile-tasks@skia-swarming-bots.iam.gserviceaccount.com"
},
"Build-Debian9-Clang-cf_x86_phone-eng-Android_Framework": {
"caches": [
{
@ -16538,6 +16617,77 @@
"perf"
]
},
"Perf-Android-Clang-Nexus5x-CPU-Snapdragon808-arm64-Release-All-Android_Wuffs": {
"caches": [
{
"name": "vpython",
"path": "cache/vpython"
}
],
"cipd_packages": [
{
"name": "infra/tools/luci/kitchen/${platform}",
"path": ".",
"version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
},
{
"name": "infra/tools/luci-auth/${platform}",
"path": "cipd_bin_packages",
"version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
},
{
"name": "infra/tools/luci/vpython/${platform}",
"path": "cipd_bin_packages",
"version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
},
{
"name": "skia/bots/text_blob_traces",
"path": "text_blob_traces",
"version": "version:0"
}
],
"command": [
"cipd_bin_packages/vpython${EXECUTABLE_SUFFIX}",
"skia/infra/bots/run_recipe.py",
"${ISOLATED_OUTDIR}",
"perf",
"{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Nexus5x-CPU-Snapdragon808-arm64-Release-All-Android_Wuffs\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"perf\",\"task_id\":\"<(TASK_ID)\"}",
"skia"
],
"dependencies": [
"Housekeeper-PerCommit-BundleRecipes",
"Build-Debian9-Clang-arm64-Release-Android_Wuffs",
"Housekeeper-PerCommit-IsolateSKP",
"Housekeeper-PerCommit-IsolateSVG",
"Housekeeper-PerCommit-IsolateSkImage"
],
"dimensions": [
"device_os:OPR6.170623.023",
"device_type:bullhead",
"os:Android",
"pool:Skia"
],
"env_prefixes": {
"PATH": [
"cipd_bin_packages",
"cipd_bin_packages/bin"
],
"VPYTHON_VIRTUALENV_ROOT": [
"cache/vpython"
]
},
"execution_timeout_ns": 14400000000000,
"expiration_ns": 72000000000000,
"extra_tags": {
"log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations"
},
"io_timeout_ns": 14400000000000,
"isolate": "perf_skia_bundled.isolate",
"max_attempts": 2,
"outputs": [
"perf"
]
},
"Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android": {
"caches": [
{
@ -49848,6 +49998,72 @@
"max_attempts": 2,
"service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com"
},
"Upload-Perf-Android-Clang-Nexus5x-CPU-Snapdragon808-arm64-Release-All-Android_Wuffs": {
"caches": [
{
"name": "vpython",
"path": "cache/vpython"
}
],
"cipd_packages": [
{
"name": "infra/tools/luci/kitchen/${platform}",
"path": ".",
"version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
},
{
"name": "infra/tools/luci-auth/${platform}",
"path": "cipd_bin_packages",
"version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
},
{
"name": "infra/tools/luci/vpython/${platform}",
"path": "cipd_bin_packages",
"version": "git_revision:0e171233385f11fd2b7458728c8ee439d4db53f1"
},
{
"name": "infra/gsutil",
"path": "cipd_bin_packages",
"version": "version:4.46"
}
],
"command": [
"cipd_bin_packages/vpython${EXECUTABLE_SUFFIX}",
"skia/infra/bots/run_recipe.py",
"${ISOLATED_OUTDIR}",
"upload_nano_results",
"{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Perf-Android-Clang-Nexus5x-CPU-Snapdragon808-arm64-Release-All-Android_Wuffs\",\"gs_bucket\":\"skia-perf\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"revision\":\"<(REVISION)\",\"swarm_out_dir\":\"output_ignored\",\"task_id\":\"<(TASK_ID)\"}",
"skia"
],
"dependencies": [
"Housekeeper-PerCommit-BundleRecipes",
"Perf-Android-Clang-Nexus5x-CPU-Snapdragon808-arm64-Release-All-Android_Wuffs"
],
"dimensions": [
"cpu:x86-64-Haswell_GCE",
"gpu:none",
"machine_type:n1-highmem-2",
"os:Debian-9.8",
"pool:Skia"
],
"env_prefixes": {
"PATH": [
"cipd_bin_packages",
"cipd_bin_packages/bin"
],
"VPYTHON_VIRTUALENV_ROOT": [
"cache/vpython"
]
},
"execution_timeout_ns": 3600000000000,
"extra_tags": {
"log_location": "logdog://logs.chromium.org/skia/${SWARMING_TASK_ID}/+/annotations"
},
"io_timeout_ns": 3600000000000,
"isolate": "swarm_recipe.isolate",
"max_attempts": 2,
"service_account": "skia-external-nano-uploader@skia-swarming-bots.iam.gserviceaccount.com"
},
"Upload-Perf-Android-Clang-Nexus5x-GPU-Adreno418-arm64-Release-All-Android": {
"caches": [
{