| 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 13 matching lines...) Expand all Loading... |
| 24 #include "gpu/command_buffer/service/gl_context_virtual.h" | 24 #include "gpu/command_buffer/service/gl_context_virtual.h" |
| 25 #include "gpu/command_buffer/service/gpu_scheduler.h" | 25 #include "gpu/command_buffer/service/gpu_scheduler.h" |
| 26 #include "gpu/command_buffer/service/gpu_switches.h" | 26 #include "gpu/command_buffer/service/gpu_switches.h" |
| 27 #include "gpu/command_buffer/service/image_factory.h" | 27 #include "gpu/command_buffer/service/image_factory.h" |
| 28 #include "gpu/command_buffer/service/image_manager.h" | 28 #include "gpu/command_buffer/service/image_manager.h" |
| 29 #include "gpu/command_buffer/service/mailbox_manager_impl.h" | 29 #include "gpu/command_buffer/service/mailbox_manager_impl.h" |
| 30 #include "gpu/command_buffer/service/mailbox_manager_sync.h" | 30 #include "gpu/command_buffer/service/mailbox_manager_sync.h" |
| 31 #include "gpu/command_buffer/service/memory_tracking.h" | 31 #include "gpu/command_buffer/service/memory_tracking.h" |
| 32 #include "gpu/command_buffer/service/query_manager.h" | 32 #include "gpu/command_buffer/service/query_manager.h" |
| 33 #include "gpu/command_buffer/service/transfer_buffer_manager.h" | 33 #include "gpu/command_buffer/service/transfer_buffer_manager.h" |
| 34 #include "gpu/command_buffer/service/valuebuffer_manager.h" |
| 34 #include "ui/gfx/size.h" | 35 #include "ui/gfx/size.h" |
| 35 #include "ui/gl/gl_context.h" | 36 #include "ui/gl/gl_context.h" |
| 36 #include "ui/gl/gl_image.h" | 37 #include "ui/gl/gl_image.h" |
| 37 #include "ui/gl/gl_share_group.h" | 38 #include "ui/gl/gl_share_group.h" |
| 38 | 39 |
| 39 #if defined(OS_ANDROID) | 40 #if defined(OS_ANDROID) |
| 40 #include "gpu/command_buffer/service/stream_texture_manager_in_process_android.h
" | 41 #include "gpu/command_buffer/service/stream_texture_manager_in_process_android.h
" |
| 41 #include "ui/gl/android/surface_texture.h" | 42 #include "ui/gl/android/surface_texture.h" |
| 42 #endif | 43 #endif |
| 43 | 44 |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 188 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 188 switches::kEnableThreadedTextureMailboxes)) { | 189 switches::kEnableThreadedTextureMailboxes)) { |
| 189 mailbox_manager_ = new gles2::MailboxManagerSync(); | 190 mailbox_manager_ = new gles2::MailboxManagerSync(); |
| 190 } else { | 191 } else { |
| 191 mailbox_manager_ = new gles2::MailboxManagerImpl(); | 192 mailbox_manager_ = new gles2::MailboxManagerImpl(); |
| 192 } | 193 } |
| 193 } | 194 } |
| 194 return mailbox_manager_; | 195 return mailbox_manager_; |
| 195 } | 196 } |
| 196 | 197 |
| 198 scoped_refptr<gles2::ValuebufferManager> |
| 199 InProcessCommandBuffer::Service::valuebuffer_manager() { |
| 200 if (!valuebuffer_manager_.get()) { |
| 201 valuebuffer_manager_ = new gles2::ValuebufferManager(); |
| 202 } |
| 203 return valuebuffer_manager_; |
| 204 } |
| 205 |
| 197 scoped_refptr<InProcessCommandBuffer::Service> | 206 scoped_refptr<InProcessCommandBuffer::Service> |
| 198 InProcessCommandBuffer::GetDefaultService() { | 207 InProcessCommandBuffer::GetDefaultService() { |
| 199 base::AutoLock lock(default_thread_clients_lock_.Get()); | 208 base::AutoLock lock(default_thread_clients_lock_.Get()); |
| 200 scoped_refptr<Service> service; | 209 scoped_refptr<Service> service; |
| 201 if (!default_thread_clients_.Get().empty()) { | 210 if (!default_thread_clients_.Get().empty()) { |
| 202 InProcessCommandBuffer* other = *default_thread_clients_.Get().begin(); | 211 InProcessCommandBuffer* other = *default_thread_clients_.Get().begin(); |
| 203 service = other->service_; | 212 service = other->service_; |
| 204 DCHECK(service.get()); | 213 DCHECK(service.get()); |
| 205 } else { | 214 } else { |
| 206 service = new GpuInProcessThread; | 215 service = new GpuInProcessThread; |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 348 | 357 |
| 349 #if defined(OS_ANDROID) | 358 #if defined(OS_ANDROID) |
| 350 stream_texture_manager_.reset(new StreamTextureManagerInProcess); | 359 stream_texture_manager_.reset(new StreamTextureManagerInProcess); |
| 351 #endif | 360 #endif |
| 352 | 361 |
| 353 bool bind_generates_resource = false; | 362 bool bind_generates_resource = false; |
| 354 decoder_.reset(gles2::GLES2Decoder::Create( | 363 decoder_.reset(gles2::GLES2Decoder::Create( |
| 355 params.context_group | 364 params.context_group |
| 356 ? params.context_group->decoder_->GetContextGroup() | 365 ? params.context_group->decoder_->GetContextGroup() |
| 357 : new gles2::ContextGroup(service_->mailbox_manager(), | 366 : new gles2::ContextGroup(service_->mailbox_manager(), |
| 367 service_->valuebuffer_manager(), |
| 358 NULL, | 368 NULL, |
| 359 service_->shader_translator_cache(), | 369 service_->shader_translator_cache(), |
| 360 NULL, | 370 NULL, |
| 361 bind_generates_resource))); | 371 bind_generates_resource))); |
| 362 | 372 |
| 363 gpu_scheduler_.reset( | 373 gpu_scheduler_.reset( |
| 364 new GpuScheduler(command_buffer.get(), decoder_.get(), decoder_.get())); | 374 new GpuScheduler(command_buffer.get(), decoder_.get(), decoder_.get())); |
| 365 command_buffer->SetGetBufferChangeCallback(base::Bind( | 375 command_buffer->SetGetBufferChangeCallback(base::Bind( |
| 366 &GpuScheduler::SetGetBuffer, base::Unretained(gpu_scheduler_.get()))); | 376 &GpuScheduler::SetGetBuffer, base::Unretained(gpu_scheduler_.get()))); |
| 367 command_buffer_ = command_buffer.Pass(); | 377 command_buffer_ = command_buffer.Pass(); |
| (...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 874 | 884 |
| 875 #if defined(OS_ANDROID) | 885 #if defined(OS_ANDROID) |
| 876 scoped_refptr<gfx::SurfaceTexture> | 886 scoped_refptr<gfx::SurfaceTexture> |
| 877 InProcessCommandBuffer::GetSurfaceTexture(uint32 stream_id) { | 887 InProcessCommandBuffer::GetSurfaceTexture(uint32 stream_id) { |
| 878 DCHECK(stream_texture_manager_); | 888 DCHECK(stream_texture_manager_); |
| 879 return stream_texture_manager_->GetSurfaceTexture(stream_id); | 889 return stream_texture_manager_->GetSurfaceTexture(stream_id); |
| 880 } | 890 } |
| 881 #endif | 891 #endif |
| 882 | 892 |
| 883 } // namespace gpu | 893 } // namespace gpu |
| OLD | NEW |