skia2/dm/DMTaskRunner.h
commit-bot@chromium.org 787227d356 Let DM work without a GPU.
Testing:

/m/s/skia (dm) $ d dm; and env GYP_DEFINES=skia_gpu=0 d dm
ninja: Entering directory `out/Debug'
ninja: no work to do.
(294 GMs, 620 benches) x 4 configs, 245 tests
4507 tasks leftUnsupported vertex-color/texture xfer mode.
Unsupported vertex-color/texture xfer mode.
0 tasks left
416.53user 9.86system 0:47.43elapsed 898%CPU (0avgtext+0avgdata
13353376maxresident)k
0inputs+0outputs (0major+3579906minor)pagefaults 0swaps
ninja: Entering directory `out/Debug'
[909/909] LINK dm
(287 GMs, 612 benches) x 4 configs, 227 tests
0 tasks left
365.24user 7.71system 0:14.55elapsed 2562%CPU (0avgtext+0avgdata
14718912maxresident)k
0inputs+0outputs (0major+3328269minor)pagefaults 0swaps

BUG=skia:
R=bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/213093004

git-svn-id: http://skia.googlecode.com/svn/trunk@13960 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-26 21:26:15 +00:00

32 lines
686 B
C++

#ifndef DMTaskRunner_DEFINED
#define DMTaskRunner_DEFINED
#include "DMGpuSupport.h"
#include "SkThreadPool.h"
#include "SkTypes.h"
// TaskRunner runs Tasks on one of two threadpools depending on the need for a GrContextFactory.
// It's typically a good idea to run fewer GPU threads than CPU threads (go nuts with those).
namespace DM {
class CpuTask;
class GpuTask;
class TaskRunner : SkNoncopyable {
public:
explicit TaskRunner(int cpuThreads, int gpuThreads);
void add(CpuTask* task);
void add(GpuTask* task);
void wait();
private:
SkTThreadPool<void> fCpu;
SkTThreadPool<GrContextFactory> fGpu;
};
} // namespace DM
#endif // DMTaskRunner_DEFINED