Commit Graph

4139 Commits

Author SHA1 Message Date
Leandro Lovisolo
a94ca0a9d3 CIPD package for Bazel.
Bug: skia:11111
Change-Id: I2a79aea9d679efe22138cf8c1f00b9c4449e805a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371498
Commit-Queue: Leandro Lovisolo <lovisolo@google.com>
Auto-Submit: Leandro Lovisolo <lovisolo@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-02-18 08:10:59 +00:00
Ravi Mistry
bec62308e4 Make S6's dimensions more generic
The new S6 has successful run one of the tryjobs: https://chromium-swarm.appspot.com/bot?id=skia-rpi2-rack4-shelf1-026

Context is in the bug.

Bug: skia:11337
Change-Id: I157c894b6b48ce394c17bbe6af50d85d2cc5f192
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371416
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2021-02-18 01:11:59 +00:00
skia-recreate-skps
9410c7bfb9 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I4c059e25d504d29ba584e18cc0463fd856c8ac7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370311
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2021-02-14 09:40:21 +00:00
Adlai Holler
79426194de Pipe ReducedOpsTaskSplitting into skpbench.py
This ought to help!

Bug: skia:10877
Change-Id: I8265c26dc4146ab78c125f27b533915cfb61aae8
Cq-Include-Trybots: luci.skia.skia.primary:Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_ReduceOpsTaskSplitting_Skpbench,Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_ReduceOpsTaskSplitting_Skpbench,Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-ASAN_ReduceOpsTaskSplitting_Vulkan
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369756
Commit-Queue: Adlai Holler <adlai@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-02-12 19:32:02 +00:00
Mike Klein
ae8ba01835 further refine reruns
On batch failure we're rerunning every source in the batch, while we
really only need to rerun sources that we don't know succeeded.

If for example we run sources "foo", "bar", and "baz", and foo produces
a known hash, then bar crashes, we only need to rerun bar and baz.  The
batch run was enough to demonstrate foo's good.

Change-Id: I17634a6095906bcc2ad0bd33bb78eba000654b5e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369456
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-11 18:29:45 +00:00
Mike Klein
510e45c223 minor fm_driver tweaks
Move definition of Work struct until just before it's used,
and show one of the sources as an example at kickoff-level step.

These are just cosmetic/refactors.

Change-Id: Ib23b9379683b9867e097c8d68ef8736013719cee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369356
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-11 17:33:06 +00:00
Mike Klein
0ebdb37b55 plumb errors up to mid-level steps
As is, on failure the top-level task fails correctly,
then the next level steps all confusingly look green,
then the next two levels down are correctly failed and red.

I think this is because worker(ctx) fails `ctx`, which we make like
this,

    ctx := startStep(w.Ctx, td.Props(strings.Join(w.Sources, " ")))

but nothing ever fails that `w.Ctx`.  This should fix that.

Compare trybot runs here with https://task-driver.skia.org/td/BMCjZbc5ki1cXbkM0oZp?ifNotFound=https%3A%2F%2Fchromium-swarm.appspot.com%2Ftask%3Fid%3D51aa8032a90a8810

Change-Id: Idfbd933b9027cac423a3a2cc5b0513c894d60e63
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369265
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-11 17:24:21 +00:00
Kevin Lubick
966d795af9 [canvaskit] Fix perf timeout in Puppeteer + SKPs
Change-Id: I3ee30bbb764291b1a4b0c0c5d77cbac2f11ac415
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368877
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-11 13:29:45 +00:00
John Stiles
a0e407d4b7 Add SkSL test for matrix equality/inequality operators.
Disabled on Adreno 5xx/6xx as the tests do not pass on those GPUs:
http://screen/3Dkgs9syj37cjBV

Change-Id: Ib935d01e8f06dbfe7decd5cc4e52e0688b48be08
Bug: skia:11306, skia:11308
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368805
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-02-10 18:57:22 +00:00
skia-recreate-skps
5b67a809c0 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I80ba69703cbeacbd8d421a326a49011b2762b3df
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/367476
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2021-02-07 10:37:23 +00:00
Ravi Mistry
52bf4853c1 Add new MotionMark SVG
Bug: skia:11244
Change-Id: Ia8916210bfc85c4818cc96584e603150caaf02d8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/366404
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2021-02-05 00:14:19 +00:00
Mike Klein
420c8a505e end kickoff() step at the right time
If we track how many pending batches a kickoff()
has in flight, we can endStep() it properly when
that number hits zero.

