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 de3eb5623ef77375cdcb2cb5091abb0413f575e4..6f627a539e2b7a4edef1497bd7af4841ecf7fc66 100644 |
| --- a/gpu/command_buffer/service/feature_info.cc |
| +++ b/gpu/command_buffer/service/feature_info.cc |
| @@ -228,8 +228,6 @@ void FeatureInfo::InitializeFeatures() { |
| StringSet extensions( |
| reinterpret_cast<const char*>(glGetString(GL_EXTENSIONS))); |
| - bool npot_ok = false; |
| - |
| const char* renderer_str = |
| reinterpret_cast<const char*>(glGetString(GL_RENDERER)); |
| if (renderer_str) { |
| @@ -374,7 +372,7 @@ void FeatureInfo::InitializeFeatures() { |
| validators_.render_buffer_format.AddValue(GL_DEPTH24_STENCIL8); |
| } |
| - if (extensions.Contains("GL_OES_vertex_array_object") || |
| + if (is_es3 || extensions.Contains("GL_OES_vertex_array_object") || |
| extensions.Contains("GL_ARB_vertex_array_object") || |
| extensions.Contains("GL_APPLE_vertex_array_object")) { |
| feature_flags_.native_vertex_array_object = true; |
| @@ -387,7 +385,7 @@ void FeatureInfo::InitializeFeatures() { |
| feature_flags_.native_vertex_array_object = false; |
| } |
| - if (extensions.Contains("GL_OES_element_index_uint") || |
| + if (is_es3 || extensions.Contains("GL_OES_element_index_uint") || |
| gfx::HasDesktopGLFeatures()) { |
| AddExtensionString("GL_OES_element_index_uint"); |
| validators_.index_type.AddValue(GL_UNSIGNED_INT); |
| @@ -438,10 +436,10 @@ void FeatureInfo::InitializeFeatures() { |
| } |
| // Check if we should allow GL_OES_texture_npot |
| - if (extensions.Contains("GL_ARB_texture_non_power_of_two") || |
| + if (is_es3 || extensions.Contains("GL_ARB_texture_non_power_of_two") || |
| extensions.Contains("GL_OES_texture_npot")) { |
| AddExtensionString("GL_OES_texture_npot"); |
| - npot_ok = true; |
| + feature_flags_.npot_ok |= true; |
|
piman
2014/08/28 18:17:39
nit: feature_flags_.npot_ok = true
dshwang
2014/08/29 07:49:09
Done.
|
| } |
| // Check if we should allow GL_OES_texture_float, GL_OES_texture_half_float, |
| @@ -460,7 +458,7 @@ void FeatureInfo::InitializeFeatures() { |
| enable_texture_half_float_linear = true; |
| may_enable_chromium_color_buffer_float = true; |
| } else { |
| - if (extensions.Contains("GL_OES_texture_float")) { |
| + if (is_es3 || extensions.Contains("GL_OES_texture_float")) { |
| enable_texture_float = true; |
| if (extensions.Contains("GL_OES_texture_float_linear")) { |
| enable_texture_float_linear = true; |
| @@ -470,9 +468,9 @@ void FeatureInfo::InitializeFeatures() { |
| may_enable_chromium_color_buffer_float = true; |
| } |
| } |
| - if (extensions.Contains("GL_OES_texture_half_float")) { |
| + if (is_es3 || extensions.Contains("GL_OES_texture_half_float")) { |
| enable_texture_half_float = true; |
| - if (extensions.Contains("GL_OES_texture_half_float_linear")) { |
| + if (is_es3 || extensions.Contains("GL_OES_texture_half_float_linear")) { |
| enable_texture_half_float_linear = true; |
| } |
| } |
| @@ -604,7 +602,7 @@ void FeatureInfo::InitializeFeatures() { |
| } |
| if (!workarounds_.disable_oes_standard_derivatives && |
| - (extensions.Contains("GL_OES_standard_derivatives") || |
| + (is_es3 || extensions.Contains("GL_OES_standard_derivatives") || |
| gfx::HasDesktopGLFeatures())) { |
| AddExtensionString("GL_OES_standard_derivatives"); |
| feature_flags_.oes_standard_derivatives = true; |
| @@ -677,7 +675,6 @@ void FeatureInfo::InitializeFeatures() { |
| feature_flags_.enable_texture_float_linear |= enable_texture_float_linear; |
| feature_flags_.enable_texture_half_float_linear |= |
| enable_texture_half_float_linear; |
| - feature_flags_.npot_ok |= npot_ok; |
| if (extensions.Contains("GL_ANGLE_pack_reverse_row_order")) { |
| AddExtensionString("GL_ANGLE_pack_reverse_row_order"); |
| @@ -756,8 +753,9 @@ void FeatureInfo::InitializeFeatures() { |
| GLint max_color_attachments = 0; |
| glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &max_color_attachments); |
| - for (GLenum i = GL_COLOR_ATTACHMENT1_EXT; |
| - i < static_cast<GLenum>(GL_COLOR_ATTACHMENT0 + max_color_attachments); |
| + for (GLenum i = GL_COLOR_ATTACHMENT0_EXT; |
|
piman
2014/08/28 18:17:39
nit: GL_COLOR_ATTACHMENT0_EXT is already in valida
|
| + i < static_cast<GLenum>(GL_COLOR_ATTACHMENT0_EXT + |
| + max_color_attachments); |
| ++i) { |
| validators_.attachment.AddValue(i); |
| } |
| @@ -773,13 +771,14 @@ void FeatureInfo::InitializeFeatures() { |
| } |
| } |
| - if (extensions.Contains("GL_EXT_blend_minmax") || |
| + if (is_es3 || extensions.Contains("GL_EXT_blend_minmax") || |
| gfx::HasDesktopGLFeatures()) { |
| AddExtensionString("GL_EXT_blend_minmax"); |
| validators_.equation.AddValue(GL_MIN_EXT); |
| validators_.equation.AddValue(GL_MAX_EXT); |
| } |
| + // TODO(dshwang): GLES3 supports gl_FragDepth, not gl_FragDepthEXT. |
| if (extensions.Contains("GL_EXT_frag_depth") || gfx::HasDesktopGLFeatures()) { |
| AddExtensionString("GL_EXT_frag_depth"); |
| feature_flags_.ext_frag_depth = true; |