76323bc061
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: I3d5a230bbd68eb35e1f0574b308485c691435790 Reviewed-on: https://skia-review.googlesource.com/36560 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
391 lines
9.8 KiB
JSON
391 lines
9.8 KiB
JSON
[
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"[START_DIR]/skia/infra/bots/assets/skp/VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"infra_step": true,
|
|
"name": "Get downloaded SKP VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"42",
|
|
"[START_DIR]/tmp/SKP_VERSION"
|
|
],
|
|
"infra_step": true,
|
|
"name": "write SKP_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"infra_step": true,
|
|
"name": "Get downloaded skimage VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"42",
|
|
"[START_DIR]/tmp/SK_IMAGE_VERSION"
|
|
],
|
|
"infra_step": true,
|
|
"name": "write SK_IMAGE_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"[START_DIR]/skia/infra/bots/assets/svg/VERSION",
|
|
"/path/to/tmp/"
|
|
],
|
|
"infra_step": true,
|
|
"name": "Get downloaded SVG VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"copy",
|
|
"42",
|
|
"[START_DIR]/tmp/SVG_VERSION"
|
|
],
|
|
"infra_step": true,
|
|
"name": "write SVG_VERSION"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"rmtree",
|
|
"[CUSTOM_[SWARM_OUT_DIR]]/dm"
|
|
],
|
|
"infra_step": true,
|
|
"name": "rmtree dm"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"ensure-directory",
|
|
"--mode",
|
|
"0777",
|
|
"[CUSTOM_[SWARM_OUT_DIR]]/dm"
|
|
],
|
|
"infra_step": true,
|
|
"name": "makedirs dm"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
|
|
"--json-output",
|
|
"/path/to/tmp/json",
|
|
"ensure-directory",
|
|
"--mode",
|
|
"0777",
|
|
"[START_DIR]/tmp"
|
|
],
|
|
"infra_step": true,
|
|
"name": "makedirs tmp_dir"
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'\nRETRIES = 5\nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in range(RETRIES):\n try:\n with contextlib.closing(\n urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n hashes = w.read()\n with open(sys.argv[1], 'w') as f:\n f.write(hashes)\n break\n except Exception as e:\n print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n print e\n if retry == RETRIES:\n raise\n waittime = WAIT_BASE * math.pow(2, retry)\n print 'Retry in %d seconds.' % waittime\n time.sleep(waittime)\n",
|
|
"[START_DIR]/tmp/uninteresting_hashes.txt"
|
|
],
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"infra_step": true,
|
|
"name": "get uninteresting hashes",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import contextlib@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import math@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import socket@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import sys@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import time@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@import urllib2@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@HASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ try:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ with contextlib.closing(@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ hashes = w.read()@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ with open(sys.argv[1], 'w') as f:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ f.write(hashes)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ break@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ except Exception as e:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print e@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ if retry == RETRIES:@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ raise@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, retry)@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittime@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
|
|
],
|
|
"name": "get swarming bot id",
|
|
"stdout": "/path/to/tmp/",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
|
|
],
|
|
"name": "get swarming task id",
|
|
"stdout": "/path/to/tmp/",
|
|
"~followup_annotations": [
|
|
"@@@STEP_LOG_LINE@python.inline@import os@@@",
|
|
"@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
|
|
"@@@STEP_LOG_END@python.inline@@@"
|
|
]
|
|
},
|
|
{
|
|
"cmd": [
|
|
"python",
|
|
"-u",
|
|
"RECIPE_MODULE[skia::flavor]/resources/symbolize_stack_trace.py",
|
|
"[START_DIR]",
|
|
"catchsegv",
|
|
"[START_DIR]/out/Debug/dm",
|
|
"--resourcePath",
|
|
"[START_DIR]/skia/resources",
|
|
"--skps",
|
|
"[START_DIR]/skp",
|
|
"--images",
|
|
"[START_DIR]/skimage/dm",
|
|
"--colorImages",
|
|
"[START_DIR]/skimage/colorspace",
|
|
"--nameByHash",
|
|
"--properties",
|
|
"gitHash",
|
|
"abc123",
|
|
"builder",
|
|
"Test-Ubuntu16-Clang-NUCDE3815TYKHE-GPU-IntelBayTrail-x86_64-Debug",
|
|
"swarming_bot_id",
|
|
"skia-bot-123",
|
|
"swarming_task_id",
|
|
"123456",
|
|
"--svgs",
|
|
"[START_DIR]/svg",
|
|
"--key",
|
|
"arch",
|
|
"x86_64",
|
|
"compiler",
|
|
"Clang",
|
|
"configuration",
|
|
"Debug",
|
|
"cpu_or_gpu",
|
|
"GPU",
|
|
"cpu_or_gpu_value",
|
|
"IntelBayTrail",
|
|
"model",
|
|
"NUCDE3815TYKHE",
|
|
"os",
|
|
"Ubuntu16",
|
|
"--uninterestingHashesFile",
|
|
"[START_DIR]/tmp/uninteresting_hashes.txt",
|
|
"--writePath",
|
|
"[CUSTOM_[SWARM_OUT_DIR]]/dm",
|
|
"--dont_write",
|
|
"pdf",
|
|
"--randomProcessorTest",
|
|
"--nocpu",
|
|
"--config",
|
|
"gl",
|
|
"gldft",
|
|
"glsrgb",
|
|
"gles",
|
|
"glesdft",
|
|
"gltestthreading",
|
|
"--src",
|
|
"tests",
|
|
"gm",
|
|
"image",
|
|
"colorImage",
|
|
"svg",
|
|
"--blacklist",
|
|
"_",
|
|
"svg",
|
|
"_",
|
|
"svgparse_",
|
|
"glsrgb",
|
|
"image",
|
|
"_",
|
|
"_",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
"interlaced1.png",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
"interlaced2.png",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
"interlaced3.png",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".arw",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".cr2",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".dng",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".nef",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".nrw",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".orf",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".raf",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".rw2",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".pef",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".srw",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".ARW",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".CR2",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".DNG",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".NEF",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".NRW",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".ORF",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".RAF",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".RW2",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".PEF",
|
|
"_",
|
|
"image",
|
|
"_",
|
|
".SRW",
|
|
"--match",
|
|
"~ImageStorageLoad",
|
|
"--verbose"
|
|
],
|
|
"cwd": "[START_DIR]/skia",
|
|
"env": {
|
|
"BUILDTYPE": "Debug",
|
|
"CHROME_HEADLESS": "1",
|
|
"LD_LIBRARY_PATH": "[START_DIR]/linux_vulkan_intel_driver_debug",
|
|
"LIBGL_DRIVERS_PATH": "[START_DIR]/linux_vulkan_intel_driver_debug",
|
|
"PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
|
|
"SKIA_OUT": "[START_DIR]/out"
|
|
},
|
|
"name": "symbolized dm"
|
|
},
|
|
{
|
|
"name": "$result",
|
|
"recipe_result": null,
|
|
"status_code": 0
|
|
}
|
|
] |