Index: dm/DMTaskRunner.h |
diff --git a/dm/DMTaskRunner.h b/dm/DMTaskRunner.h |
index d147525380ed5086ade310cfbb8ec0fd14c5c4ca..dd1440ed9accb50740ae56193b5045da7bf8582f 100644 |
--- a/dm/DMTaskRunner.h |
+++ b/dm/DMTaskRunner.h |
@@ -2,12 +2,11 @@ |
#define DMTaskRunner_DEFINED |
#include "DMGpuSupport.h" |
-#include "SkTDArray.h" |
-#include "SkTaskGroup.h" |
+#include "SkThreadPool.h" |
#include "SkTypes.h" |
// TaskRunner runs Tasks on one of two threadpools depending on the need for a GrContextFactory. |
-// We fix the number of GPU threads to 1, but go nuts with CPU threads. |
+// It's typically a good idea to run fewer GPU threads than CPU threads (go nuts with those). |
namespace DM { |
@@ -16,16 +15,16 @@ |
class TaskRunner : SkNoncopyable { |
public: |
- // 0 -> one thread per core |
- explicit TaskRunner(int cpuThreads); |
+ explicit TaskRunner(int cpuThreads, int gpuThreads); |
void add(CpuTask* task); |
+ void addNext(CpuTask* task); |
void add(GpuTask* task); |
void wait(); |
private: |
- SkTaskGroup fCpuWork; |
- SkTDArray<GpuTask*> fGpuWork; |
+ SkTThreadPool<void> fCpu; |
+ SkTThreadPool<GrContextFactory> fGpu; |
}; |
} // namespace DM |