This adds 2 docker containers (based on the ones used for PathKit
added in https://skia-review.googlesource.com/c/skia/+/147042)
which bundle Chrome and puppeteer to allow the lottiecap.js
to be run anywhere.
This adds a recipe (test_lottie_web.py) to drive the docker
container and do a little bit of set-up (and a few docs/bug
fixes discovered in the test_pathkit.py that it was based on).
Additionally, this modifies lottiecap.js to support POSTing
output to a running go server (again, the same as PathKit)
which has the image data hashed and the metadata added to
a large JSON output.
This re-works driver.html to avoid re-loading the JSON object
25 times. The performance boost is important because, right now,
the lottie files are processed individually.
In a future CL, I want to address the two TODOs in
lottie-web-aggregator.go
Bug: skia:8108
Change-Id: I100c9ce23dcc5033a27287211cbf0db898960da9
Reviewed-on: https://skia-review.googlesource.com/149282
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Stephan Altmueller <stephana@google.com>
- This bot didn't start failing the non-ERA version that was added
yesterday, so I suspect it's going to pass all versions.
- Also, the CCPR Pixel bots are continuing to fail, but it's not clear
if the non-ERA version is passing, so label the failures to find out.
Bug: skia:
Change-Id: Ib5fcb3cf03065453fe31c2a4ac8a9f2fd5bdeaf8
Reviewed-on: https://skia-review.googlesource.com/149982
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:6653
Change-Id: I034c8183c5550914d155acf842a7a73c6f1b5d15
Reviewed-on: https://skia-review.googlesource.com/149680
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This will help us distinguish between "rendered by skottie",
"rendered by lottie-web", etc.
Bug: skia:8108
Change-Id: I48b489adf8f8b7f950df397e5e94c1103dc4d306
Reviewed-on: https://skia-review.googlesource.com/149237
Reviewed-by: Stephan Altmueller <stephana@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Bug: skia:
Change-Id: Ib3616e1504175b7862ad0a78837cc8eca7a8deb9
Reviewed-on: https://skia-review.googlesource.com/149227
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Add "PowerVR" to GT7600, GT7800, and GX6450 (iOS jobs).
Add model number G6430 to NexusPlayer.
Change-Id: Id0beb9e25ac793378fcd353836a43b2ea9db1aef
Reviewed-on: https://skia-review.googlesource.com/148668
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
The Braswell (IntelHD405) bots are way over-capacity. The Perf Debug
jobs are responsible for about half of the bot time.
We don't upload any data from Perf Debug jobs, so the only point of
running them is to catch asserts. It seems unlikely that the Braswell
bots would be the only ones to assert, since we also have Sandy Bridge,
Bay Trail, and Kaby Lake bots running the same configs.
No-Try: true
Change-Id: Id71086aade9f143d76fe80c03e41f7f9b52e911b
Reviewed-on: https://skia-review.googlesource.com/148675
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
This is a followup to
https://skia-review.googlesource.com/c/skia/+/145431
Also clean up old job names in recipe expectations.
No-Try: true
Change-Id: Ic63a64a98fb39076680941bb2415b7bb64415179
Reviewed-on: https://skia-review.googlesource.com/148671
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Consolidates the karma files into one for docker/asmjs/wasm and all
combinations.
The asm.js build seems to have some small imprecisions that we didn't
see as much as with WASM, probably due to JS limitations/differences
to c++'s floats.
To address these, I've marked some (5) tests in PathOps* as flaky
because they fail on Release, Debug or Test versions of the asm.js build.
Other then that, asm.js seems basically identical to the WASM.
WASM is much smaller, 416k vs 877k and seems to load faster (not
measured).
Note to reviewers:
example.html was copied from npm-wasm version, so doesn't need
further review.
Bug: skia:8216
Change-Id: Ib92b90fa6c598de85a0be319d46b25693ae5aaa4
Reviewed-on: https://skia-review.googlesource.com/148396
Reviewed-by: Stephan Altmueller <stephana@google.com>
From robertphillips:
- not many Android devices use PowerVR chips
- the NexusPlayer is not getting P
- We're also ignoring the NexusPlayer vk gold result bc the driver
doesn't seem to be clearing the color buffer so almost all the
images are incorrect.
Bug: skia:7021 skia:6132 skia:7191 skia:7244 skia:7018 skia:7837 skia:8166
Change-Id: I2a1e9748deeee7f9cab6294b961783182ed5351e
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/148667
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Bug: skia:
Change-Id: I0222016ff079da2199e3658f1657aecc3f80f401
Reviewed-on: https://skia-review.googlesource.com/148389
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Change-Id: I13f402438825b2251a9149995d5c61b14f2e08a3
Reviewed-on: https://skia-review.googlesource.com/148122
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
The config refactor inadvertently included Android and Mac *SAN bots.
Change-Id: I158c25be9fbd098cd903741eb78209c8ee95d8df
Reviewed-on: https://skia-review.googlesource.com/148302
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Also simplify (i.e. remove) the "copy to tmp dir" step.
Bug: skia:
Change-Id: I88a12aeaa1ad131588f66ac306909ec892e5ad18
Reviewed-on: https://skia-review.googlesource.com/148021
Reviewed-by: Stephan Altmueller <stephana@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Bug: skia:8263
Change-Id: Ic5003128485116c66ae1ed61e8727b9b1c33aa1a
Reviewed-on: https://skia-review.googlesource.com/147968
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
No-Try: true
Change-Id: I9ca13921cdc5ed388b6b4ba46d99a2d4e4735158
Reviewed-on: https://skia-review.googlesource.com/146532
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Move all CPU configs except 8888 to new BonusConfigs bots
(and keep them running on the *SAN bots), and turn on the
new rec2020 configs there too.
Change-Id: I0bba4b88c580cb627e2842f136318d98373c0543
Reviewed-on: https://skia-review.googlesource.com/147813
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
To get the gold images out of the browser tests, this adds
testReporter.js and pathkit_aggregator.go. testReporter bundles
up the output as a base64 encoded PNG and sends it over the local
network to pathkit_aggregator. pathkit_aggregator will keep
a list of test results reported in this way and write the PNGs
to /OUT of the container (which is the swarming output directory).
Finally, after all the tests are run, the helper script "test_pathkit.sh"
makes a POST request that creates the JSON file that gold expects
(following the schema https://github.com/google/skia-buildbot/blob/master/golden/docs/INGESTION.md)
pathkit_aggregator takes many command line arguments which control
the keys that Gold needs in order to ingest and handle the data.
Of note, this creates a new set (i.e. source_type) of gold images
called "pathkit", which will distinguish it from "gm", "image", etc.
There will be at least 2 sub-sets of "pathkit" images, "canvas" and "svg",
(representing the 2 output types of PathKit). This CL doesn't
quite handle SVG yet, as it needs a way to convert SVG to PNG in the
browser and will be addressed in a follow up CL.
A "standard" gm is sized at 600x600. This was arbitrarily picked.
Note that the functions in testReporter.js return Promises based
on the fetch requests to post the data. This eliminates the race
condition between the /report_gold_data and /dump_json since
running the karma tests won't return until all reports are done.
Other changes of note:
- Adds go to karma-chrome-tests container.
- renames recipe_modules/build/wasm.py -> pathkit.py to be consistent with
the name of test_pathkit.py and make for easier grepping.
- Increases the JS test timeout to 10s (up from 5) to hopefully avoid
the flakes seen in the Debug Test.
Bug: skia:8216
Change-Id: Ic2cad54f3d19cc16601cf2e9a87798db1e6887a2
Reviewed-on: https://skia-review.googlesource.com/147042
Reviewed-by: Stephan Altmueller <stephana@google.com>
Because of https://skia-review.googlesource.com/c/skia/+/146165 and
https://skia-review.googlesource.com/c/skia/+/146100 we have a way
to turn PathOps tests into JSON, which has input paths (as Cmd arrays),
combination verb and expected output.
In this CL, we make tests from the JSON, compare them to the expected
output and, optionally, create SVGs to visualize the difference if any.
API changes (nothing breaking on release builds):
- Exposes SkRect as a JS Object. No need to call delete() on this.
- expose path.getBounds() and path.computeTightBounds()
- Remove SkRegion exposure (debug/test only), which was going to be
used for this purpose, but the approach in this CL works fine.
- Add loadCmdsTypedArray(cmd) helper function to JS [see helper.js].
This was previously known as `floatTypedArrayFrom2D` in the
old shell.html, and is now exposed to avoid clients having to
implement this boilerplate by themselves.
- Add set/getFillType - mostly for testing the difference between
a Winding and an EvenOdd path.
Bug: skia:8216
Change-Id: I2cd25ce2e1e7f285c79c596678678e62135963f0
Reviewed-on: https://skia-review.googlesource.com/146524
Reviewed-by: Cary Clark <caryclark@google.com>
This adds a few JS tests (see *.spec.test) and runs them
using Karma and a Docker image containing Karma, node, and
Chrome (currently at 68).
We only add a Debug Test here because the Release version
has some test helpers (e.g. Region) compiled out. If those
end up not mattering for tests, we can add in a Release version.
Bug: skia:8216
Change-Id: Ica6ab3a4f21688cfa175a90d42c2254d38e8fcf1
Reviewed-on: https://skia-review.googlesource.com/145723
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Bug: skia:8185
Change-Id: Id40f288515169a378926d6042cc76a976cdf7513
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/145892
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Bug: skia:8081
Change-Id: Ibcb82389668bd9ea7395e498696417d5701761c0
Reviewed-on: https://skia-review.googlesource.com/140782
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
They crash, presumably because they use multiple large images.
Change-Id: I277958cd6661820085b4e1a04e0668e3a3e9fddc
Reviewed-on: https://skia-review.googlesource.com/145880
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This doesn't really add any CQ load. We're already running
Test-iOS-Clang-iPhone7-GPU-GT7600-arm64-Debug-All which depends on this.
It'll just help make iOS Build failures stand out from Test failures.
Change-Id: I8614dd32d0ff3797357bfa41ea46d2571ec7976d
Reviewed-on: https://skia-review.googlesource.com/145725
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Adds arc, arcTo, rect and Path2D names for quadTo, cubicTo, close.
Adds conic verb support (approximated with 2 quads).
Breaking changes:
Some functions have been moved to be member functions:
PathKit.Simplify(path) -> path.simplify()
PathKit.ToCanvas(path, ctx) -> path.toCanvas(ctx)
PathKit.ToSVGString(path) -> path.toSVGString()
PathKit.ToPath2D(path) -> path.toPath2D()
PathKit.ToCmds(path) -> path.toCmds()
PathKit.ResolveBuilder(builder) -> builder.resolve()
PathKit.GetBoundaryPathFromRegion(region) -> region.getBoundaryPath()
Pathkit.ApplyPathOp(pathOne, pathTwo, op) still exists, but there's
now also pathOne.op(pathTwo, op) for cases when that's easier.
As per custom with version 0.x.y projects, I'm bumping the
minor version (in npm) for these breaking changes instead of the
major version (which will happen when we are version >= 1.0.0).
This also has some small improvements to the output code size.
The biggest jump was from enabling the closure compiler on the
helper JS, which trimmed it down by about 40%. Using the closure
compiler requires the JRE on the bots, which prompted the emsdk-base
image change.
Bug: skia:8216
Change-Id: I40902d23380093c34d1679df0255bcb0eaa77b01
Reviewed-on: https://skia-review.googlesource.com/145420
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Bug: skia:
Change-Id: I3437830069de5ff8ace21115024396120d21b2a0
Reviewed-on: https://skia-review.googlesource.com/145482
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
I'm keeping the Release jobs for a few commits for blame.
There are a few reasons for this change:
- This will free up more Mac VMs for Build jobs.
- The CPU jobs currently run on VMs, which don't provide reliable perf
numbers.
- The two bare-metal MacMini7.1 bots (currently running the GPU TSAN
jobs) are over-capacity.
- Lets us test AVX2 rather than AVX.
I used the MacBookPro11.5 for all of these, but we could spread them
out to other Mac bots if it's too much load for these bots.
No-Try: true
Change-Id: I8c97e194c4f3e0018e7e646b93c3d96db8d0ca82
Reviewed-on: https://skia-review.googlesource.com/145431
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
iOS builds still causing an error on installation:
ERROR: Install failed. Got error "APIInternalError".
stephana will help with debugging this when he's back in the office.
Bug: chromium:862292
Change-Id: I8fdff24938f000da550e1c5420c7ac312f09dce7
Reviewed-on: https://skia-review.googlesource.com/144440
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
This contains the Go code dependencies of our infra repo and will be
used to insulate us from upstream changes which break us due to API
changes, etc.
Bug: skia:
Change-Id: I6ce36a4e41b6d7686fe2598ba980640854cd4f11
Reviewed-on: https://skia-review.googlesource.com/145158
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Change-Id: I88ee8200b82d12ba8cee637e01b360ce2d2bb2b3
Reviewed-on: https://skia-review.googlesource.com/145360
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I0eb3dcc4d38eb2aeab22d1df1515e499cf21dc62
Reviewed-on: https://skia-review.googlesource.com/144608
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
This adds a job to build it and adds it to the npm
under /bin/debug.
The debug build is useful for clients because it
has all the debug symbols, which makes it possible to
see which WASM calls are taking the longest when using
DevTools' Performance testing.
Bug: skia:8216
Change-Id: I3068cb395f29c1de927508cf15c419f5af284eb7
Reviewed-on: https://skia-review.googlesource.com/145337
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Bug: skia:
Change-Id: Ibdfa20023019dc6372293600b0b1b4607916694f
Reviewed-on: https://skia-review.googlesource.com/145330
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
This creates a new named cache docker for this and future
docker-based jobs to use, to avoid permission snafus with
the normal "work" named cache.
Remove old WASM build, which was using the janky CIPD
emsdk asset and wasn't really exercising what we needed.
Bug: skia:8216
Change-Id: I993bba38b4978ca5eebb97e5b5b21729d55a072d
Reviewed-on: https://skia-review.googlesource.com/145140
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
This reverts commit 63fac808ee.
Reason for revert: Fiddle problem seems to be fixed
Original change's description:
> Disable bookmaker CLs automatic CQ+2 for now
>
> Disable till problem described in
> https://bugs.chromium.org/p/skia/issues/detail?id=8151#c8 is fixed
>
> Bug: skia:8151
> Change-Id: Ie726829f3b13b587e14192dbf0104d04934a18dc
> Reviewed-on: https://skia-review.googlesource.com/142503
> Reviewed-by: Ravi Mistry <rmistry@google.com>
> Reviewed-by: Cary Clark <caryclark@google.com>
> Commit-Queue: Ravi Mistry <rmistry@google.com>
TBR=rmistry@google.com,caryclark@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: skia:8151
Change-Id: If09f3ab783d3b616bc96ba8994e6220039f6fc00
Reviewed-on: https://skia-review.googlesource.com/145324
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).
Please review the expectation changes, and LGTM+CQ.
More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
https://crrev.com/5300616351f523c605de80f5ece8c29321a78847 bot_update: expose patch_refs as an option to ensure_checkout. (jbudorick@chromium.org)
R=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I3719ebfe726d6662c0e3b8a9f4e21ca62000a292
Reviewed-on: https://skia-review.googlesource.com/145144
Reviewed-by: John Budorick <jbudorick@chromium.org>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
This CL prepares for installing Xcode in a Swarming cache dir from a
CIPD package. https://skia-review.googlesource.com/c/skia/+/144608
After that, I hope to isolate the xSAN libs in the Build task so that
we don't need Xcode on the xSAN test bots. Baby steps.
Change-Id: I61dbe9474eceff42cbfd824c429db382b68a8c35
Reviewed-on: https://skia-review.googlesource.com/145143
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>