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

Side by Side Diff: gpu/command_buffer/service/context_group.cc

Issue 1894313002: Removed implementation of CHROMIUM_subscribe_uniform (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Missed a couple more mus/ references Created 4 years, 8 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/context_group.h" 5 #include "gpu/command_buffer/service/context_group.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
11 #include <string> 11 #include <string>
12 12
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "gpu/command_buffer/common/value_state.h"
15 #include "gpu/command_buffer/service/buffer_manager.h" 14 #include "gpu/command_buffer/service/buffer_manager.h"
16 #include "gpu/command_buffer/service/framebuffer_manager.h" 15 #include "gpu/command_buffer/service/framebuffer_manager.h"
17 #include "gpu/command_buffer/service/gpu_preferences.h" 16 #include "gpu/command_buffer/service/gpu_preferences.h"
18 #include "gpu/command_buffer/service/mailbox_manager_impl.h" 17 #include "gpu/command_buffer/service/mailbox_manager_impl.h"
19 #include "gpu/command_buffer/service/path_manager.h" 18 #include "gpu/command_buffer/service/path_manager.h"
20 #include "gpu/command_buffer/service/program_manager.h" 19 #include "gpu/command_buffer/service/program_manager.h"
21 #include "gpu/command_buffer/service/renderbuffer_manager.h" 20 #include "gpu/command_buffer/service/renderbuffer_manager.h"
22 #include "gpu/command_buffer/service/sampler_manager.h" 21 #include "gpu/command_buffer/service/sampler_manager.h"
23 #include "gpu/command_buffer/service/shader_manager.h" 22 #include "gpu/command_buffer/service/shader_manager.h"
24 #include "gpu/command_buffer/service/texture_manager.h" 23 #include "gpu/command_buffer/service/texture_manager.h"
25 #include "gpu/command_buffer/service/transfer_buffer_manager.h" 24 #include "gpu/command_buffer/service/transfer_buffer_manager.h"
26 #include "gpu/command_buffer/service/valuebuffer_manager.h"
27 #include "ui/gl/gl_bindings.h" 25 #include "ui/gl/gl_bindings.h"
28 #include "ui/gl/gl_version_info.h" 26 #include "ui/gl/gl_version_info.h"
29 27
30 namespace gpu { 28 namespace gpu {
31 namespace gles2 { 29 namespace gles2 {
32 30
33 namespace { 31 namespace {
34 32
35 void GetIntegerv(GLenum pname, uint32_t* var) { 33 void GetIntegerv(GLenum pname, uint32_t* var) {
36 GLint value = 0; 34 GLint value = 0;
(...skipping 21 matching lines...) Expand all
58 } // namespace anonymous 56 } // namespace anonymous
59 57
60 ContextGroup::ContextGroup( 58 ContextGroup::ContextGroup(
61 const GpuPreferences& gpu_preferences, 59 const GpuPreferences& gpu_preferences,
62 const scoped_refptr<MailboxManager>& mailbox_manager, 60 const scoped_refptr<MailboxManager>& mailbox_manager,
63 const scoped_refptr<MemoryTracker>& memory_tracker, 61 const scoped_refptr<MemoryTracker>& memory_tracker,
64 const scoped_refptr<ShaderTranslatorCache>& shader_translator_cache, 62 const scoped_refptr<ShaderTranslatorCache>& shader_translator_cache,
65 const scoped_refptr<FramebufferCompletenessCache>& 63 const scoped_refptr<FramebufferCompletenessCache>&
66 framebuffer_completeness_cache, 64 framebuffer_completeness_cache,
67 const scoped_refptr<FeatureInfo>& feature_info, 65 const scoped_refptr<FeatureInfo>& feature_info,
68 const scoped_refptr<SubscriptionRefSet>& subscription_ref_set,
69 const scoped_refptr<ValueStateMap>& pending_valuebuffer_state,
70 bool bind_generates_resource) 66 bool bind_generates_resource)
71 : gpu_preferences_(gpu_preferences), 67 : gpu_preferences_(gpu_preferences),
72 mailbox_manager_(mailbox_manager), 68 mailbox_manager_(mailbox_manager),
73 memory_tracker_(memory_tracker), 69 memory_tracker_(memory_tracker),
74 shader_translator_cache_(shader_translator_cache), 70 shader_translator_cache_(shader_translator_cache),
75 #if defined(OS_MACOSX) 71 #if defined(OS_MACOSX)
76 // Framebuffer completeness is not cacheable on OS X because of dynamic 72 // Framebuffer completeness is not cacheable on OS X because of dynamic
77 // graphics switching. 73 // graphics switching.
78 // http://crbug.com/180876 74 // http://crbug.com/180876
79 // TODO(tobiasjs): determine whether GPU switching is possible 75 // TODO(tobiasjs): determine whether GPU switching is possible
80 // programmatically, rather than just hardcoding this behaviour 76 // programmatically, rather than just hardcoding this behaviour
81 // for OS X. 77 // for OS X.
82 framebuffer_completeness_cache_(NULL), 78 framebuffer_completeness_cache_(NULL),
83 #else 79 #else
84 framebuffer_completeness_cache_(framebuffer_completeness_cache), 80 framebuffer_completeness_cache_(framebuffer_completeness_cache),
85 #endif 81 #endif
86 subscription_ref_set_(subscription_ref_set),
87 pending_valuebuffer_state_(pending_valuebuffer_state),
88 enforce_gl_minimums_(gpu_preferences_.enforce_gl_minimums), 82 enforce_gl_minimums_(gpu_preferences_.enforce_gl_minimums),
89 bind_generates_resource_(bind_generates_resource), 83 bind_generates_resource_(bind_generates_resource),
90 max_vertex_attribs_(0u), 84 max_vertex_attribs_(0u),
91 max_texture_units_(0u), 85 max_texture_units_(0u),
92 max_texture_image_units_(0u), 86 max_texture_image_units_(0u),
93 max_vertex_texture_image_units_(0u), 87 max_vertex_texture_image_units_(0u),
94 max_fragment_uniform_vectors_(0u), 88 max_fragment_uniform_vectors_(0u),
95 max_varying_vectors_(0u), 89 max_varying_vectors_(0u),
96 max_vertex_uniform_vectors_(0u), 90 max_vertex_uniform_vectors_(0u),
97 max_color_attachments_(1u), 91 max_color_attachments_(1u),
98 max_draw_buffers_(1u), 92 max_draw_buffers_(1u),
99 max_dual_source_draw_buffers_(0u), 93 max_dual_source_draw_buffers_(0u),
100 max_vertex_output_components_(0u), 94 max_vertex_output_components_(0u),
101 max_fragment_input_components_(0u), 95 max_fragment_input_components_(0u),
102 min_program_texel_offset_(0), 96 min_program_texel_offset_(0),
103 max_program_texel_offset_(0), 97 max_program_texel_offset_(0),
104 program_cache_(NULL), 98 program_cache_(NULL),
105 feature_info_(feature_info) { 99 feature_info_(feature_info) {
106 { 100 {
107 DCHECK(feature_info_); 101 DCHECK(feature_info_);
108 if (!mailbox_manager_.get()) 102 if (!mailbox_manager_.get())
109 mailbox_manager_ = new MailboxManagerImpl; 103 mailbox_manager_ = new MailboxManagerImpl;
110 if (!subscription_ref_set_.get())
111 subscription_ref_set_ = new SubscriptionRefSet();
112 if (!pending_valuebuffer_state_.get())
113 pending_valuebuffer_state_ = new ValueStateMap();
114 transfer_buffer_manager_ = new TransferBufferManager(memory_tracker_.get()); 104 transfer_buffer_manager_ = new TransferBufferManager(memory_tracker_.get());
115 } 105 }
116 } 106 }
117 107
118 bool ContextGroup::Initialize(GLES2Decoder* decoder, 108 bool ContextGroup::Initialize(GLES2Decoder* decoder,
119 ContextType context_type, 109 ContextType context_type,
120 const DisallowedFeatures& disallowed_features) { 110 const DisallowedFeatures& disallowed_features) {
121 if (HaveContexts()) { 111 if (HaveContexts()) {
122 if (context_type != feature_info_->context_type()) { 112 if (context_type != feature_info_->context_type()) {
123 LOG(ERROR) << "ContextGroup::Initialize failed because the type of " 113 LOG(ERROR) << "ContextGroup::Initialize failed because the type of "
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 buffer_manager_.reset( 168 buffer_manager_.reset(
179 new BufferManager(memory_tracker_.get(), feature_info_.get())); 169 new BufferManager(memory_tracker_.get(), feature_info_.get()));
180 framebuffer_manager_.reset(new FramebufferManager( 170 framebuffer_manager_.reset(new FramebufferManager(
181 max_draw_buffers_, max_color_attachments_, feature_info_->context_type(), 171 max_draw_buffers_, max_color_attachments_, feature_info_->context_type(),
182 framebuffer_completeness_cache_)); 172 framebuffer_completeness_cache_));
183 renderbuffer_manager_.reset(new RenderbufferManager( 173 renderbuffer_manager_.reset(new RenderbufferManager(
184 memory_tracker_.get(), max_renderbuffer_size, max_samples, 174 memory_tracker_.get(), max_renderbuffer_size, max_samples,
185 feature_info_.get())); 175 feature_info_.get()));
186 shader_manager_.reset(new ShaderManager()); 176 shader_manager_.reset(new ShaderManager());
187 sampler_manager_.reset(new SamplerManager(feature_info_.get())); 177 sampler_manager_.reset(new SamplerManager(feature_info_.get()));
188 valuebuffer_manager_.reset(
189 new ValuebufferManager(subscription_ref_set_.get(),
190 pending_valuebuffer_state_.get()));
191 178
192 // Lookup GL things we need to know. 179 // Lookup GL things we need to know.
193 const GLint kGLES2RequiredMinimumVertexAttribs = 8u; 180 const GLint kGLES2RequiredMinimumVertexAttribs = 8u;
194 if (!QueryGLFeatureU( 181 if (!QueryGLFeatureU(
195 GL_MAX_VERTEX_ATTRIBS, kGLES2RequiredMinimumVertexAttribs, 182 GL_MAX_VERTEX_ATTRIBS, kGLES2RequiredMinimumVertexAttribs,
196 &max_vertex_attribs_)) { 183 &max_vertex_attribs_)) {
197 LOG(ERROR) << "ContextGroup::Initialize failed because too few " 184 LOG(ERROR) << "ContextGroup::Initialize failed because too few "
198 << "vertex attributes supported (" << max_vertex_attribs_ 185 << "vertex attributes supported (" << max_vertex_attribs_
199 << ", should be " << kGLES2RequiredMinimumVertexAttribs << ")."; 186 << ", should be " << kGLES2RequiredMinimumVertexAttribs << ").";
200 return false; 187 return false;
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 if (shader_manager_ != NULL) { 474 if (shader_manager_ != NULL) {
488 shader_manager_->Destroy(have_context); 475 shader_manager_->Destroy(have_context);
489 shader_manager_.reset(); 476 shader_manager_.reset();
490 } 477 }
491 478
492 if (sampler_manager_ != NULL) { 479 if (sampler_manager_ != NULL) {
493 sampler_manager_->Destroy(have_context); 480 sampler_manager_->Destroy(have_context);
494 sampler_manager_.reset(); 481 sampler_manager_.reset();
495 } 482 }
496 483
497 if (valuebuffer_manager_ != NULL) {
498 valuebuffer_manager_->Destroy();
499 valuebuffer_manager_.reset();
500 }
501
502 memory_tracker_ = NULL; 484 memory_tracker_ = NULL;
503 } 485 }
504 486
505 uint32_t ContextGroup::GetMemRepresented() const { 487 uint32_t ContextGroup::GetMemRepresented() const {
506 uint32_t total = 0; 488 uint32_t total = 0;
507 if (buffer_manager_.get()) 489 if (buffer_manager_.get())
508 total += buffer_manager_->mem_represented(); 490 total += buffer_manager_->mem_represented();
509 if (renderbuffer_manager_.get()) 491 if (renderbuffer_manager_.get())
510 total += renderbuffer_manager_->mem_represented(); 492 total += renderbuffer_manager_->mem_represented();
511 if (texture_manager_.get()) 493 if (texture_manager_.get())
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 GLuint client_id, GLuint* service_id) const { 547 GLuint client_id, GLuint* service_id) const {
566 Buffer* buffer = buffer_manager_->GetBuffer(client_id); 548 Buffer* buffer = buffer_manager_->GetBuffer(client_id);
567 if (!buffer) 549 if (!buffer)
568 return false; 550 return false;
569 *service_id = buffer->service_id(); 551 *service_id = buffer->service_id();
570 return true; 552 return true;
571 } 553 }
572 554
573 } // namespace gles2 555 } // namespace gles2
574 } // namespace gpu 556 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/context_group.h ('k') | gpu/command_buffer/service/context_group_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698