| Index: dm/DMTask.cpp
|
| diff --git a/dm/DMTask.cpp b/dm/DMTask.cpp
|
| index 8b6a94e52ad33a016eadbb7c033be77789c496eb..83df84933f8cd816d8910f7d039f880208e67d6c 100644
|
| --- a/dm/DMTask.cpp
|
| +++ b/dm/DMTask.cpp
|
| @@ -37,7 +37,7 @@ void Task::finish() {
|
| fReporter->finish(this->name(), SkTime::GetMSecs() - fStart);
|
| }
|
|
|
| -void Task::spawnChild(CpuTask* task) {
|
| +void Task::reallySpawnChild(CpuTask* task) {
|
| fTaskRunner->add(task);
|
| }
|
|
|
| @@ -53,6 +53,11 @@ void CpuTask::run() {
|
| SkDELETE(this);
|
| }
|
|
|
| +void CpuTask::spawnChild(CpuTask* task) {
|
| + // Run children serially on this (CPU) thread. This tends to save RAM and is usually no slower.
|
| + task->run();
|
| +}
|
| +
|
| GpuTask::GpuTask(Reporter* reporter, TaskRunner* taskRunner) : Task(reporter, taskRunner) {}
|
|
|
| void GpuTask::run(GrContextFactory& factory) {
|
| @@ -64,6 +69,9 @@ void GpuTask::run(GrContextFactory& factory) {
|
| SkDELETE(this);
|
| }
|
|
|
| -
|
| +void GpuTask::spawnChild(CpuTask* task) {
|
| + // Really spawn a new task so it runs on the CPU threadpool instead of the GPU one we're on now.
|
| + this->reallySpawnChild(task);
|
| +}
|
|
|
| } // namespace DM
|
|
|