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 279772f55cc9bf2aae87d970220e3d024c6b3249..e8d5e228e52eec58c97a131442c17ffc7b4376c4 100644 |
--- a/gpu/command_buffer/service/feature_info.cc |
+++ b/gpu/command_buffer/service/feature_info.cc |
@@ -89,6 +89,7 @@ FeatureInfo::FeatureFlags::FeatureFlags() |
multisampled_render_to_texture(false), |
use_img_for_multisampled_render_to_texture(false), |
chromium_screen_space_antialiasing(false), |
+ use_chromium_screen_space_antialiasing_via_shaders(false), |
oes_standard_derivatives(false), |
oes_egl_image_external(false), |
nv_egl_stream_consumer_external(false), |
@@ -179,6 +180,9 @@ void FeatureInfo::InitializeBasicState(const base::CommandLine* command_line) { |
disable_shader_translator_ = |
command_line->HasSwitch(switches::kDisableGLSLTranslator); |
+ enable_cmaa_shaders_switch_ = |
+ command_line->HasSwitch(switches::kEnableCMAAShaders); |
+ |
unsafe_es3_apis_enabled_ = false; |
// Default context_type_ to a GLES2 Context. |
@@ -880,6 +884,17 @@ void FeatureInfo::InitializeFeatures() { |
if (extensions.Contains("GL_INTEL_framebuffer_CMAA")) { |
feature_flags_.chromium_screen_space_antialiasing = true; |
AddExtensionString("GL_CHROMIUM_screen_space_antialiasing"); |
+ } else if (enable_cmaa_shaders_switch_ && |
+ (gl_version_info_->IsAtLeastGLES(3, 1) || |
+ (gl_version_info_->IsAtLeastGL(3, 0) && |
+ extensions.Contains("GL_ARB_shading_language_420pack") && |
+ extensions.Contains("GL_ARB_texture_gather") && |
+ extensions.Contains("GL_ARB_explicit_uniform_location") && |
+ extensions.Contains("GL_ARB_explicit_attrib_location") && |
+ extensions.Contains("GL_ARB_shader_image_load_store")))) { |
+ feature_flags_.chromium_screen_space_antialiasing = true; |
+ feature_flags_.use_chromium_screen_space_antialiasing_via_shaders = true; |
+ AddExtensionString("GL_CHROMIUM_screen_space_antialiasing"); |
} |
if (extensions.Contains("GL_OES_depth24") || gl::HasDesktopGLFeatures() || |