This double sync.WaitGroup trick is pretty neat.
Now we're thinking with portals...

Added some comments to prevent myself falling in
the trap of assuming we'll have runtime.NumCPU()
batches... rounding the batch size up means we'll
sometimes have fewer.

Change-Id: If50615c204485862462c240b9bbdfd4ddbad43b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/366142
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-04 17:19:43 +00:00
Mike Klein
1dea436a38 make fetching Gold hashes a step
It's nice to see it in the task log, and to be able to see
it's not there when we're not working with Gold (*SAN) bots.
(One trybot of each kind here.)

Change-Id: Ibb4aa20badf95ef603f3890e1c8248cad675507f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/366143
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-04 16:19:17 +00:00
Mike Klein
f38f20ecf7 another layer of step nesting
Group batches from a single kickoff() into another mid-level step:

Top-Level
    kickoff --some flags
        batch sources...
            batch (exec)
        batch other sources ...
            batch (exec)
            rerun (exec)
            rerun (exec)
        batch yet other sources ...
            batch (exec)
            rerun (exec)
    kickoff --some other flags
        ...

Big question: is it okay for the kickoff steps to td.EndStep() while its
kids are still running (or haven't even started) on other goroutines?

Change-Id: I77ad2274e35cea0151be0cca6c690eafc4f8983e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/366140
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-04 14:47:56 +00:00
Mike Klein
cb6ea84c4e remove more bots now covered by FM
Change-Id: I19559e78e0727bb5d3b868993bf7610636818de8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/365816
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-04 14:11:50 +00:00
Mike Klein
c481dd69bb split --gold off from --bot
There are bots (*SAN) that won't ever be uploading to Gold,
so *bot != "" doesn't really describe the right condition.

We could do this logic inside fm_driver.go based on *bot,
but I kind of want the flexibility to do things like upload
local ad-hoc runs or sanitizer runs if we want using --gold.

Change-Id: Id972d8b0097616c5b2802bc99c2718fdd1568fe3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/366139
Reviewed-by: Mike Klein <mtklein@google.com>
2021-02-04 12:31:45 +00:00
Mike Klein
3c8444e18e NativeFonts, the fm_driver way
Why have other bots when we can do it all here?

Change-Id: I6a3f3c2ed5d19a3b8ecf59f44cc0d2f6076bba7f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/366138
Reviewed-by: Mike Klein <mtklein@google.com>
2021-02-04 11:02:26 +00:00
Mike Klein
6738e2b9c7 rearrange wg use
There's no need to tick wg up and down when running reruns, and as
written it's possible for the overall fm_driver program to exit before
one last call to endStep() has happened.  Simply calling wg.Done() once
per item dequeued outside worker() fixes both.

Change-Id: I0fb0acc5a3f2c624dfc14f875fa094db6dd40838
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/366137
Reviewed-by: Mike Klein <mtklein@google.com>
2021-02-04 10:45:52 +00:00
Mike Klein
fa962f583a rerun only what makes unknown hashes
If a batch fails, we've got to rerun everything (or at least from the
failure on), but when it's merely unknown hashes, no need to rerun
what's produced hashes we know already.

Small tweak to FM to keep all the printed source names exactly what's
passed in, keeping the whole path for skp/svg/image files.  This means
zero bookkeeping needed to know what to rerun when parsing that output.

Change-Id: I1e7ed3ee51158b68a6bdd3152560f3a282109576
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/365818
Reviewed-by: Mike Klein <mtklein@google.com>
2021-02-04 10:22:52 +00:00
Mike Klein
574a453b15 introduce steps
Now with ctx scoping fixed,
and steps nested just how I like them.

