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 |