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