Change-Id: Ifa43a432faddbafaae118ab0b16f710b695b5377
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/365504
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-04 10:22:10 +00:00
Mike Klein
9e189aab1e don't shuffle sources destructively
Change-Id: Ib9bcb811068bfaff518c97db59cfd13e237d7f74
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/366136
Reviewed-by: Mike Klein <mtklein@google.com>
2021-02-04 10:16:57 +00:00
Nathaniel Nifong
1d35777a4f Run mskp skpbench on galaxy s20s
Change-Id: Ic56030abf1296d2a6c5763478ec0f85b1a772f99
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/365517
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2021-02-04 04:44:07 +00:00
Mike Klein
f71278c993 add ASAN/TSAN Mac and ASAN/MSVC Win FM bots
These *SAN bots should be able to replace some of the Test- bots on our
tree, and the MSVC one is just another we'll need eventually.
(Similarly we'll want GCC on Linux, but I don't know how to Docker.)

Change-Id: Ied4519626f1e13bb31fcb30f37cbd1b24133aa71
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/365597
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-03 20:53:44 +00:00
Mike Klein
7fc0971a0d remove Test bots covered by FM bots
I've been waiting to replace bots until they were uploading to Gold, but
these *SAN bots don't upload anything, so we're at parity there already.

I've just remembered the Mac ASAN/TSAN bots and the Windows ASAN bots,
so I'll be following up to replace them too.

Change-Id: Ia3edfda64091e4407a1131073829b74f22b32b71
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/365596
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-03 20:36:22 +00:00
Mike Klein
0131c3241f move FM mac bots again
I swear yesterday we had ~10 unused 10.14 bots...

Anyway, as with the last move, I don't really care where these bots are
running, so long as they have enough machines to schedule reaonably
quickly.  This switches their spec to the default "Mac", which is
currently 19 VMs running 10.15.7 on trashcan Mac Pros.

Similarly, Win2019 -> Win.  This is a change in bot name only, just to
capture the "I'll take whatever's default" spirit.  I'd use Linux or
Debian too if there were one.

Change-Id: Ifa7615735c660018a5f3f46f4d8035e0b5bf8141
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/365518
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Weston Tracey <westont@google.com>
2021-02-03 20:35:55 +00:00
Mike Klein
840472529d wire up images/skps/svgs
This also marks the glorious return of td.FailStep() as the answer to my
question "now how do I find my failures in this giant list?"

Change-Id: I15f98862d77942f2e289dc626da8643789a91d48
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364838
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-03 17:18:19 +00:00
Mike Klein
027f7b35e7 move Mac FM bot
I don't really care what machine class it's running on right now, and
status.skia.org/capacity says these 10.14.6 bots are the least loaded
of any bot on the tree.

Change-Id: Ie49b2659e99d60e450235207bbbc018e565636b4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364716
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-02-02 22:22:14 +00:00
skia-recreate-skps
f127e377d2 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I7876af5f8e3e613a4c153c0b5e2fd34720640d4c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364717
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2021-02-02 22:08:07 +00:00
Mike Klein
805eee00d9 don't td.FailStep() quite yet
Calling td.FailStep() as written here doesn't really do anything except
hide the more useful summary error, e.g. "484 runs of build/fm failed
after retries."  Maybe it'll become useful again if I add step nesting?

Change-Id: I23eb59afce8559f4b0e549f31873577939fc7ca7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364497
Reviewed-by: Mike Klein <mtklein@google.com>
2021-02-02 19:31:56 +00:00
Mike Klein
3bf14aaf11 add MSAN/TSAN FM bots
Don't expect much out of TSAN given the process-based isolation,
but I'm curious to see how it goes.  MSAN should work sensibly.

Change-Id: If0b794805461b0ecd7092900f4412d73cd80d0d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364466
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-02-02 18:38:58 +00:00
Mike Klein
129bc16b56 fixup, fail on bots
td.FailStep() isn't enough to fail the bot,
so go back to a call to td.Fatal() when failures>0.

Change-Id: Ib2be7b15200376ab8a16e4a1b69d98fde0630673
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364471
Reviewed-by: Mike Klein <mtklein@google.com>
2021-02-02 16:44:33 +00:00
Mike Klein
b97a9de755 silo away td when -local
Even with all the workarounds (deleted here), calling td methods still
costs a fair chunk of CPU work.  Instead of sneakily working around it,
just never call it when run locally.

