OLD | NEW |
1 DM is like GM, but multithreaded. It doesn't do everything GM does yet. | 1 DM is like GM, but multithreaded. It doesn't do everything GM does yet. |
2 | 2 |
3 Current approximate list of missing features: | 3 Current approximate list of missing features: |
| 4 --config pdf |
4 --mismatchPath | 5 --mismatchPath |
5 --missingExpectationsPath | 6 --missingExpectationsPath |
6 --writePicturePath | 7 --writePicturePath |
7 | 8 |
8 --deferred / --pipe | 9 --deferred |
9 --rtree | 10 --rtree |
10 --tiledGrid | 11 --tiledGrid |
11 | 12 |
12 | 13 |
13 DM's design is based around Tasks and a TaskRunner. | 14 DM's design is based around Tasks and a TaskRunner. |
14 | 15 |
15 A Task represents an independent unit of work that might fail. We make a task | 16 A Task represents an independent unit of work that might fail. We make a task |
16 for each GM/configuration pair we want to run. Tasks can kick off new tasks | 17 for each GM/configuration pair we want to run. Tasks can kick off new tasks |
17 themselves. For example, a CpuTask can kick off a ReplayTask to make sure | 18 themselves. For example, a CpuTask can kick off a ReplayTask to make sure |
18 recording and playing back an SkPicture gives the same result as direct | 19 recording and playing back an SkPicture gives the same result as direct |
19 rendering. | 20 rendering. |
20 | 21 |
21 The TaskRunner runs all tasks on one of two threadpools, whose sizes are | 22 The TaskRunner runs all tasks on one of two threadpools, whose sizes are |
22 configurable by --cpuThreads and --gpuThreads. Ideally we'd run these on a | 23 configurable by --cpuThreads and --gpuThreads. Ideally we'd run these on a |
23 single threadpool but it can swamp the GPU if we shove too much work into it at | 24 single threadpool but it can swamp the GPU if we shove too much work into it at |
24 once. --cpuThreads defaults to the number of cores on the machine. | 25 once. --cpuThreads defaults to the number of cores on the machine. |
25 --gpuThreads defaults to 1, but you may find 2 or 4 runs a little faster. | 26 --gpuThreads defaults to 1, but you may find 2 or 4 runs a little faster. |
26 | 27 |
27 So the main flow of DM is: | 28 So the main flow of DM is: |
28 | 29 |
29 for each GM: | 30 for each GM: |
30 for each configuration: | 31 for each configuration: |
31 kick off a new task | 32 kick off a new task |
32 < tasks run, maybe fail, and maybe kick off new tasks > | 33 < tasks run, maybe fail, and maybe kick off new tasks > |
33 wait for all tasks to finish | 34 wait for all tasks to finish |
34 report failures | 35 report failures |
35 | 36 |
OLD | NEW |