| Up to higher level directory | |||
| Name | Date | Size | |
|---|---|---|---|
| Android.mk | 04-Nov-2014 | 15.2K | |
| DM.cpp | 04-Nov-2014 | 10.4K | |
| DMBenchTask.cpp | 04-Nov-2014 | 2.7K | |
| DMBenchTask.h | 04-Nov-2014 | 1.7K | |
| DMCpuGMTask.cpp | 04-Nov-2014 | 2.1K | |
| DMCpuGMTask.h | 04-Nov-2014 | 1K | |
| DMExpectations.h | 04-Nov-2014 | 1.2K | |
| DMExpectationsTask.cpp | 04-Nov-2014 | 547 | |
| DMExpectationsTask.h | 04-Nov-2014 | 772 | |
| DMGpuGMTask.cpp | 04-Nov-2014 | 1.7K | |
| DMGpuGMTask.h | 04-Nov-2014 | 1K | |
| DMGpuSupport.h | 04-Nov-2014 | 1.5K | |
| DMPDFRasterizeTask.cpp | 04-Nov-2014 | 897 | |
| DMPDFRasterizeTask.h | 04-Nov-2014 | 942 | |
| DMPDFTask.cpp | 04-Nov-2014 | 2.9K | |
| DMPDFTask.h | 04-Nov-2014 | 1.1K | |
| DMPipeTask.cpp | 04-Nov-2014 | 2.3K | |
| DMPipeTask.h | 04-Nov-2014 | 1K | |
| DMQuiltTask.cpp | 04-Nov-2014 | 2K | |
| DMQuiltTask.h | 04-Nov-2014 | 901 | |
| DMRecordTask.cpp | 04-Nov-2014 | 1.6K | |
| DMRecordTask.h | 04-Nov-2014 | 937 | |
| DMReplayTask.cpp | 04-Nov-2014 | 1.4K | |
| DMReplayTask.h | 04-Nov-2014 | 1,006 | |
| DMReporter.cpp | 04-Nov-2014 | 1.2K | |
| DMReporter.h | 04-Nov-2014 | 839 | |
| DMSerializeTask.cpp | 04-Nov-2014 | 1.2K | |
| DMSerializeTask.h | 04-Nov-2014 | 753 | |
| DMSKPTask.cpp | 04-Nov-2014 | 791 | |
| DMSKPTask.h | 04-Nov-2014 | 686 | |
| DMTask.cpp | 04-Nov-2014 | 2.3K | |
| DMTask.h | 04-Nov-2014 | 1.7K | |
| DMTaskRunner.cpp | 04-Nov-2014 | 734 | |
| DMTaskRunner.h | 04-Nov-2014 | 719 | |
| DMTestTask.cpp | 04-Nov-2014 | 1.9K | |
| DMTestTask.h | 04-Nov-2014 | 1.5K | |
| DMUtil.cpp | 04-Nov-2014 | 3.2K | |
| DMUtil.h | 04-Nov-2014 | 1.2K | |
| DMWriteTask.cpp | 04-Nov-2014 | 6.5K | |
| DMWriteTask.h | 04-Nov-2014 | 1.3K | |
| README | 04-Nov-2014 | 1K | |
1 DM is like GM, but multithreaded. It doesn't do everything GM does. 2 3 DM's design is based around Tasks and a TaskRunner. 4 5 A Task represents an independent unit of work that might fail. We make a task 6 for each GM/configuration pair we want to run. Tasks can kick off new tasks 7 themselves. For example, a CpuTask can kick off a ReplayTask to make sure 8 recording and playing back an SkPicture gives the same result as direct 9 rendering. 10 11 The TaskRunner runs all tasks on one of two threadpools, whose sizes are 12 configurable by --cpuThreads and --gpuThreads. Ideally we'd run these on a 13 single threadpool but it can swamp the GPU if we shove too much work into it at 14 once. --cpuThreads defaults to the number of cores on the machine. 15 --gpuThreads defaults to 1, but you may find 2 or 4 runs a little faster. 16 17 So the main flow of DM is: 18 19 for each GM: 20 for each configuration: 21 kick off a new task 22 < tasks run, maybe fail, and maybe kick off new tasks > 23 wait for all tasks to finish 24 report failures 25 26