DM: make GPU tasks multithreaded again. Big refactor.
authorcommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 28 Feb 2014 20:31:31 +0000 (20:31 +0000)
committercommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 28 Feb 2014 20:31:31 +0000 (20:31 +0000)
commitef57b7e65330d5f794a513630517907500f1c1d0
treead4e3a100ff3da01a22f7aa6bda8cf11cea609c5
parentd1a7e2ec6ffb47243a31dc5c30b00fd7f700a339
DM: make GPU tasks multithreaded again.  Big refactor.

The main meat of things is in SkThreadPool.  We can now give SkThreadPool a
type for each thread to create and destroy on its local stack.  It's TLS
without going through SkTLS.

I've split the DM tasks into CpuTasks that run on threads with no TLS, and
GpuTasks that run on threads with a thread local GrContextFactory.

The old CpuTask and GpuTask have been renamed to CpuGMTask and GpuGMTask.

Upshot: default run of out/Debug/dm goes from ~45 seconds to ~20 seconds.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13632 2bbb7eff-a529-9590-31e7-b0007b416f81
34 files changed:
dm/DM.cpp
dm/DMBenchTask.cpp
dm/DMBenchTask.h
dm/DMCpuGMTask.cpp [new file with mode: 0644]
dm/DMCpuGMTask.h [new file with mode: 0644]
dm/DMCpuTask.cpp [deleted file]
dm/DMCpuTask.h [deleted file]
dm/DMExpectationsTask.cpp
dm/DMExpectationsTask.h
dm/DMGpuGMTask.cpp [new file with mode: 0644]
dm/DMGpuGMTask.h [new file with mode: 0644]
dm/DMGpuTask.cpp [deleted file]
dm/DMGpuTask.h [deleted file]
dm/DMPipeTask.cpp
dm/DMPipeTask.h
dm/DMReplayTask.cpp
dm/DMReplayTask.h
dm/DMSerializeTask.cpp
dm/DMSerializeTask.h
dm/DMTask.cpp
dm/DMTask.h
dm/DMTaskRunner.cpp
dm/DMTaskRunner.h
dm/DMTestTask.cpp
dm/DMTestTask.h
dm/DMTileGridTask.cpp
dm/DMTileGridTask.h
dm/DMWriteTask.cpp
dm/DMWriteTask.h
gyp/dm.gyp
gyp/utils.gyp
include/utils/SkRunnable.h
include/utils/SkThreadPool.h
src/utils/SkThreadPool.cpp [deleted file]