Chromium Code Reviews| Index: dm/README |
| diff --git a/dm/README b/dm/README |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..cfff9de14533f4ff016af3cb937d7b69fc8450ce |
| --- /dev/null |
| +++ b/dm/README |
| @@ -0,0 +1,40 @@ |
| +DM is like GM, but multithreaded. It doesn't do everything GM does yet. |
| + |
| +Current approximate list of missing features: |
| + --mismatchPath |
| + --missingExpectationsPath |
| + --writePath |
| + --writePicturePath |
| + |
| + --deferred |
|
bsalomon
2013/10/10 21:13:07
We probably want most of these replay features. I'
mtklein
2013/10/10 22:32:19
Roger roger. Will come around and flesh these all
epoger
2013/10/11 21:13:13
Yup, we definitely need those on the bots. Fine w
|
| + --pipe |
|
scroggo
2013/10/11 21:20:48
Pipe is currently only used by deferred, so it mig
mtklein
2013/10/15 18:30:53
Great. I will keep this in mind.
|
| + --rtree |
| + --serialize |
| + --tiledGrid |
| + --tiledPipe |
|
scroggo
2013/10/11 21:20:48
tiledPipe is an experiment that we are not current
mtklein
2013/10/15 18:30:53
Sweet. Gone.
|
| + |
| + |
| +DM's design is based around Tasks and a TaskRunner. |
| + |
| +A Task represents an independent unit of work that might fail. We make a task |
| +for each GM/configuration pair we want to run. Tasks can kick off new tasks |
| +themselves. For example, a CpuTask can kick off a ReplayTask to make sure |
| +recording and playing back an SkPicture gives the same result as direct |
| +rendering. |
| + |
| +The TaskRunner runs all tasks on one of two threadpools, whose sizes are |
| +configurable by --cpuThreads and --gpuThreads. Ideally we'd run these on a |
| +single threadpool but it can swamp the GPU if we shove too much work into it at |
| +once. --cpuThreads defaults to the number of cores on the machine. |
| +--gpuThreads defaults to 1, but you may find 2 or 4 runs a little faster. |
| + |
| +So the main flow of DM is: |
| + |
| + for each GM: |
| + for each configuration: |
| + kick off a new task |
| + < tasks run, maybe fail, and maybe kick off new tasks > |
| + wait for all tasks to finish |
| + report failures |
| + |