Lines Matching +full:- +full:dm
1 ---
4 ---
6 Skia correctness testing is primarily served by a tool named DM. This is a
7 quickstart to building and running DM.
9 <!--?prettify lang=sh?-->
11 python3 tools/git-sync-deps
13 ninja -C out/Debug dm
14 out/Debug/dm -v -w dm_output
17 off to 1 or 2 active cores as the run finishes. This is intentional. DM is very
18 multithreaded, but some of the work, particularly GPU-backed work, is still
19 forced to run on a single thread. You can use `--threads N` to limit DM to N
23 As DM runs, you ought to see a giant spew of output that looks something like
32 ( 25MB 1857) 1.36ms 8888 image mandrill_132x132_12x12.astc-5-subsets
33 ( 25MB 1856) 1.41ms 8888 image mandrill_132x132_6x6.astc-5-subsets
34 ( 25MB 1855) 1.35ms 8888 image mandrill_132x130_6x5.astc-5-subsets
35 ( 25MB 1854) 1.41ms 8888 image mandrill_132x130_12x10.astc-5-subsets
36 ( 25MB 1853) 151µs 8888 image mandrill_130x132_10x6.astc-5-subsets
37 ( 25MB 1852) 154µs 8888 image mandrill_130x130_5x5.astc-5-subsets
49 As you become more familiar with DM, this spew may be a bit annoying. If you
50 remove -v from the command line, DM will spin its progress on a single line
53 Don't worry about the "Skipping something: Here's why." lines at startup. DM
55 machines. These lines are a sort of FYI, mostly in case DM can't run some
62 The next line is an overview of the work DM is about to do.
68 DM has found 382 unit tests (code linked in from tests/), and 492 other drawing
70 gm/), image files (from `--images`, which defaults to "resources") or .skp files
71 (from `--skps`, which defaults to "skps"). You can control the types of sources
72 DM will use with `--src` (default, "tests gm image skp").
74 DM has found 3 usable ways to draw those 492 sources. This is controlled by
75 `--config`. The defaults are operating system dependent. On Linux they are "8888
76 gl nonrendering". DM has skipped nonrendering leaving two usable configs: 8888
79 - 8888: draw using the software backend into a 32-bit RGBA bitmap
80 - gl: draw using the OpenGL backend (Ganesh) into a 32-bit RGBA bitmap
82 Sometimes DM calls these configs, sometimes sinks. Sorry. There are many
85 DM always tries to draw all sources into all sinks, which is why we multiply 492
86 by 3. The unit tests don't really fit into this source-sink model, so they stand
91 ( 25MB 1857) 1.36ms 8888 image mandrill_132x132_12x12.astc-5-subsets
97 1. The maximum amount of memory DM had ever used was 25MB. Note this is a high
105 once. Sometimes the counts appear to show up out of order, particularly at DM
113 "mandrill_132x132_12x12.astc-5-subsets", which is an "image" source, into an
116 When DM finishes running, you should find a directory with file named `dm.json`,
121 8888 dm.json gl
123 $ find dm_output -name '*.png'
137 The directories are nested first by sink type (`--config`), then by source type
138 (`--src`). The image from the task we just looked at, "8888 image
139 mandrill_132x132_12x12.astc-5-subsets", can be found at
140 `dm_output/8888/image/mandrill_132x132_12x12.astc-5-subsets.png`.
142 `dm.json` is used by our automated testing system, so you can ignore it if you
154 If a test fails, DM will print out its assertion failures, both at the time they
156 failures are also included in the `dm.json` file.
158 DM has a simple facility to compare against the results of a previous run:
160 <!--?prettify lang=sh?-->
162 ninja -C out/Debug dm
163 out/Debug/dm -w good
167 ninja -C out/Debug dm
168 out/Debug/dm -r good -w bad
170 When using `-r`, DM will display a failure for any test that didn't produce the
175 <!--?prettify lang=sh?-->
177 ninja -C out/Debug dm
178 out/Debug/dm -w good
182 ninja -C out/Debug dm
183 out/Debug/dm -w bad
185 ninja -C out/Debug skdiff
191 That's the basics of DM. DM supports many other modes and flags. Here are a few
194 <!--?prettify lang=sh?-->
196 out/Debug/dm --help # Print all flags, their defaults, and a brief explanation of each.
197 out/Debug/dm --src tests # Run only unit tests.
198 out/Debug/dm --nocpu # Test only GPU-backed work.
199 out/Debug/dm --nogpu # Test only CPU-backed work.
200 out/Debug/dm --match blur # Run only work with "blur" in its name.
201 out/Debug/dm --dryRun # Don't really do anything, just print out what we'd do.