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

Unified Diff: gpu/command_buffer/service/feature_info.cc

Issue 18246005: Add EXT_color_buffer_half_float extension support in GPU commandbuffer service. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase the patch Created 7 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/common/gles2_cmd_utils.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 f759bef8c188a26f710077f4d3e6cf8efed380b4..bf88c03cfccfe60f83f29644485ea1ae33dda6f9 100644
--- a/gpu/command_buffer/service/feature_info.cc
+++ b/gpu/command_buffer/service/feature_info.cc
@@ -432,7 +432,6 @@ void FeatureInfo::AddFeatures(const CommandLine& command_line) {
texture_format_validators_[GL_LUMINANCE].AddValue(GL_FLOAT);
texture_format_validators_[GL_LUMINANCE_ALPHA].AddValue(GL_FLOAT);
validators_.pixel_type.AddValue(GL_FLOAT);
- validators_.read_pixel_type.AddValue(GL_FLOAT);
AddExtensionString("GL_OES_texture_float");
if (enable_texture_float_linear) {
AddExtensionString("GL_OES_texture_float_linear");
@@ -446,13 +445,51 @@ void FeatureInfo::AddFeatures(const CommandLine& command_line) {
texture_format_validators_[GL_LUMINANCE].AddValue(GL_HALF_FLOAT_OES);
texture_format_validators_[GL_LUMINANCE_ALPHA].AddValue(GL_HALF_FLOAT_OES);
validators_.pixel_type.AddValue(GL_HALF_FLOAT_OES);
- validators_.read_pixel_type.AddValue(GL_HALF_FLOAT_OES);
AddExtensionString("GL_OES_texture_half_float");
if (enable_texture_half_float_linear) {
AddExtensionString("GL_OES_texture_half_float_linear");
}
}
+ bool enable_color_buffer_float = false;
+ if (extensions.Contains("GL_ARB_color_buffer_float")
+ || extensions.Contains("GL_ANGLE_color_buffer_float")) {
+ if (enable_texture_float)
+ enable_color_buffer_float = true;
+ }
+ if (enable_color_buffer_float) {
+ validators_.render_buffer_format.AddValue(GL_RGBA32F_EXT);
+ validators_.render_buffer_format.AddValue(GL_RGB32F_EXT);
+ AddExtensionString("GL_ANGLE_color_buffer_float");
+ }
+
+ bool enable_color_buffer_half_float = false;
+ if (extensions.Contains("GL_ARB_color_buffer_float")
+ || extensions.Contains("GL_EXT_color_buffer_half_float")) {
+ if (enable_texture_half_float)
+ enable_color_buffer_half_float = true;
+ }
+ if (enable_color_buffer_half_float) {
+ validators_.render_buffer_format.AddValue(GL_RGBA16F_EXT);
+ validators_.render_buffer_format.AddValue(GL_RGB16F_EXT);
+ // FIXME: read_pixel_type check should be improved.
+ // Only two format/type combinations are supported, one is
+ // RGBA/UNSIGNED_BYTE or RGBA/FLOAT, another is implementation-chosen
+ // format and type that can be queried.
+ validators_.read_pixel_type.AddValue(GL_HALF_FLOAT_OES);
+ AddExtensionString("GL_EXT_color_buffer_half_float");
+ }
+
+ if (enable_color_buffer_float || enable_color_buffer_half_float) {
+ validators_.frame_buffer_parameter.AddValue(
+ GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT);
+ // FIXME: read_pixel_type check should be improved.
+ // Only two format/type combinations are supported, one is
+ // RGBA/UNSIGNED_BYTE or RGBA/FLOAT, another is implementation-chosen
+ // format and type that can be queried.
+ validators_.read_pixel_type.AddValue(GL_FLOAT);
+ }
+
// Check for multisample support
if (!disallowed_features_.multisampling) {
bool ext_has_multisample =
« no previous file with comments | « gpu/command_buffer/common/gles2_cmd_utils.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698