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 e853d9b59387fac65e910d0ca3fb0cdba2fcf157..9ff69100c359bef6ca468cc52150e620288f551a 100644 |
--- a/gpu/command_buffer/service/feature_info.cc |
+++ b/gpu/command_buffer/service/feature_info.cc |
@@ -132,6 +132,7 @@ FeatureInfo::FeatureFlags::FeatureFlags() |
enable_shader_name_hashing(false), |
enable_samplers(false), |
ext_draw_buffers(false), |
+ nv_draw_buffers(false), |
ext_frag_depth(false), |
ext_shader_texture_lod(false), |
use_async_readpixels(false), |
@@ -760,11 +761,15 @@ void FeatureInfo::InitializeFeatures() { |
validators_.vertex_attribute.AddValue(GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE); |
} |
+ bool vendor_agnostic_draw_buffers = |
+ extensions.Contains("GL_ARB_draw_buffers") || |
+ extensions.Contains("GL_EXT_draw_buffers"); |
if (!workarounds_.disable_ext_draw_buffers && |
- (extensions.Contains("GL_ARB_draw_buffers") || |
- extensions.Contains("GL_EXT_draw_buffers"))) { |
+ (vendor_agnostic_draw_buffers || |
+ (extensions.Contains("GL_NV_draw_buffers") && is_es3))) { |
AddExtensionString("GL_EXT_draw_buffers"); |
feature_flags_.ext_draw_buffers = true; |
+ feature_flags_.nv_draw_buffers = !vendor_agnostic_draw_buffers; |
GLint max_color_attachments = 0; |
glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &max_color_attachments); |