turn back on gpu tests

NOTREECHECKS=true

BUG=skia:3255

Review URL: https://codereview.chromium.org/817573004
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp
index 4f272f1..f02acf1 100644
--- a/dm/DMSrcSink.cpp
+++ b/dm/DMSrcSink.cpp
@@ -6,7 +6,6 @@
 #include "SkOSFile.h"
 #include "SkPictureRecorder.h"
 #include "SkRandom.h"
-#include "SkTLS.h"
 
 namespace DM {
 
@@ -153,30 +152,23 @@
 
 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 
-DEFINE_string(gpu_threading, "none",
-        "none:  single thread,\n"
-        "tls:   any thread, GrContextFactory in TLS   (crashy),\n"
-        "stack: any thread, GrContextFactory on stack (less crashy, differently so)");
-
-GPUSink::GPUSink(GrContextFactory::GLContextType ct, GrGLStandard api, int samples, bool dfText)
+GPUSink::GPUSink(GrContextFactory::GLContextType ct,
+                 GrGLStandard api,
+                 int samples,
+                 bool dfText,
+                 bool threaded)
     : fContextType(ct)
     , fGpuAPI(api)
     , fSampleCount(samples)
-    , fUseDFText(dfText) {}
+    , fUseDFText(dfText)
+    , fThreaded(threaded) {}
 
 int GPUSink::enclave() const {
-    return FLAGS_gpu_threading.contains("none") ? kGPUSink_Enclave : kAnyThread_Enclave;
+    return fThreaded ? kAnyThread_Enclave : kGPUSink_Enclave;
 }
 
-static void* CreateGrFactory()        { return new GrContextFactory; }
-static void  DeleteGrFactory(void* p) { delete (GrContextFactory*)p; }
-
 Error GPUSink::draw(const Src& src, SkBitmap* dst, SkWStream*) const {
-    GrContextFactory local, *factory = &local;
-    if (!FLAGS_gpu_threading.contains("stack")) {
-        factory = (GrContextFactory*)SkTLS::Get(CreateGrFactory, DeleteGrFactory);
-    }
-    // Does abandoning / resetting contexts make any sense if we have stack-scoped factories?
+    GrContextFactory* factory = GetThreadLocalGrContextFactory();
     if (FLAGS_abandonGpuContext) {
         factory->abandonContexts();
     }