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

Side by Side Diff: gpu/command_buffer/service/context_group.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: rebase Created 5 years 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/context_group.h" 5 #include "gpu/command_buffer/service/context_group.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 bind_generates_resource_(bind_generates_resource), 60 bind_generates_resource_(bind_generates_resource),
61 max_vertex_attribs_(0u), 61 max_vertex_attribs_(0u),
62 max_texture_units_(0u), 62 max_texture_units_(0u),
63 max_texture_image_units_(0u), 63 max_texture_image_units_(0u),
64 max_vertex_texture_image_units_(0u), 64 max_vertex_texture_image_units_(0u),
65 max_fragment_uniform_vectors_(0u), 65 max_fragment_uniform_vectors_(0u),
66 max_varying_vectors_(0u), 66 max_varying_vectors_(0u),
67 max_vertex_uniform_vectors_(0u), 67 max_vertex_uniform_vectors_(0u),
68 max_color_attachments_(1u), 68 max_color_attachments_(1u),
69 max_draw_buffers_(1u), 69 max_draw_buffers_(1u),
70 max_dual_source_draw_buffers_(0u),
70 program_cache_(NULL), 71 program_cache_(NULL),
71 feature_info_(feature_info) { 72 feature_info_(feature_info) {
72 { 73 {
73 if (!mailbox_manager_.get()) 74 if (!mailbox_manager_.get())
74 mailbox_manager_ = new MailboxManagerImpl; 75 mailbox_manager_ = new MailboxManagerImpl;
75 if (!subscription_ref_set_.get()) 76 if (!subscription_ref_set_.get())
76 subscription_ref_set_ = new SubscriptionRefSet(); 77 subscription_ref_set_ = new SubscriptionRefSet();
77 if (!pending_valuebuffer_state_.get()) 78 if (!pending_valuebuffer_state_.get())
78 pending_valuebuffer_state_ = new ValueStateMap(); 79 pending_valuebuffer_state_ = new ValueStateMap();
79 if (!feature_info.get()) 80 if (!feature_info.get())
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 } 133 }
133 134
134 if (feature_info_->feature_flags().ext_draw_buffers) { 135 if (feature_info_->feature_flags().ext_draw_buffers) {
135 GetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &max_color_attachments_); 136 GetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &max_color_attachments_);
136 if (max_color_attachments_ < 1) 137 if (max_color_attachments_ < 1)
137 max_color_attachments_ = 1; 138 max_color_attachments_ = 1;
138 GetIntegerv(GL_MAX_DRAW_BUFFERS_ARB, &max_draw_buffers_); 139 GetIntegerv(GL_MAX_DRAW_BUFFERS_ARB, &max_draw_buffers_);
139 if (max_draw_buffers_ < 1) 140 if (max_draw_buffers_ < 1)
140 max_draw_buffers_ = 1; 141 max_draw_buffers_ = 1;
141 } 142 }
143 if (feature_info_->feature_flags().ext_blend_func_extended) {
144 GetIntegerv(GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT,
145 &max_dual_source_draw_buffers_);
146 DCHECK(max_dual_source_draw_buffers_ >= 1);
147 }
142 148
143 buffer_manager_.reset( 149 buffer_manager_.reset(
144 new BufferManager(memory_tracker_.get(), feature_info_.get())); 150 new BufferManager(memory_tracker_.get(), feature_info_.get()));
145 framebuffer_manager_.reset(new FramebufferManager( 151 framebuffer_manager_.reset(new FramebufferManager(
146 max_draw_buffers_, max_color_attachments_, feature_info_->context_type(), 152 max_draw_buffers_, max_color_attachments_, feature_info_->context_type(),
147 framebuffer_completeness_cache_)); 153 framebuffer_completeness_cache_));
148 renderbuffer_manager_.reset(new RenderbufferManager( 154 renderbuffer_manager_.reset(new RenderbufferManager(
149 memory_tracker_.get(), max_renderbuffer_size, max_samples, 155 memory_tracker_.get(), max_renderbuffer_size, max_samples,
150 feature_info_.get())); 156 feature_info_.get()));
151 shader_manager_.reset(new ShaderManager()); 157 shader_manager_.reset(new ShaderManager());
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 } 284 }
279 if (feature_info_->workarounds().max_vertex_uniform_vectors) { 285 if (feature_info_->workarounds().max_vertex_uniform_vectors) {
280 max_vertex_uniform_vectors_ = 286 max_vertex_uniform_vectors_ =
281 std::min(max_vertex_uniform_vectors_, 287 std::min(max_vertex_uniform_vectors_,
282 static_cast<uint32>( 288 static_cast<uint32>(
283 feature_info_->workarounds().max_vertex_uniform_vectors)); 289 feature_info_->workarounds().max_vertex_uniform_vectors));
284 } 290 }
285 291
286 path_manager_.reset(new PathManager()); 292 path_manager_.reset(new PathManager());
287 293
288 program_manager_.reset(new ProgramManager( 294 program_manager_.reset(
289 program_cache_, max_varying_vectors_, feature_info_.get())); 295 new ProgramManager(program_cache_, max_varying_vectors_,
296 max_dual_source_draw_buffers_, feature_info_.get()));
290 297
291 if (!texture_manager_->Initialize()) { 298 if (!texture_manager_->Initialize()) {
292 LOG(ERROR) << "Context::Group::Initialize failed because texture manager " 299 LOG(ERROR) << "Context::Group::Initialize failed because texture manager "
293 << "failed to initialize."; 300 << "failed to initialize.";
294 return false; 301 return false;
295 } 302 }
296 303
297 decoders_.push_back(base::AsWeakPtr<GLES2Decoder>(decoder)); 304 decoders_.push_back(base::AsWeakPtr<GLES2Decoder>(decoder));
298 return true; 305 return true;
299 } 306 }
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 GLuint client_id, GLuint* service_id) const { 448 GLuint client_id, GLuint* service_id) const {
442 Buffer* buffer = buffer_manager_->GetBuffer(client_id); 449 Buffer* buffer = buffer_manager_->GetBuffer(client_id);
443 if (!buffer) 450 if (!buffer)
444 return false; 451 return false;
445 *service_id = buffer->service_id(); 452 *service_id = buffer->service_id();
446 return true; 453 return true;
447 } 454 }
448 455
449 } // namespace gles2 456 } // namespace gles2
450 } // namespace gpu 457 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/context_group.h ('k') | gpu/command_buffer/service/disk_cache_proto.proto » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698