Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Side by Side Diff: gpu/command_buffer/service/feature_info.cc

Issue 1309743005: command_buffer: Implement EXT_blend_func_extended (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@new-05-path-fragment-input-gen
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 is_swiftshader(false), 164 is_swiftshader(false),
165 angle_texture_usage(false), 165 angle_texture_usage(false),
166 ext_texture_storage(false), 166 ext_texture_storage(false),
167 chromium_path_rendering(false), 167 chromium_path_rendering(false),
168 blend_equation_advanced(false), 168 blend_equation_advanced(false),
169 blend_equation_advanced_coherent(false), 169 blend_equation_advanced_coherent(false),
170 ext_texture_rg(false), 170 ext_texture_rg(false),
171 chromium_image_ycbcr_422(false), 171 chromium_image_ycbcr_422(false),
172 enable_subscribe_uniform(false), 172 enable_subscribe_uniform(false),
173 emulate_primitive_restart_fixed_index(false), 173 emulate_primitive_restart_fixed_index(false),
174 ext_render_buffer_format_bgra8888(false) {} 174 ext_render_buffer_format_bgra8888(false),
175 ext_blend_func_extended(false) {}
175 176
176 FeatureInfo::Workarounds::Workarounds() : 177 FeatureInfo::Workarounds::Workarounds() :
177 #define GPU_OP(type, name) name(false), 178 #define GPU_OP(type, name) name(false),
178 GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP) 179 GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
179 #undef GPU_OP 180 #undef GPU_OP
180 max_texture_size(0), 181 max_texture_size(0),
181 max_cube_map_texture_size(0), 182 max_cube_map_texture_size(0),
182 max_fragment_uniform_vectors(0), 183 max_fragment_uniform_vectors(0),
183 max_varying_vectors(0), 184 max_varying_vectors(0),
184 max_vertex_uniform_vectors(0), 185 max_vertex_uniform_vectors(0),
(...skipping 893 matching lines...) Expand 10 before | Expand all | Expand 10 after
1078 validators_.texture_internal_format.AddValue(GL_R8_EXT); 1079 validators_.texture_internal_format.AddValue(GL_R8_EXT);
1079 validators_.texture_internal_format.AddValue(GL_RG_EXT); 1080 validators_.texture_internal_format.AddValue(GL_RG_EXT);
1080 validators_.texture_internal_format.AddValue(GL_RG8_EXT); 1081 validators_.texture_internal_format.AddValue(GL_RG8_EXT);
1081 validators_.read_pixel_format.AddValue(GL_RED_EXT); 1082 validators_.read_pixel_format.AddValue(GL_RED_EXT);
1082 validators_.read_pixel_format.AddValue(GL_RG_EXT); 1083 validators_.read_pixel_format.AddValue(GL_RG_EXT);
1083 validators_.render_buffer_format.AddValue(GL_R8_EXT); 1084 validators_.render_buffer_format.AddValue(GL_R8_EXT);
1084 validators_.render_buffer_format.AddValue(GL_RG8_EXT); 1085 validators_.render_buffer_format.AddValue(GL_RG8_EXT);
1085 } 1086 }
1086 UMA_HISTOGRAM_BOOLEAN("GPU.TextureRG", feature_flags_.ext_texture_rg); 1087 UMA_HISTOGRAM_BOOLEAN("GPU.TextureRG", feature_flags_.ext_texture_rg);
1087 1088
1089 if (gl_version_info_->IsAtLeastGL(3, 3) ||
1090 (gl_version_info_->IsAtLeastGL(3, 2) &&
1091 extensions.Contains("GL_ARB_blend_func_extended")) ||
1092 (gl_version_info_->is_es &&
1093 extensions.Contains("GL_EXT_blend_func_extended"))) {
1094 feature_flags_.ext_blend_func_extended = true;
1095 AddExtensionString("GL_EXT_blend_func_extended");
1096
1097 // NOTE: SRC_ALPHA_SATURATE is valid for ES2 src blend factor.
1098 // SRC_ALPHA_SATURATE is valid for ES3 src and dst blend factor.
1099 validators_.dst_blend_factor.AddValue(GL_SRC_ALPHA_SATURATE_EXT);
1100
1101 validators_.src_blend_factor.AddValue(GL_SRC1_ALPHA_EXT);
1102 validators_.dst_blend_factor.AddValue(GL_SRC1_ALPHA_EXT);
1103 validators_.src_blend_factor.AddValue(GL_SRC1_COLOR_EXT);
1104 validators_.dst_blend_factor.AddValue(GL_SRC1_COLOR_EXT);
1105 validators_.src_blend_factor.AddValue(GL_ONE_MINUS_SRC1_COLOR_EXT);
1106 validators_.dst_blend_factor.AddValue(GL_ONE_MINUS_SRC1_COLOR_EXT);
1107 validators_.src_blend_factor.AddValue(GL_ONE_MINUS_SRC1_ALPHA_EXT);
1108 validators_.dst_blend_factor.AddValue(GL_ONE_MINUS_SRC1_ALPHA_EXT);
1109 validators_.g_l_state.AddValue(GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT);
1110 }
1111
1088 #if !defined(OS_MACOSX) 1112 #if !defined(OS_MACOSX)
1089 if (workarounds_.ignore_egl_sync_failures) { 1113 if (workarounds_.ignore_egl_sync_failures) {
1090 gfx::GLFenceEGL::SetIgnoreFailures(); 1114 gfx::GLFenceEGL::SetIgnoreFailures();
1091 } 1115 }
1092 #endif 1116 #endif
1093 1117
1094 if (workarounds_.avoid_egl_image_target_texture_reuse) { 1118 if (workarounds_.avoid_egl_image_target_texture_reuse) {
1095 TextureDefinition::AvoidEGLTargetTextureReuse(); 1119 TextureDefinition::AvoidEGLTargetTextureReuse();
1096 } 1120 }
1097 1121
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
1184 if (pos == std::string::npos) { 1208 if (pos == std::string::npos) {
1185 extensions_ += (extensions_.empty() ? "" : " ") + str; 1209 extensions_ += (extensions_.empty() ? "" : " ") + str;
1186 } 1210 }
1187 } 1211 }
1188 1212
1189 FeatureInfo::~FeatureInfo() { 1213 FeatureInfo::~FeatureInfo() {
1190 } 1214 }
1191 1215
1192 } // namespace gles2 1216 } // namespace gles2
1193 } // namespace gpu 1217 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698