Change-Id: I2e421a5d585c86a6315d56867a29bdcdc9d45479
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364461
Reviewed-by: Mike Klein <mtklein@google.com>
2021-02-02 15:07:22 +00:00
Mike Klein
d6c70d3f44 add ASAN FM bot
Change-Id: Ifa3215299b064e024acf4f7f64dda1c6345c67b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364457
Reviewed-by: Mike Klein <mtklein@google.com>
2021-02-02 14:59:16 +00:00
Mike Klein
a6c692b884 easier to read with all flags first
Cq-Include-Trybots: luci.skia.skia.primary:FM-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All,FM-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All
Change-Id: I319f2b80aec95f51ff9fe3db341bb7bf0d82d971
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364015
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-02-01 22:36:52 +00:00
Mike Klein
876c25c9a3 keep reruns on the same goroutine
No need for this extra parallelism, and it's extra contention.

Cq-Include-Trybots: luci.skia.skia.primary:FM-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All,FM-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All
Change-Id: I5c0d52def5043555f313e99713335aa66b269e22
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364014
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-02-01 22:31:01 +00:00
Mike Klein
e1926e8942 test more with FM
I've pulled most of this from the BonusConfigs smorgasbord,
skipping a few redundant ones (do we really need all combos
of {8888,f16}x{srgb,narrow,p3,rec2020}?).

Cq-Include-Trybots: luci.skia.skia.primary:FM-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All,FM-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All
Change-Id: I56f684eb593f4e54d74f592e08508662bd7daa35
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/363998
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-02-01 22:29:50 +00:00
Mike Klein
65bf8200d2 restore good bits of fm_driver simplifications
Kicking off goroutines willy-nilly wasn't a good idea,
but some of the other work was nice and can be kept even
with the safer pool-of-goroutines strategy.

  - use exec.Silent to skip some burned formatting work
    if we're just going to send it all to /dev/null

  - rearrange to not need both a todo list and a queue
    of work makes sense... just get the workers going and
    have kickoff() feed the queue directly

  - straighten out worker logic flow to make it understandable

Cq-Include-Trybots: luci.skia.skia.primary:FM-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All,FM-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All
Change-Id: I4b27db4b9d41cf05a1c9dee9409ebd664f566567
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364011
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-02-01 22:27:36 +00:00
Mike Klein
779a7b83b5 Revert fm_driver simplifications
This reverts commits 8ef3c539a2
and 4b09de3c90.

It turns out controlling the scheduling is a good idea;
I keep running into exec failures and process limits.

Cq-Include-Trybots: luci.skia.skia.primary:FM-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All,FM-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All
Change-Id: Ia72f446965e5093fbf996e78d9513c15dedae3d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364006
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-02-01 22:04:32 +00:00
Weston Tracey
ac7e501a65 [infra] Merge with new FM bot broke test expectation. Fix it.
Change-Id: I6f9221f06a8b7ed80fc2653cea3aa454a3ddc819
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/363961
Auto-Submit: Weston Tracey <westont@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-02-01 21:11:18 +00:00
Weston Tracey
5c78a54b42 [infra] Use xcode 11.4.1 for iphone11 jobs.
In the short term this gives us iphone11 coverage again, but I still
need to sort out why xcode 12.3 builds won't work, since this adds
complexity and xcode version churn on builders.

Bug: skia:11129
Change-Id: Ic477b26e1cffc1d3124832cf26ec391969a617cf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/358516
Commit-Queue: Weston Tracey <westont@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-01 18:12:58 +00:00
Tyler Denniston
ba9ec5fb8a Update SVG corpus on gold to include images
- Updated asset version to 13, which includes the image resources and
  modified directory hierarchy.
- Updated dm --svgs arg in infra/bots/recipes/test.py to add "svg"
  subdirectory (relative to corpus asset root).
- Ran 'make train' in infra/bots/

Bug: skia:11229
Change-Id: I4e3c5da5945ee7ee4034ec453fdeb84c5fa08394
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/361560
Commit-Queue: Tyler Denniston <tdenniston@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-02-01 17:51:02 +00:00
Mike Klein
3cc4afc703 add Mac/Win FM bots
and build task drivers per platform so we can.

Cq-Include-Trybots: luci.skia.skia.primary:FM-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All,FM-Win2019-Clang-GCE-CPU-AVX2-x86_64-Debug-All,FM-Mac10.13-Clang-MacBookPro11.5-CPU-AVX2-x86_64-Debug-All
Change-Id: Ie076abc6ba4692eaac4b44c2ecdc0c07e3246044
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/363737
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2021-02-01 17:35:52 +00:00
Mike Klein
8ef3c539a2 simplify further
Instead of making a list of work to do and then
later kicking off goroutines to do it, just start
the work as soon as it's ready to go.

