| 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/ipc/in_process_command_buffer.h" | 5 #include "gpu/ipc/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 23 matching lines...) Expand all Loading... |
| 34 #include "gpu/command_buffer/service/gpu_preferences.h" | 34 #include "gpu/command_buffer/service/gpu_preferences.h" |
| 35 #include "gpu/command_buffer/service/image_factory.h" | 35 #include "gpu/command_buffer/service/image_factory.h" |
| 36 #include "gpu/command_buffer/service/image_manager.h" | 36 #include "gpu/command_buffer/service/image_manager.h" |
| 37 #include "gpu/command_buffer/service/mailbox_manager.h" | 37 #include "gpu/command_buffer/service/mailbox_manager.h" |
| 38 #include "gpu/command_buffer/service/memory_program_cache.h" | 38 #include "gpu/command_buffer/service/memory_program_cache.h" |
| 39 #include "gpu/command_buffer/service/memory_tracking.h" | 39 #include "gpu/command_buffer/service/memory_tracking.h" |
| 40 #include "gpu/command_buffer/service/query_manager.h" | 40 #include "gpu/command_buffer/service/query_manager.h" |
| 41 #include "gpu/command_buffer/service/service_utils.h" | 41 #include "gpu/command_buffer/service/service_utils.h" |
| 42 #include "gpu/command_buffer/service/sync_point_manager.h" | 42 #include "gpu/command_buffer/service/sync_point_manager.h" |
| 43 #include "gpu/command_buffer/service/transfer_buffer_manager.h" | 43 #include "gpu/command_buffer/service/transfer_buffer_manager.h" |
| 44 #include "gpu/config/gpu_feature_info.h" |
| 44 #include "gpu/ipc/gpu_in_process_thread_service.h" | 45 #include "gpu/ipc/gpu_in_process_thread_service.h" |
| 45 #include "gpu/ipc/service/image_transport_surface.h" | 46 #include "gpu/ipc/service/image_transport_surface.h" |
| 46 #include "ui/gfx/geometry/size.h" | 47 #include "ui/gfx/geometry/size.h" |
| 47 #include "ui/gl/gl_context.h" | 48 #include "ui/gl/gl_context.h" |
| 48 #include "ui/gl/gl_image.h" | 49 #include "ui/gl/gl_image.h" |
| 49 #include "ui/gl/gl_image_shared_memory.h" | 50 #include "ui/gl/gl_image_shared_memory.h" |
| 50 #include "ui/gl/gl_share_group.h" | 51 #include "ui/gl/gl_share_group.h" |
| 51 #include "ui/gl/init/gl_factory.h" | 52 #include "ui/gl/init/gl_factory.h" |
| 52 | 53 |
| 53 #if defined(OS_WIN) | 54 #if defined(OS_WIN) |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 // delete the ThreadTaskRunnerHandle before the GPU thread's message loop, | 119 // delete the ThreadTaskRunnerHandle before the GPU thread's message loop, |
| 119 // and when the message loop is shutdown, it will recreate | 120 // and when the message loop is shutdown, it will recreate |
| 120 // ThreadTaskRunnerHandle, which will re-add a new task to the, AtExitManager, | 121 // ThreadTaskRunnerHandle, which will re-add a new task to the, AtExitManager, |
| 121 // which causes a deadlock because it's already locked. | 122 // which causes a deadlock because it's already locked. |
| 122 base::ThreadTaskRunnerHandle::IsSet(); | 123 base::ThreadTaskRunnerHandle::IsSet(); |
| 123 return g_default_service.Get().GetGpuThreadService(); | 124 return g_default_service.Get().GetGpuThreadService(); |
| 124 } | 125 } |
| 125 | 126 |
| 126 } // anonyous namespace | 127 } // anonyous namespace |
| 127 | 128 |
| 128 InProcessCommandBuffer::Service::Service() | |
| 129 : gpu_driver_bug_workarounds_(base::CommandLine::ForCurrentProcess()) {} | |
| 130 | |
| 131 InProcessCommandBuffer::Service::Service(const GpuPreferences& gpu_preferences) | 129 InProcessCommandBuffer::Service::Service(const GpuPreferences& gpu_preferences) |
| 132 : gpu_preferences_(gpu_preferences), | 130 : gpu_preferences_(gpu_preferences), |
| 133 gpu_driver_bug_workarounds_(base::CommandLine::ForCurrentProcess()) {} | 131 gpu_driver_bug_workarounds_(base::CommandLine::ForCurrentProcess()) {} |
| 134 | 132 |
| 135 InProcessCommandBuffer::Service::Service( | 133 InProcessCommandBuffer::Service::Service( |
| 136 gpu::gles2::MailboxManager* mailbox_manager, | 134 gpu::gles2::MailboxManager* mailbox_manager, |
| 137 scoped_refptr<gl::GLShareGroup> share_group) | 135 scoped_refptr<gl::GLShareGroup> share_group) |
| 138 : gpu_driver_bug_workarounds_(base::CommandLine::ForCurrentProcess()), | 136 : gpu_driver_bug_workarounds_(base::CommandLine::ForCurrentProcess()), |
| 139 mailbox_manager_(mailbox_manager), | 137 mailbox_manager_(mailbox_manager), |
| 140 share_group_(share_group) {} | 138 share_group_(share_group) {} |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 scoped_refptr<gles2::FeatureInfo> feature_info = | 308 scoped_refptr<gles2::FeatureInfo> feature_info = |
| 311 new gles2::FeatureInfo(service_->gpu_driver_bug_workarounds()); | 309 new gles2::FeatureInfo(service_->gpu_driver_bug_workarounds()); |
| 312 | 310 |
| 313 context_group_ = | 311 context_group_ = |
| 314 params.context_group | 312 params.context_group |
| 315 ? params.context_group->decoder_->GetContextGroup() | 313 ? params.context_group->decoder_->GetContextGroup() |
| 316 : new gles2::ContextGroup( | 314 : new gles2::ContextGroup( |
| 317 service_->gpu_preferences(), service_->mailbox_manager(), NULL, | 315 service_->gpu_preferences(), service_->mailbox_manager(), NULL, |
| 318 service_->shader_translator_cache(), | 316 service_->shader_translator_cache(), |
| 319 service_->framebuffer_completeness_cache(), feature_info, | 317 service_->framebuffer_completeness_cache(), feature_info, |
| 320 bind_generates_resource, nullptr, nullptr); | 318 bind_generates_resource, nullptr, nullptr, GpuFeatureInfo()); |
| 321 | 319 |
| 322 decoder_.reset(gles2::GLES2Decoder::Create(context_group_.get())); | 320 decoder_.reset(gles2::GLES2Decoder::Create(context_group_.get())); |
| 323 | 321 |
| 324 executor_.reset(new CommandExecutor(command_buffer.get(), decoder_.get(), | 322 executor_.reset(new CommandExecutor(command_buffer.get(), decoder_.get(), |
| 325 decoder_.get())); | 323 decoder_.get())); |
| 326 command_buffer->SetGetBufferChangeCallback(base::Bind( | 324 command_buffer->SetGetBufferChangeCallback(base::Bind( |
| 327 &CommandExecutor::SetGetBuffer, base::Unretained(executor_.get()))); | 325 &CommandExecutor::SetGetBuffer, base::Unretained(executor_.get()))); |
| 328 command_buffer_ = std::move(command_buffer); | 326 command_buffer_ = std::move(command_buffer); |
| 329 | 327 |
| 330 decoder_->set_engine(executor_.get()); | 328 decoder_->set_engine(executor_.get()); |
| (...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1168 return wrapped_callback; | 1166 return wrapped_callback; |
| 1169 } | 1167 } |
| 1170 | 1168 |
| 1171 InProcessCommandBuffer::GpuTask::GpuTask(const base::Closure& callback, | 1169 InProcessCommandBuffer::GpuTask::GpuTask(const base::Closure& callback, |
| 1172 uint32_t order_number) | 1170 uint32_t order_number) |
| 1173 : callback(callback), order_number(order_number) {} | 1171 : callback(callback), order_number(order_number) {} |
| 1174 | 1172 |
| 1175 InProcessCommandBuffer::GpuTask::~GpuTask() {} | 1173 InProcessCommandBuffer::GpuTask::~GpuTask() {} |
| 1176 | 1174 |
| 1177 } // namespace gpu | 1175 } // namespace gpu |
| OLD | NEW |