OLD | NEW |
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 <queue> | 7 #include <queue> |
8 #include <set> | 8 #include <set> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
183 g_sync_point_manager.Get().WaitSyncPoint(sync_point); | 183 g_sync_point_manager.Get().WaitSyncPoint(sync_point); |
184 return true; | 184 return true; |
185 } | 185 } |
186 | 186 |
187 } // anonyous namespace | 187 } // anonyous namespace |
188 | 188 |
189 InProcessCommandBuffer::Service::Service() {} | 189 InProcessCommandBuffer::Service::Service() {} |
190 | 190 |
191 InProcessCommandBuffer::Service::~Service() {} | 191 InProcessCommandBuffer::Service::~Service() {} |
192 | 192 |
| 193 scoped_refptr<gles2::MailboxManager> |
| 194 InProcessCommandBuffer::Service::mailbox_manager() { |
| 195 if (!mailbox_manager_.get()) |
| 196 mailbox_manager_ = new gles2::MailboxManager(); |
| 197 return mailbox_manager_; |
| 198 } |
| 199 |
193 scoped_refptr<InProcessCommandBuffer::Service> | 200 scoped_refptr<InProcessCommandBuffer::Service> |
194 InProcessCommandBuffer::GetDefaultService() { | 201 InProcessCommandBuffer::GetDefaultService() { |
195 base::AutoLock lock(default_thread_clients_lock_.Get()); | 202 base::AutoLock lock(default_thread_clients_lock_.Get()); |
196 scoped_refptr<Service> service; | 203 scoped_refptr<Service> service; |
197 if (!default_thread_clients_.Get().empty()) { | 204 if (!default_thread_clients_.Get().empty()) { |
198 InProcessCommandBuffer* other = *default_thread_clients_.Get().begin(); | 205 InProcessCommandBuffer* other = *default_thread_clients_.Get().begin(); |
199 service = other->service_; | 206 service = other->service_; |
200 DCHECK(service.get()); | 207 DCHECK(service.get()); |
201 } else { | 208 } else { |
202 service = new GpuInProcessThread; | 209 service = new GpuInProcessThread; |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 : new gfx::GLShareGroup; | 342 : new gfx::GLShareGroup; |
336 | 343 |
337 #if defined(OS_ANDROID) | 344 #if defined(OS_ANDROID) |
338 stream_texture_manager_.reset(new StreamTextureManagerInProcess); | 345 stream_texture_manager_.reset(new StreamTextureManagerInProcess); |
339 #endif | 346 #endif |
340 | 347 |
341 bool bind_generates_resource = false; | 348 bool bind_generates_resource = false; |
342 decoder_.reset(gles2::GLES2Decoder::Create( | 349 decoder_.reset(gles2::GLES2Decoder::Create( |
343 params.context_group | 350 params.context_group |
344 ? params.context_group->decoder_->GetContextGroup() | 351 ? params.context_group->decoder_->GetContextGroup() |
345 : new gles2::ContextGroup(NULL, | 352 : new gles2::ContextGroup(service_->mailbox_manager(), |
346 NULL, | 353 NULL, |
347 service_->shader_translator_cache(), | 354 service_->shader_translator_cache(), |
348 NULL, | 355 NULL, |
349 bind_generates_resource))); | 356 bind_generates_resource))); |
350 | 357 |
351 gpu_scheduler_.reset( | 358 gpu_scheduler_.reset( |
352 new GpuScheduler(command_buffer.get(), decoder_.get(), decoder_.get())); | 359 new GpuScheduler(command_buffer.get(), decoder_.get(), decoder_.get())); |
353 command_buffer->SetGetBufferChangeCallback(base::Bind( | 360 command_buffer->SetGetBufferChangeCallback(base::Bind( |
354 &GpuScheduler::SetGetBuffer, base::Unretained(gpu_scheduler_.get()))); | 361 &GpuScheduler::SetGetBuffer, base::Unretained(gpu_scheduler_.get()))); |
355 command_buffer_ = command_buffer.Pass(); | 362 command_buffer_ = command_buffer.Pass(); |
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 } | 849 } |
843 #endif | 850 #endif |
844 | 851 |
845 // static | 852 // static |
846 void InProcessCommandBuffer::SetGpuMemoryBufferFactory( | 853 void InProcessCommandBuffer::SetGpuMemoryBufferFactory( |
847 InProcessGpuMemoryBufferFactory* factory) { | 854 InProcessGpuMemoryBufferFactory* factory) { |
848 g_gpu_memory_buffer_factory = factory; | 855 g_gpu_memory_buffer_factory = factory; |
849 } | 856 } |
850 | 857 |
851 } // namespace gpu | 858 } // namespace gpu |
OLD | NEW |