Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "gpu/command_buffer/service/feature_info.h" | 5 #include "gpu/command_buffer/service/feature_info.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 163 is_swiftshader(false), | 163 is_swiftshader(false), |
| 164 angle_texture_usage(false), | 164 angle_texture_usage(false), |
| 165 ext_texture_storage(false), | 165 ext_texture_storage(false), |
| 166 chromium_path_rendering(false), | 166 chromium_path_rendering(false), |
| 167 blend_equation_advanced(false), | 167 blend_equation_advanced(false), |
| 168 blend_equation_advanced_coherent(false), | 168 blend_equation_advanced_coherent(false), |
| 169 ext_texture_rg(false), | 169 ext_texture_rg(false), |
| 170 chromium_image_ycbcr_422(false), | 170 chromium_image_ycbcr_422(false), |
| 171 enable_subscribe_uniform(false), | 171 enable_subscribe_uniform(false), |
| 172 emulate_primitive_restart_fixed_index(false), | 172 emulate_primitive_restart_fixed_index(false), |
| 173 ext_render_buffer_format_bgra8888(false) {} | 173 ext_render_buffer_format_bgra8888(false), |
| 174 ext_blend_func_extended(false) {} | |
| 174 | 175 |
| 175 FeatureInfo::Workarounds::Workarounds() : | 176 FeatureInfo::Workarounds::Workarounds() : |
| 176 #define GPU_OP(type, name) name(false), | 177 #define GPU_OP(type, name) name(false), |
| 177 GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP) | 178 GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP) |
| 178 #undef GPU_OP | 179 #undef GPU_OP |
| 179 max_texture_size(0), | 180 max_texture_size(0), |
| 180 max_cube_map_texture_size(0), | 181 max_cube_map_texture_size(0), |
| 181 max_fragment_uniform_vectors(0), | 182 max_fragment_uniform_vectors(0), |
| 182 max_varying_vectors(0), | 183 max_varying_vectors(0), |
| 183 max_vertex_uniform_vectors(0), | 184 max_vertex_uniform_vectors(0), |
| (...skipping 875 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1059 validators_.texture_internal_format.AddValue(GL_R8_EXT); | 1060 validators_.texture_internal_format.AddValue(GL_R8_EXT); |
| 1060 validators_.texture_internal_format.AddValue(GL_RG_EXT); | 1061 validators_.texture_internal_format.AddValue(GL_RG_EXT); |
| 1061 validators_.texture_internal_format.AddValue(GL_RG8_EXT); | 1062 validators_.texture_internal_format.AddValue(GL_RG8_EXT); |
| 1062 validators_.read_pixel_format.AddValue(GL_RED_EXT); | 1063 validators_.read_pixel_format.AddValue(GL_RED_EXT); |
| 1063 validators_.read_pixel_format.AddValue(GL_RG_EXT); | 1064 validators_.read_pixel_format.AddValue(GL_RG_EXT); |
| 1064 validators_.render_buffer_format.AddValue(GL_R8_EXT); | 1065 validators_.render_buffer_format.AddValue(GL_R8_EXT); |
| 1065 validators_.render_buffer_format.AddValue(GL_RG8_EXT); | 1066 validators_.render_buffer_format.AddValue(GL_RG8_EXT); |
| 1066 } | 1067 } |
| 1067 UMA_HISTOGRAM_BOOLEAN("GPU.TextureRG", feature_flags_.ext_texture_rg); | 1068 UMA_HISTOGRAM_BOOLEAN("GPU.TextureRG", feature_flags_.ext_texture_rg); |
| 1068 | 1069 |
| 1070 if (gl_version_info_->IsAtLeastGL(3, 3) || | |
| 1071 (gl_version_info_->IsAtLeastGL(3, 2) && | |
| 1072 extensions.Contains("GL_ARB_blend_func_extended")) || | |
| 1073 (gl_version_info_->is_es && | |
| 1074 extensions.Contains("GL_EXT_blend_func_extended"))) { | |
| 1075 feature_flags_.ext_blend_func_extended = true; | |
| 1076 AddExtensionString("GL_EXT_blend_func_extended"); | |
| 1077 | |
| 1078 // NOTE: SRC_ALPHA_SATURATE is valid for ES2 src blend factor. | |
| 1079 // SRC_ALPHA_SATURATE is valid for ES3 src and dst blend factor. | |
| 1080 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
| |
| 1081 | |
| 1082 validators_.src_blend_factor.AddValue(GL_SRC1_ALPHA_EXT); | |
| 1083 validators_.dst_blend_factor.AddValue(GL_SRC1_ALPHA_EXT); | |
| 1084 validators_.src_blend_factor.AddValue(GL_SRC1_COLOR_EXT); | |
| 1085 validators_.dst_blend_factor.AddValue(GL_SRC1_COLOR_EXT); | |
| 1086 validators_.src_blend_factor.AddValue(GL_ONE_MINUS_SRC1_COLOR_EXT); | |
| 1087 validators_.dst_blend_factor.AddValue(GL_ONE_MINUS_SRC1_COLOR_EXT); | |
| 1088 validators_.src_blend_factor.AddValue(GL_ONE_MINUS_SRC1_ALPHA_EXT); | |
| 1089 validators_.dst_blend_factor.AddValue(GL_ONE_MINUS_SRC1_ALPHA_EXT); | |
| 1090 validators_.g_l_state.AddValue(GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT); | |
| 1091 } | |
| 1092 | |
| 1069 #if !defined(OS_MACOSX) | 1093 #if !defined(OS_MACOSX) |
| 1070 if (workarounds_.ignore_egl_sync_failures) { | 1094 if (workarounds_.ignore_egl_sync_failures) { |
| 1071 gfx::GLFenceEGL::SetIgnoreFailures(); | 1095 gfx::GLFenceEGL::SetIgnoreFailures(); |
| 1072 } | 1096 } |
| 1073 #endif | 1097 #endif |
| 1074 | 1098 |
| 1075 if (workarounds_.avoid_egl_image_target_texture_reuse) { | 1099 if (workarounds_.avoid_egl_image_target_texture_reuse) { |
| 1076 TextureDefinition::AvoidEGLTargetTextureReuse(); | 1100 TextureDefinition::AvoidEGLTargetTextureReuse(); |
| 1077 } | 1101 } |
| 1078 | 1102 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1165 if (pos == std::string::npos) { | 1189 if (pos == std::string::npos) { |
| 1166 extensions_ += (extensions_.empty() ? "" : " ") + str; | 1190 extensions_ += (extensions_.empty() ? "" : " ") + str; |
| 1167 } | 1191 } |
| 1168 } | 1192 } |
| 1169 | 1193 |
| 1170 FeatureInfo::~FeatureInfo() { | 1194 FeatureInfo::~FeatureInfo() { |
| 1171 } | 1195 } |
| 1172 | 1196 |
| 1173 } // namespace gles2 | 1197 } // namespace gles2 |
| 1174 } // namespace gpu | 1198 } // namespace gpu |
| OLD | NEW |