| Index: dm/DM.cpp
|
| diff --git a/dm/DM.cpp b/dm/DM.cpp
|
| index bf37d20a80d53d92cc29e965f7e05ce59e744148..9c5c25371c05056d9dbf8e0238c4068f74739428 100644
|
| --- a/dm/DM.cpp
|
| +++ b/dm/DM.cpp
|
| @@ -12,8 +12,8 @@
|
| #include "gm.h"
|
|
|
| #include "DMBenchTask.h"
|
| -#include "DMCpuTask.h"
|
| -#include "DMGpuTask.h"
|
| +#include "DMCpuGMTask.h"
|
| +#include "DMGpuGMTask.h"
|
| #include "DMReporter.h"
|
| #include "DMTask.h"
|
| #include "DMTaskRunner.h"
|
| @@ -28,6 +28,7 @@ using skiatest::Test;
|
| using skiatest::TestRegistry;
|
|
|
| DEFINE_int32(threads, -1, "Threads for CPU work. Default NUM_CPUS.");
|
| +DEFINE_int32(gpuThreads, 1, "Threads for GPU work.");
|
| DEFINE_string2(expectations, r, "",
|
| "If a directory, compare generated images against images under this path. "
|
| "If a file, compare generated images against JSON expectations at this path.");
|
| @@ -86,15 +87,15 @@ static void kick_off_gms(const SkTDArray<GMRegistry::Factory>& gms,
|
| }
|
| for (int i = 0; i < gms.count(); i++) {
|
| for (int j = 0; j < configs.count(); j++) {
|
| - START("565", CpuTask, kRGB_565_SkColorType);
|
| - START("8888", CpuTask, kPMColor_SkColorType);
|
| - START("gpu", GpuTask, native, 0);
|
| - START("msaa4", GpuTask, native, 4);
|
| - START("msaa16", GpuTask, native, 16);
|
| - START("gpunull", GpuTask, null, 0);
|
| - START("gpudebug", GpuTask, debug, 0);
|
| - START("angle", GpuTask, angle, 0);
|
| - START("mesa", GpuTask, mesa, 0);
|
| + START("565", CpuGMTask, kRGB_565_SkColorType);
|
| + START("8888", CpuGMTask, kPMColor_SkColorType);
|
| + START("gpu", GpuGMTask, native, 0);
|
| + START("msaa4", GpuGMTask, native, 4);
|
| + START("msaa16", GpuGMTask, native, 16);
|
| + START("gpunull", GpuGMTask, null, 0);
|
| + START("gpudebug", GpuGMTask, debug, 0);
|
| + START("angle", GpuGMTask, angle, 0);
|
| + START("mesa", GpuGMTask, mesa, 0);
|
| }
|
| }
|
| #undef START
|
| @@ -129,7 +130,12 @@ static void kick_off_tests(const SkTDArray<TestRegistry::Factory>& tests,
|
| DM::Reporter* reporter,
|
| DM::TaskRunner* tasks) {
|
| for (int i = 0; i < tests.count(); i++) {
|
| - tasks->add(SkNEW_ARGS(DM::TestTask, (reporter, tasks, tests[i])));
|
| + SkAutoTDelete<Test> test(tests[i](NULL));
|
| + if (test->isGPUTest()) {
|
| + tasks->add(SkNEW_ARGS(DM::GpuTestTask, (reporter, tasks, tests[i])));
|
| + } else {
|
| + tasks->add(SkNEW_ARGS(DM::CpuTestTask, (reporter, tasks, tests[i])));
|
| + }
|
| }
|
| }
|
|
|
| @@ -201,7 +207,7 @@ int tool_main(int argc, char** argv) {
|
| SkDebugf("(%d GMs, %d benches) x %d configs, %d tests\n",
|
| gms.count(), benches.count(), configs.count(), tests.count());
|
| DM::Reporter reporter;
|
| - DM::TaskRunner tasks(FLAGS_threads);
|
| + DM::TaskRunner tasks(FLAGS_threads, FLAGS_gpuThreads);
|
| kick_off_gms(gms, configs, *expectations, &reporter, &tasks);
|
| kick_off_benches(benches, configs, &reporter, &tasks);
|
| kick_off_tests(tests, &reporter, &tasks);
|
|
|