Index: gpu/command_buffer/service/feature_info.cc |
diff --git a/gpu/command_buffer/service/feature_info.cc b/gpu/command_buffer/service/feature_info.cc |
index 0ce99809114c5e288cbe4cf44fd3895fcf3adc6e..8caf05c3fb8173f399746ab0a61b3d27d1eac1d5 100644 |
--- a/gpu/command_buffer/service/feature_info.cc |
+++ b/gpu/command_buffer/service/feature_info.cc |
@@ -209,6 +209,9 @@ void FeatureInfo::InitializeBasicState(const base::CommandLine& command_line) { |
enable_unsafe_es3_apis_switch_ = |
command_line.HasSwitch(switches::kEnableUnsafeES3APIs); |
+ enable_gl_path_rendering_switch_ = |
+ command_line.HasSwitch(switches::kEnableGLPathRendering); |
+ |
unsafe_es3_apis_enabled_ = false; |
} |
@@ -1004,14 +1007,18 @@ void FeatureInfo::InitializeFeatures() { |
} |
} |
- if (extensions.Contains("GL_NV_path_rendering")) { |
- if (extensions.Contains("GL_EXT_direct_state_access") || |
- gl_version_info_->is_es3) { |
- AddExtensionString("GL_CHROMIUM_path_rendering"); |
- feature_flags_.chromium_path_rendering = true; |
- validators_.g_l_state.AddValue(GL_PATH_MODELVIEW_MATRIX_CHROMIUM); |
- validators_.g_l_state.AddValue(GL_PATH_PROJECTION_MATRIX_CHROMIUM); |
- } |
+ if (enable_gl_path_rendering_switch_ && |
+ !workarounds_.disable_gl_path_rendering && |
+ extensions.Contains("GL_NV_path_rendering") && |
+ (extensions.Contains("GL_EXT_direct_state_access") || |
+ gl_version_info_->is_es3)) { |
+ AddExtensionString("GL_CHROMIUM_path_rendering"); |
+ feature_flags_.chromium_path_rendering = true; |
+ validators_.g_l_state.AddValue(GL_PATH_MODELVIEW_MATRIX_CHROMIUM); |
+ validators_.g_l_state.AddValue(GL_PATH_PROJECTION_MATRIX_CHROMIUM); |
+ validators_.g_l_state.AddValue(GL_PATH_STENCIL_FUNC_CHROMIUM); |
+ validators_.g_l_state.AddValue(GL_PATH_STENCIL_REF_CHROMIUM); |
+ validators_.g_l_state.AddValue(GL_PATH_STENCIL_VALUE_MASK_CHROMIUM); |
} |
if ((gl_version_info_->is_es3 || gl_version_info_->is_desktop_core_profile || |