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

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

Issue 780133002: Add optimization for CHROMIUM_subscribe_uniform extension. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: piman@ review 3 Created 6 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 14 matching lines...) Expand all
25 #include "ui/gl/gl_implementation.h" 25 #include "ui/gl/gl_implementation.h"
26 26
27 namespace gpu { 27 namespace gpu {
28 namespace gles2 { 28 namespace gles2 {
29 29
30 ContextGroup::ContextGroup( 30 ContextGroup::ContextGroup(
31 const scoped_refptr<MailboxManager>& mailbox_manager, 31 const scoped_refptr<MailboxManager>& mailbox_manager,
32 const scoped_refptr<MemoryTracker>& memory_tracker, 32 const scoped_refptr<MemoryTracker>& memory_tracker,
33 const scoped_refptr<ShaderTranslatorCache>& shader_translator_cache, 33 const scoped_refptr<ShaderTranslatorCache>& shader_translator_cache,
34 const scoped_refptr<FeatureInfo>& feature_info, 34 const scoped_refptr<FeatureInfo>& feature_info,
35 const scoped_refptr<SubscriptionRefSet>& subscription_ref_set,
35 const scoped_refptr<ValueStateMap>& pending_valuebuffer_state, 36 const scoped_refptr<ValueStateMap>& pending_valuebuffer_state,
36 bool bind_generates_resource) 37 bool bind_generates_resource)
37 : mailbox_manager_(mailbox_manager), 38 : mailbox_manager_(mailbox_manager),
38 memory_tracker_(memory_tracker), 39 memory_tracker_(memory_tracker),
39 shader_translator_cache_(shader_translator_cache), 40 shader_translator_cache_(shader_translator_cache),
41 subscription_ref_set_(subscription_ref_set),
40 pending_valuebuffer_state_(pending_valuebuffer_state), 42 pending_valuebuffer_state_(pending_valuebuffer_state),
41 enforce_gl_minimums_(CommandLine::ForCurrentProcess()->HasSwitch( 43 enforce_gl_minimums_(CommandLine::ForCurrentProcess()->HasSwitch(
42 switches::kEnforceGLMinimums)), 44 switches::kEnforceGLMinimums)),
43 bind_generates_resource_(bind_generates_resource), 45 bind_generates_resource_(bind_generates_resource),
44 max_vertex_attribs_(0u), 46 max_vertex_attribs_(0u),
45 max_texture_units_(0u), 47 max_texture_units_(0u),
46 max_texture_image_units_(0u), 48 max_texture_image_units_(0u),
47 max_vertex_texture_image_units_(0u), 49 max_vertex_texture_image_units_(0u),
48 max_fragment_uniform_vectors_(0u), 50 max_fragment_uniform_vectors_(0u),
49 max_varying_vectors_(0u), 51 max_varying_vectors_(0u),
50 max_vertex_uniform_vectors_(0u), 52 max_vertex_uniform_vectors_(0u),
51 max_color_attachments_(1u), 53 max_color_attachments_(1u),
52 max_draw_buffers_(1u), 54 max_draw_buffers_(1u),
53 program_cache_(NULL), 55 program_cache_(NULL),
54 feature_info_(feature_info), 56 feature_info_(feature_info),
55 draw_buffer_(GL_BACK) { 57 draw_buffer_(GL_BACK) {
56 { 58 {
57 if (!mailbox_manager_.get()) 59 if (!mailbox_manager_.get())
58 mailbox_manager_ = new MailboxManagerImpl; 60 mailbox_manager_ = new MailboxManagerImpl;
61 if (!subscription_ref_set_.get())
62 subscription_ref_set_ = new SubscriptionRefSet();
59 if (!pending_valuebuffer_state_.get()) 63 if (!pending_valuebuffer_state_.get())
60 pending_valuebuffer_state_ = new ValueStateMap(); 64 pending_valuebuffer_state_ = new ValueStateMap();
61 if (!feature_info.get()) 65 if (!feature_info.get())
62 feature_info_ = new FeatureInfo; 66 feature_info_ = new FeatureInfo;
63 TransferBufferManager* manager = new TransferBufferManager(); 67 TransferBufferManager* manager = new TransferBufferManager();
64 transfer_buffer_manager_.reset(manager); 68 transfer_buffer_manager_.reset(manager);
65 manager->Initialize(); 69 manager->Initialize();
66 } 70 }
67 } 71 }
68 72
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 125
122 buffer_manager_.reset( 126 buffer_manager_.reset(
123 new BufferManager(memory_tracker_.get(), feature_info_.get())); 127 new BufferManager(memory_tracker_.get(), feature_info_.get()));
124 framebuffer_manager_.reset( 128 framebuffer_manager_.reset(
125 new FramebufferManager(max_draw_buffers_, max_color_attachments_)); 129 new FramebufferManager(max_draw_buffers_, max_color_attachments_));
126 renderbuffer_manager_.reset(new RenderbufferManager( 130 renderbuffer_manager_.reset(new RenderbufferManager(
127 memory_tracker_.get(), max_renderbuffer_size, max_samples, 131 memory_tracker_.get(), max_renderbuffer_size, max_samples,
128 depth24_supported)); 132 depth24_supported));
129 shader_manager_.reset(new ShaderManager()); 133 shader_manager_.reset(new ShaderManager());
130 valuebuffer_manager_.reset( 134 valuebuffer_manager_.reset(
131 new ValuebufferManager(pending_valuebuffer_state_.get())); 135 new ValuebufferManager(subscription_ref_set_.get(),
136 pending_valuebuffer_state_.get()));
132 137
133 // Lookup GL things we need to know. 138 // Lookup GL things we need to know.
134 const GLint kGLES2RequiredMinimumVertexAttribs = 8u; 139 const GLint kGLES2RequiredMinimumVertexAttribs = 8u;
135 if (!QueryGLFeatureU( 140 if (!QueryGLFeatureU(
136 GL_MAX_VERTEX_ATTRIBS, kGLES2RequiredMinimumVertexAttribs, 141 GL_MAX_VERTEX_ATTRIBS, kGLES2RequiredMinimumVertexAttribs,
137 &max_vertex_attribs_)) { 142 &max_vertex_attribs_)) {
138 LOG(ERROR) << "ContextGroup::Initialize failed because too few " 143 LOG(ERROR) << "ContextGroup::Initialize failed because too few "
139 << "vertex attributes supported."; 144 << "vertex attributes supported.";
140 return false; 145 return false;
141 } 146 }
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 GLenum pname, GLint min_required, uint32* v) { 388 GLenum pname, GLint min_required, uint32* v) {
384 uint32 value = 0; 389 uint32 value = 0;
385 GetIntegerv(pname, &value); 390 GetIntegerv(pname, &value);
386 bool result = CheckGLFeatureU(min_required, &value); 391 bool result = CheckGLFeatureU(min_required, &value);
387 *v = value; 392 *v = value;
388 return result; 393 return result;
389 } 394 }
390 395
391 } // namespace gles2 396 } // namespace gles2
392 } // namespace gpu 397 } // 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