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

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

Issue 1716813002: Use GpuPreferences to avoid directly accessing switches in gpu related code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update Created 4 years, 10 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/in_process_command_buffer.h" 5 #include "gpu/command_buffer/service/in_process_command_buffer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <queue> 10 #include <queue>
(...skipping 10 matching lines...) Expand all
21 #include "base/numerics/safe_conversions.h" 21 #include "base/numerics/safe_conversions.h"
22 #include "base/sequence_checker.h" 22 #include "base/sequence_checker.h"
23 #include "base/single_thread_task_runner.h" 23 #include "base/single_thread_task_runner.h"
24 #include "base/thread_task_runner_handle.h" 24 #include "base/thread_task_runner_handle.h"
25 #include "gpu/command_buffer/client/gpu_memory_buffer_manager.h" 25 #include "gpu/command_buffer/client/gpu_memory_buffer_manager.h"
26 #include "gpu/command_buffer/common/sync_token.h" 26 #include "gpu/command_buffer/common/sync_token.h"
27 #include "gpu/command_buffer/common/value_state.h" 27 #include "gpu/command_buffer/common/value_state.h"
28 #include "gpu/command_buffer/service/command_buffer_service.h" 28 #include "gpu/command_buffer/service/command_buffer_service.h"
29 #include "gpu/command_buffer/service/context_group.h" 29 #include "gpu/command_buffer/service/context_group.h"
30 #include "gpu/command_buffer/service/gl_context_virtual.h" 30 #include "gpu/command_buffer/service/gl_context_virtual.h"
31 #include "gpu/command_buffer/service/gpu_preferences.h"
31 #include "gpu/command_buffer/service/gpu_scheduler.h" 32 #include "gpu/command_buffer/service/gpu_scheduler.h"
32 #include "gpu/command_buffer/service/gpu_switches.h"
33 #include "gpu/command_buffer/service/image_factory.h" 33 #include "gpu/command_buffer/service/image_factory.h"
34 #include "gpu/command_buffer/service/image_manager.h" 34 #include "gpu/command_buffer/service/image_manager.h"
35 #include "gpu/command_buffer/service/mailbox_manager.h" 35 #include "gpu/command_buffer/service/mailbox_manager.h"
36 #include "gpu/command_buffer/service/memory_program_cache.h" 36 #include "gpu/command_buffer/service/memory_program_cache.h"
37 #include "gpu/command_buffer/service/memory_tracking.h" 37 #include "gpu/command_buffer/service/memory_tracking.h"
38 #include "gpu/command_buffer/service/query_manager.h" 38 #include "gpu/command_buffer/service/query_manager.h"
39 #include "gpu/command_buffer/service/sync_point_manager.h" 39 #include "gpu/command_buffer/service/sync_point_manager.h"
40 #include "gpu/command_buffer/service/transfer_buffer_manager.h" 40 #include "gpu/command_buffer/service/transfer_buffer_manager.h"
41 #include "gpu/command_buffer/service/valuebuffer_manager.h" 41 #include "gpu/command_buffer/service/valuebuffer_manager.h"
42 #include "ui/gfx/geometry/size.h" 42 #include "ui/gfx/geometry/size.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 base::ThreadTaskRunnerHandle::IsSet(); 147 base::ThreadTaskRunnerHandle::IsSet();
148 return g_default_service.Get().gpu_thread; 148 return g_default_service.Get().gpu_thread;
149 } 149 }
150 150
151 } // anonyous namespace 151 } // anonyous namespace
152 152
153 InProcessCommandBuffer::Service::Service() {} 153 InProcessCommandBuffer::Service::Service() {}
154 154
155 InProcessCommandBuffer::Service::~Service() {} 155 InProcessCommandBuffer::Service::~Service() {}
156 156
157 const gpu::GpuPreferences&
158 InProcessCommandBuffer::Service::gpu_preferences() {
159 return gpu_preferences_;
160 }
161
157 scoped_refptr<gfx::GLShareGroup> 162 scoped_refptr<gfx::GLShareGroup>
158 InProcessCommandBuffer::Service::share_group() { 163 InProcessCommandBuffer::Service::share_group() {
159 if (!share_group_.get()) 164 if (!share_group_.get())
160 share_group_ = new gfx::GLShareGroup; 165 share_group_ = new gfx::GLShareGroup;
161 return share_group_; 166 return share_group_;
162 } 167 }
163 168
164 scoped_refptr<gles2::MailboxManager> 169 scoped_refptr<gles2::MailboxManager>
165 InProcessCommandBuffer::Service::mailbox_manager() { 170 InProcessCommandBuffer::Service::mailbox_manager() {
166 if (!mailbox_manager_.get()) { 171 if (!mailbox_manager_.get()) {
167 mailbox_manager_ = gles2::MailboxManager::Create(); 172 mailbox_manager_ = gles2::MailboxManager::Create(gpu_preferences());
168 } 173 }
169 return mailbox_manager_; 174 return mailbox_manager_;
170 } 175 }
171 176
172 scoped_refptr<gles2::SubscriptionRefSet> 177 scoped_refptr<gles2::SubscriptionRefSet>
173 InProcessCommandBuffer::Service::subscription_ref_set() { 178 InProcessCommandBuffer::Service::subscription_ref_set() {
174 if (!subscription_ref_set_.get()) { 179 if (!subscription_ref_set_.get()) {
175 subscription_ref_set_ = new gles2::SubscriptionRefSet(); 180 subscription_ref_set_ = new gles2::SubscriptionRefSet();
176 } 181 }
177 return subscription_ref_set_; 182 return subscription_ref_set_;
178 } 183 }
179 184
180 scoped_refptr<ValueStateMap> 185 scoped_refptr<ValueStateMap>
181 InProcessCommandBuffer::Service::pending_valuebuffer_state() { 186 InProcessCommandBuffer::Service::pending_valuebuffer_state() {
182 if (!pending_valuebuffer_state_.get()) { 187 if (!pending_valuebuffer_state_.get()) {
183 pending_valuebuffer_state_ = new ValueStateMap(); 188 pending_valuebuffer_state_ = new ValueStateMap();
184 } 189 }
185 return pending_valuebuffer_state_; 190 return pending_valuebuffer_state_;
186 } 191 }
187 192
188 gpu::gles2::ProgramCache* InProcessCommandBuffer::Service::program_cache() { 193 gpu::gles2::ProgramCache* InProcessCommandBuffer::Service::program_cache() {
189 if (!program_cache_.get() && 194 if (!program_cache_.get() &&
190 (gfx::g_driver_gl.ext.b_GL_ARB_get_program_binary || 195 (gfx::g_driver_gl.ext.b_GL_ARB_get_program_binary ||
191 gfx::g_driver_gl.ext.b_GL_OES_get_program_binary) && 196 gfx::g_driver_gl.ext.b_GL_OES_get_program_binary) &&
192 !base::CommandLine::ForCurrentProcess()->HasSwitch( 197 !gpu_preferences().disable_gpu_program_cache) {
193 switches::kDisableGpuProgramCache)) { 198 program_cache_.reset(new gpu::gles2::MemoryProgramCache(
194 program_cache_.reset(new gpu::gles2::MemoryProgramCache()); 199 gpu_preferences().gpu_program_cache_size,
200 gpu_preferences().disable_gpu_shader_disk_cache));
195 } 201 }
196 return program_cache_.get(); 202 return program_cache_.get();
197 } 203 }
198 204
199 InProcessCommandBuffer::InProcessCommandBuffer( 205 InProcessCommandBuffer::InProcessCommandBuffer(
200 const scoped_refptr<Service>& service) 206 const scoped_refptr<Service>& service)
201 : command_buffer_id_( 207 : command_buffer_id_(
202 CommandBufferId::FromUnsafeValue(g_next_command_buffer_id.GetNext())), 208 CommandBufferId::FromUnsafeValue(g_next_command_buffer_id.GetNext())),
203 context_lost_(false), 209 context_lost_(false),
204 delayed_work_pending_(false), 210 delayed_work_pending_(false),
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 : service_->share_group(); 335 : service_->share_group();
330 336
331 #if defined(OS_ANDROID) 337 #if defined(OS_ANDROID)
332 stream_texture_manager_.reset(new StreamTextureManagerInProcess); 338 stream_texture_manager_.reset(new StreamTextureManagerInProcess);
333 #endif 339 #endif
334 340
335 bool bind_generates_resource = false; 341 bool bind_generates_resource = false;
336 decoder_.reset(gles2::GLES2Decoder::Create( 342 decoder_.reset(gles2::GLES2Decoder::Create(
337 params.context_group 343 params.context_group
338 ? params.context_group->decoder_->GetContextGroup() 344 ? params.context_group->decoder_->GetContextGroup()
339 : new gles2::ContextGroup(service_->mailbox_manager(), NULL, 345 : new gles2::ContextGroup(service_->gpu_preferences(),
346 service_->mailbox_manager(), NULL,
340 service_->shader_translator_cache(), 347 service_->shader_translator_cache(),
341 service_->framebuffer_completeness_cache(), 348 service_->framebuffer_completeness_cache(),
342 NULL, service_->subscription_ref_set(), 349 NULL, service_->subscription_ref_set(),
343 service_->pending_valuebuffer_state(), 350 service_->pending_valuebuffer_state(),
344 bind_generates_resource))); 351 bind_generates_resource)));
345 352
346 gpu_scheduler_.reset( 353 gpu_scheduler_.reset(
347 new GpuScheduler(command_buffer.get(), decoder_.get(), decoder_.get())); 354 new GpuScheduler(command_buffer.get(), decoder_.get(), decoder_.get()));
348 command_buffer->SetGetBufferChangeCallback(base::Bind( 355 command_buffer->SetGetBufferChangeCallback(base::Bind(
349 &GpuScheduler::SetGetBuffer, base::Unretained(gpu_scheduler_.get()))); 356 &GpuScheduler::SetGetBuffer, base::Unretained(gpu_scheduler_.get())));
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after
1063 task_runner()->PostDelayedTask(FROM_HERE, callback, 1070 task_runner()->PostDelayedTask(FROM_HERE, callback,
1064 base::TimeDelta::FromMilliseconds(2)); 1071 base::TimeDelta::FromMilliseconds(2));
1065 } 1072 }
1066 1073
1067 bool GpuInProcessThread::UseVirtualizedGLContexts() { 1074 bool GpuInProcessThread::UseVirtualizedGLContexts() {
1068 return false; 1075 return false;
1069 } 1076 }
1070 1077
1071 scoped_refptr<gles2::ShaderTranslatorCache> 1078 scoped_refptr<gles2::ShaderTranslatorCache>
1072 GpuInProcessThread::shader_translator_cache() { 1079 GpuInProcessThread::shader_translator_cache() {
1073 if (!shader_translator_cache_.get()) 1080 if (!shader_translator_cache_.get()) {
1074 shader_translator_cache_ = new gpu::gles2::ShaderTranslatorCache; 1081 shader_translator_cache_ =
1082 new gpu::gles2::ShaderTranslatorCache(gpu_preferences());
1083 }
1075 return shader_translator_cache_; 1084 return shader_translator_cache_;
1076 } 1085 }
1077 1086
1078 scoped_refptr<gles2::FramebufferCompletenessCache> 1087 scoped_refptr<gles2::FramebufferCompletenessCache>
1079 GpuInProcessThread::framebuffer_completeness_cache() { 1088 GpuInProcessThread::framebuffer_completeness_cache() {
1080 if (!framebuffer_completeness_cache_.get()) 1089 if (!framebuffer_completeness_cache_.get())
1081 framebuffer_completeness_cache_ = 1090 framebuffer_completeness_cache_ =
1082 new gpu::gles2::FramebufferCompletenessCache; 1091 new gpu::gles2::FramebufferCompletenessCache;
1083 return framebuffer_completeness_cache_; 1092 return framebuffer_completeness_cache_;
1084 } 1093 }
1085 1094
1086 SyncPointManager* GpuInProcessThread::sync_point_manager() { 1095 SyncPointManager* GpuInProcessThread::sync_point_manager() {
1087 return sync_point_manager_; 1096 return sync_point_manager_;
1088 } 1097 }
1089 1098
1090 } // namespace gpu 1099 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698