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> |
||
---|---|---|
.. | ||
bundle_recipes.expected | ||
check_generated_files.expected | ||
compile.expected | ||
ct_skps.expected | ||
housekeeper.expected | ||
infra.expected | ||
perf.expected | ||
recreate_skps.expected | ||
skpbench.expected | ||
test.expected | ||
update_meta_config.expected | ||
upload_dm_results.expected | ||
upload_nano_results.expected | ||
bundle_recipes.py | ||
check_generated_files.py | ||
compile.py | ||
ct_skps.py | ||
housekeeper.py | ||
infra.py | ||
perf.py | ||
README.md | ||
recreate_skps.py | ||
skpbench.py | ||
test.py | ||
update_meta_config.py | ||
upload_dm_results.py | ||
upload_nano_results.py |
Skia Recipes
These are the top-level scripts which run inside of Swarming tasks to perform all of Skia's automated testing.
To run a recipe locally:
$ python infra/bots/recipes.py run --workdir=/tmp/<workdir> <recipe name without .py> key1=value1 key2=value2 ...
Each recipe may have its own required properties which must be entered as key/value pairs in the command.
When you change a recipe, you generally need to re-train the simulation test:
$ python infra/bots/recipes.py test run --train
Or:
$ cd infra/bots; make train
The test generates expectations files for the tests contained within each recipe which illustrate which steps would run, given a particular set of inputs. Pay attention to the diffs in these files when making changes to ensure that your change has the intended effect.