Commit Graph

60 Commits

Author SHA1 Message Date
Mike Klein
cbe93ee197 have FM run GMs in command line order
Compare running

   $ out/fm -b gl -s encode skps/desk_wikipedia.skp drawbitmaprect lotties/inattentive.json xfermodeimagefilter encode encode encode

Before:
           xfermodeimagefilter	92218904a9ae8a0a6d3eee03541b632a	    240ms
                        encode	d2d6eb57feb83662a84dc728dbd4649d	     99ms
                drawbitmaprect	d915acc291ecd0e7bbbd8b497d44cd1e	     88ms
            desk_wikipedia.skp	2bd4560dfba002395b7d5665d37a5d83	     80ms
              inattentive.json	63dfb23e06ee2557bb441523003fb4eb	     43ms

After:
                        encode	d2d6eb57feb83662a84dc728dbd4649d	    116ms
            desk_wikipedia.skp	2bd4560dfba002395b7d5665d37a5d83	     80ms
                drawbitmaprect	d915acc291ecd0e7bbbd8b497d44cd1e	     93ms
              inattentive.json	63dfb23e06ee2557bb441523003fb4eb	     42ms
           xfermodeimagefilter	92218904a9ae8a0a6d3eee03541b632a	    214ms
                        encode	d2d6eb57feb83662a84dc728dbd4649d	     90ms
                        encode	d2d6eb57feb83662a84dc728dbd4649d	     89ms
                        encode	d2d6eb57feb83662a84dc728dbd4649d	     89ms

Change-Id: I448da4c991b91a8f3e4fc0cf32af0a4ff712e19e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205591
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-04-03 13:01:08 +00:00
Mike Klein
832d3c5007 update some FM flags
fm itself can always be verbose.  We'll rarely call it directly
and when we do and we don't want to see its output, we can always
pipe to /dev/null.

Switch fm_bot.go over to random shuffle by default, and to verbose by
default with a -q/-quiet flag to only print failures.

Change-Id: Ibd53bf7f1d29e0fd5deb7d4689dc0ca100df648f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205587
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-04-02 20:09:44 +00:00
Mike Klein
2292426cb1 add skottie support to fm
Draws the same as DM.

Change-Id: I741655786c3345dfd824438f9dcaca0d5046b197
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205493
Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-04-02 19:14:44 +00:00
Mike Klein
a5c27173ea allow skipped source/backend pairs in fm
GMs sometimes want to skip instead of drawing or failing.
E.g. GPU-only GMs with a non-GPU backend.

Change-Id: I5bd8acecbef1aa88b4d7e6cfb88dfde04424aa8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205349
Reviewed-by: Mike Klein <mtklein@google.com>
2019-04-02 19:08:44 +00:00
Mike Klein
f2d9b865d7 Add basic fm_bot script
This handles batching and things like figuring out "skps" means "all the
files under the directory skps", "gms" means "all the GMs linked into
fm", etc.

You can set up one job on the command line, or any number of them
with a -script file, e.g.

    ~/skia (fm-bot↑1|●1…) $ cat fm.script
    gms b=cpu w=foo/8888
    gms b=cpu w=foo/565  ct=565
    skps b=gl w=foo/msaa4-skps samples=4

Change-Id: I878c623bfc8673f04b4effa247bc850c0258a89b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204582
Reviewed-by: Brian Osman <brianosman@google.com>
2019-04-02 15:51:04 +00:00
Mike Klein
ce90d6f088 more opinionated file loading in fm
Only try to parse .skp files as SkPictures, only .svg
files as SVG, and only try to parse any given file once.

This cleans up error logging from, e.g., trying to
parse a .jpg as an .svg.  Sometimes even asserts.

Change-Id: Ibfab76e201eb273107b96fcbd3af94d397862291
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204882
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-04-01 14:10:13 +00:00
Mike Klein
6253d90de8 add .svg sources to fm
Change-Id: Ic364059cb277773a5d5f8011be2b68b757e889f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204280
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-03-27 20:42:50 +00:00
Mike Klein
c245bd9077 add --backend pdf to fm
Change-Id: I6ad822d606ecdf9a71a3626ebc3b19d524dbaf72
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204138
Reviewed-by: Brian Osman <brianosman@google.com>
2019-03-27 20:08:57 +00:00
Mike Klein
9b46209867 add --backend skp to fm
And move --backend first among the backend flags.

Change-Id: I853ede2a8218f046c968ace2ce8c5e277421e225
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204133
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-03-27 19:55:28 +00:00
Mike Klein
735c7ba320 FM, a dumber new testing tool
FM's a bit like DM, and a bit like the old GM tool, maybe closer to GM.

FM always does one serial run through of a list of GM, image, or .skp
sources (-s/--sources) into one drawing configuration, set at a high
level with -b/--backend, fine-tuned by flags like --ct, --at, --gamut,
--samples, etc.

FM prints all available GMs when run with no arguments, part of
how it integrates well with external parallelization like xargs:

   out/fm | time xargs -n4 -P32 out/fm -b cpu ... -s
   out/fm | time xargs -n32 -P8 out/fm -b gl ... -s
   ls *.skp | xargs ... out/fm ... -s
   ...

TODO later:
   vector backends: --backend pdf, svg, xps, skp
   --source *.svg, *.json (Skottie)
   Create/update a dm.json file

Change-Id: Idacbd2785deaf6f1d33674c66c4d984fa91dbd85
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/203520
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-03-27 14:00:58 +00:00