Index: gpu/command_buffer/service/context_group.cc |
diff --git a/gpu/command_buffer/service/context_group.cc b/gpu/command_buffer/service/context_group.cc |
index aeae5c65b64755c10b67555bfd9c4034c85ab078..cdda09f4adac7d81d58be85134a2eaeface2c890 100644 |
--- a/gpu/command_buffer/service/context_group.cc |
+++ b/gpu/command_buffer/service/context_group.cc |
@@ -67,6 +67,7 @@ ContextGroup::ContextGroup( |
max_vertex_uniform_vectors_(0u), |
max_color_attachments_(1u), |
max_draw_buffers_(1u), |
+ max_dual_source_draw_buffers_(0u), |
program_cache_(NULL), |
feature_info_(feature_info) { |
{ |
@@ -139,6 +140,11 @@ bool ContextGroup::Initialize(GLES2Decoder* decoder, |
if (max_draw_buffers_ < 1) |
max_draw_buffers_ = 1; |
} |
+ if (feature_info_->feature_flags().ext_blend_func_extended) { |
+ GetIntegerv(GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT, |
+ &max_dual_source_draw_buffers_); |
+ DCHECK(max_dual_source_draw_buffers_ >= 1); |
+ } |
buffer_manager_.reset( |
new BufferManager(memory_tracker_.get(), feature_info_.get())); |
@@ -285,8 +291,9 @@ bool ContextGroup::Initialize(GLES2Decoder* decoder, |
path_manager_.reset(new PathManager()); |
- program_manager_.reset(new ProgramManager( |
- program_cache_, max_varying_vectors_, feature_info_.get())); |
+ program_manager_.reset( |
+ new ProgramManager(program_cache_, max_varying_vectors_, |
+ max_dual_source_draw_buffers_, feature_info_.get())); |
if (!texture_manager_->Initialize()) { |
LOG(ERROR) << "Context::Group::Initialize failed because texture manager " |