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

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 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698