Change-Id: I6bd8a031958ae440ba7f72609d9dfb867ebb2490
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/363436
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-31 20:00:51 +00:00
Mike Klein
4b09de3c90 simplify fm_driver
Instead of standing goroutines pulling from a work queue, just kick off
individual goroutines.  No need to write a scheduler on top of another
scheduler.

Local runs put this at the same wall time as before while saving a
little user/sys CPU time.  Bot runs typically took 25-50s before this
change, and now 40s, 28s, and 29s, so the same there too.

We can choose whether to handle re-runs on the same goroutine or kick
off new ones.  I've chosen here to run them on the same goroutine (see
the commented /*go*/), mostly because the bots quickly exhaust their
user process limits when the reruns are all spawning FM processes in
parallel.  I think that means we don't need the extra parallelism.  As
far as I have seen, whether we kick off a goroutine or not has had no
impact on wall/user/sys at all, so might as well not for now.

Change-Id: If2990e07a402dee8c5706f537f503421013a5586
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/363376
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-31 19:09:31 +00:00
Mike Klein
66436eaad1 fetch known hashes
When running as a bot (even locally if you want), grab the known hashes
from Gold and scan through FM's stdout looking for unknown hashes.

If we do find unknown hashes, requeue the batch for individual reruns
like we do on failure, print the command and new hash if those singleton
reruns also (re)produce an unknown hash.

Eventually, I'll have singleton runs write out .pngs and upload them to
Gold when the hash is unknown.

Change-Id: I835881e6e6260e4dbe84de8d03d16921881aae1c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/363039
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-30 21:50:19 +00:00
Mike Klein
9040e4d720 refactor to build a list of Work directly
Building job strings and then parsing them into Work structs
seems a bit roundabout when there's no job string to start with.
Instead reorient so that we're building a list of Work, and create
those Work units directly when possible instead of via job strings.

Should be no practical change here.

Change-Id: I48f1eec8ab7ccbe2c46fc62174cd3625c51d3732
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/363038
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-30 17:53:31 +00:00
Nathaniel Nifong
65ca55a744 Include RenderEngine MSKPs in benchmark collection
Change-Id: I7694867c0734f07629a1f6556e71b037c1a01ebd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/361557
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2021-01-29 21:51:29 +00:00
Mike Klein
78d1adcb22 let fm_driver.go decide what to do for each bot
We can now mimic bots locally by running fm_driver.go like this,

    go run **/fm_driver.go -bot $BOT out/fm

where $BOT is like FM-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All.

As a demo, skip aarectmodes and GoodHash on Debian10.

Change-Id: Iec215182dce9f05b8aa6807e837daa0618e2669f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/362316
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-29 20:30:49 +00:00
Mike Klein
8716cfdc6a don't hardcode jobs in fm_driver
This lets us pass a job on the command line,

    go run infra/bots/task_drivers/fm_driver/fm_driver.go out/fm tests b=cpu

or use -script to pass a file or stdin,

    cat << EOF | go run infra/bots/task_drivers/fm_driver/fm_driver.go -script - out/fm
    b=cpu tests
    gms skvm=false b=cpu w=$out/vanilla
    gms skvm=true  b=cpu w=$out/skvm
    #gms skvm=true  b=cpu w=$out/dp3      gamut=p3      tf=srgb
    #gms skvm=true  b=cpu w=$out/linear   gamut=srgb    tf=linear
    #gms skvm=true  b=cpu w=$out/rec2020  gamut=rec2020 tf=rec2020
    EOF

(This CL will make the one FM bot temporarily do nothing,
but the next CL should fix it.)

Change-Id: I1f3badac78a0f61698179c1afec37b3020539fff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/362216
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-29 19:47:18 +00:00
Mike Klein
75bd058766 refamiliarize fm_driver.go
Update comments and small tweaks as I remember how this works.

Change-Id: I4a279781e512fc707b96226e62a2831a1d0683e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/362196
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-29 18:39:28 +00:00