Chromium Code Reviews| 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 282690eff665164330c6f5b92e0e00aa152dcb88..2650ffb7001702ee0d7bf6544b5b22e2caeb5476 100644 |
| --- a/gpu/command_buffer/service/feature_info.cc |
| +++ b/gpu/command_buffer/service/feature_info.cc |
| @@ -170,7 +170,8 @@ FeatureInfo::FeatureFlags::FeatureFlags() |
| chromium_image_ycbcr_422(false), |
| enable_subscribe_uniform(false), |
| emulate_primitive_restart_fixed_index(false), |
| - ext_render_buffer_format_bgra8888(false) {} |
| + ext_render_buffer_format_bgra8888(false), |
| + ext_blend_func_extended(false) {} |
| FeatureInfo::Workarounds::Workarounds() : |
| #define GPU_OP(type, name) name(false), |
| @@ -1066,6 +1067,29 @@ void FeatureInfo::InitializeFeatures() { |
| } |
| UMA_HISTOGRAM_BOOLEAN("GPU.TextureRG", feature_flags_.ext_texture_rg); |
| + if (gl_version_info_->IsAtLeastGL(3, 3) || |
| + (gl_version_info_->IsAtLeastGL(3, 2) && |
| + extensions.Contains("GL_ARB_blend_func_extended")) || |
| + (gl_version_info_->is_es && |
| + extensions.Contains("GL_EXT_blend_func_extended"))) { |
| + feature_flags_.ext_blend_func_extended = true; |
| + AddExtensionString("GL_EXT_blend_func_extended"); |
| + |
| + // NOTE: SRC_ALPHA_SATURATE is valid for ES2 src blend factor. |
| + // SRC_ALPHA_SATURATE is valid for ES3 src and dst blend factor. |
| + validators_.dst_blend_factor.AddValue(GL_SRC_ALPHA_SATURATE_EXT); |
|
Mark Kilgard
2015/08/28 19:53:24
good, this is actually explicitly documented in th
|
| + |
| + validators_.src_blend_factor.AddValue(GL_SRC1_ALPHA_EXT); |
| + validators_.dst_blend_factor.AddValue(GL_SRC1_ALPHA_EXT); |
| + validators_.src_blend_factor.AddValue(GL_SRC1_COLOR_EXT); |
| + validators_.dst_blend_factor.AddValue(GL_SRC1_COLOR_EXT); |
| + validators_.src_blend_factor.AddValue(GL_ONE_MINUS_SRC1_COLOR_EXT); |
| + validators_.dst_blend_factor.AddValue(GL_ONE_MINUS_SRC1_COLOR_EXT); |
| + validators_.src_blend_factor.AddValue(GL_ONE_MINUS_SRC1_ALPHA_EXT); |
| + validators_.dst_blend_factor.AddValue(GL_ONE_MINUS_SRC1_ALPHA_EXT); |
| + validators_.g_l_state.AddValue(GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT); |
| + } |
| + |
| #if !defined(OS_MACOSX) |
| if (workarounds_.ignore_egl_sync_failures) { |
| gfx::GLFenceEGL::SetIgnoreFailures(); |