diff --git a/bench/TessellateBench.cpp b/bench/TessellateBench.cpp
index c0cb7dd..e4a6201 100644
--- a/bench/TessellateBench.cpp
+++ b/bench/TessellateBench.cpp
@@ -36,7 +36,7 @@
 
     GrContextOptions ctxOptions;
     ctxOptions.fGpuPathRenderers = GpuPathRenderers::kTessellation;
-    ctxOptions.fSuppressTessellationShaders = false;
+    ctxOptions.fEnableExperimentalHardwareTessellation = true;
 
     return GrDirectContext::MakeMock(&mockOptions, ctxOptions);
 }
diff --git a/include/gpu/GrContextOptions.h b/include/gpu/GrContextOptions.h
index 2d69558..c7b9aab 100644
--- a/include/gpu/GrContextOptions.h
+++ b/include/gpu/GrContextOptions.h
@@ -251,6 +251,11 @@
      */
     bool fSuppressMipmapSupport = false;
 
+    /**
+     * If true, and if supported, enables hardware tessellation in the caps.
+     */
+    bool fEnableExperimentalHardwareTessellation = false;
+
 #if GR_TEST_UTILS
     /**
      * Private options that are only meant for testing within Skia's tools.
@@ -267,11 +272,6 @@
     bool fSuppressGeometryShaders = false;
 
     /**
-     * If true, the caps will never support tessellation shaders.
-     */
-    bool fSuppressTessellationShaders = true;
-
-    /**
      * If greater than zero and less than the actual hardware limit, overrides the maximum number of
      * tessellation segments supported by the caps.
      */
diff --git a/src/gpu/GrShaderCaps.cpp b/src/gpu/GrShaderCaps.cpp
index 2f9c33b..a1942e5 100644
--- a/src/gpu/GrShaderCaps.cpp
+++ b/src/gpu/GrShaderCaps.cpp
@@ -175,6 +175,9 @@
         SkASSERT(!fMustWriteToFragColor);
         SkASSERT(!fNoDefaultPrecisionForExternalSamplers);
     }
+    if (!options.fEnableExperimentalHardwareTessellation) {
+        fMaxTessellationSegments = 0;
+    }
 #if GR_TEST_UTILS
     if (options.fSuppressDualSourceBlending) {
         fDualSourceBlendingSupport = false;
@@ -182,15 +185,9 @@
     if (options.fSuppressGeometryShaders) {
         fGeometryShaderSupport = false;
     }
-    if (options.fSuppressTessellationShaders) {
-        fMaxTessellationSegments = 0;
-    }
     if (options.fMaxTessellationSegmentsOverride > 0) {
         fMaxTessellationSegments = std::min(options.fMaxTessellationSegmentsOverride,
                                             fMaxTessellationSegments);
     }
-#else
-    // Tessellation shaders are still very experimental. Always disable them outside of test builds.
-    fMaxTessellationSegments = 0;
 #endif
 }
diff --git a/tools/flags/CommonFlagsGpu.cpp b/tools/flags/CommonFlagsGpu.cpp
index 04b7540..2c39b83 100644
--- a/tools/flags/CommonFlagsGpu.cpp
+++ b/tools/flags/CommonFlagsGpu.cpp
@@ -98,7 +98,7 @@
     ctxOptions->fAllowPathMaskCaching                = FLAGS_cachePathMasks;
     ctxOptions->fAllPathsVolatile                    = FLAGS_allPathsVolatile;
     ctxOptions->fSuppressGeometryShaders             = !FLAGS_gs;
-    ctxOptions->fSuppressTessellationShaders         = !FLAGS_hwtess;
+    ctxOptions->fEnableExperimentalHardwareTessellation = FLAGS_hwtess;
     ctxOptions->fMaxTessellationSegmentsOverride     = FLAGS_maxTessellationSegments;
     ctxOptions->fGpuPathRenderers                    = collect_gpu_path_renderers_from_flags();
     ctxOptions->fInternalMultisampleCount            = FLAGS_internalSamples;
