| OLD | NEW |
| 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 "content/common/gpu/gpu_channel.h" | 5 #include "content/common/gpu/gpu_channel.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #endif | 9 #endif |
| 10 | 10 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 #include "base/strings/string_util.h" | 23 #include "base/strings/string_util.h" |
| 24 #include "base/synchronization/lock.h" | 24 #include "base/synchronization/lock.h" |
| 25 #include "base/thread_task_runner_handle.h" | 25 #include "base/thread_task_runner_handle.h" |
| 26 #include "base/timer/timer.h" | 26 #include "base/timer/timer.h" |
| 27 #include "base/trace_event/memory_dump_manager.h" | 27 #include "base/trace_event/memory_dump_manager.h" |
| 28 #include "base/trace_event/process_memory_dump.h" | 28 #include "base/trace_event/process_memory_dump.h" |
| 29 #include "base/trace_event/trace_event.h" | 29 #include "base/trace_event/trace_event.h" |
| 30 #include "content/common/gpu/gpu_channel_manager.h" | 30 #include "content/common/gpu/gpu_channel_manager.h" |
| 31 #include "content/common/gpu/gpu_memory_buffer_factory.h" | 31 #include "content/common/gpu/gpu_memory_buffer_factory.h" |
| 32 #include "content/common/gpu/gpu_messages.h" | 32 #include "content/common/gpu/gpu_messages.h" |
| 33 #include "content/common/gpu/media/gpu_arc_accelerator.h" |
| 33 #include "content/common/gpu/media/gpu_jpeg_decode_accelerator.h" | 34 #include "content/common/gpu/media/gpu_jpeg_decode_accelerator.h" |
| 34 #include "content/public/common/content_switches.h" | 35 #include "content/public/common/content_switches.h" |
| 35 #include "gpu/command_buffer/common/mailbox.h" | 36 #include "gpu/command_buffer/common/mailbox.h" |
| 36 #include "gpu/command_buffer/common/value_state.h" | 37 #include "gpu/command_buffer/common/value_state.h" |
| 37 #include "gpu/command_buffer/service/gpu_scheduler.h" | 38 #include "gpu/command_buffer/service/gpu_scheduler.h" |
| 38 #include "gpu/command_buffer/service/image_factory.h" | 39 #include "gpu/command_buffer/service/image_factory.h" |
| 39 #include "gpu/command_buffer/service/mailbox_manager.h" | 40 #include "gpu/command_buffer/service/mailbox_manager.h" |
| 40 #include "gpu/command_buffer/service/sync_point_manager.h" | 41 #include "gpu/command_buffer/service/sync_point_manager.h" |
| 41 #include "gpu/command_buffer/service/valuebuffer_manager.h" | 42 #include "gpu/command_buffer/service/valuebuffer_manager.h" |
| 42 #include "ipc/ipc_channel.h" | 43 #include "ipc/ipc_channel.h" |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 611 #if defined(OS_POSIX) | 612 #if defined(OS_POSIX) |
| 612 // On POSIX, pass the renderer-side FD. Also mark it as auto-close so | 613 // On POSIX, pass the renderer-side FD. Also mark it as auto-close so |
| 613 // that it gets closed after it has been sent. | 614 // that it gets closed after it has been sent. |
| 614 base::ScopedFD renderer_fd = channel_->TakeClientFileDescriptor(); | 615 base::ScopedFD renderer_fd = channel_->TakeClientFileDescriptor(); |
| 615 DCHECK(renderer_fd.is_valid()); | 616 DCHECK(renderer_fd.is_valid()); |
| 616 channel_handle.socket = base::FileDescriptor(renderer_fd.Pass()); | 617 channel_handle.socket = base::FileDescriptor(renderer_fd.Pass()); |
| 617 #endif | 618 #endif |
| 618 | 619 |
| 619 channel_->AddFilter(filter_.get()); | 620 channel_->AddFilter(filter_.get()); |
| 620 | 621 |
| 622 arc_accelerator_.reset( |
| 623 new GpuArcAccelerator(this, shutdown_event, io_task_runner_)); |
| 624 arc_accelerator_->Initialize(); |
| 625 |
| 621 return channel_handle; | 626 return channel_handle; |
| 622 } | 627 } |
| 623 | 628 |
| 624 base::ProcessId GpuChannel::GetClientPID() const { | 629 base::ProcessId GpuChannel::GetClientPID() const { |
| 625 return channel_->GetPeerPID(); | 630 return channel_->GetPeerPID(); |
| 626 } | 631 } |
| 627 | 632 |
| 628 uint32_t GpuChannel::GetProcessedOrderNum() const { | 633 uint32_t GpuChannel::GetProcessedOrderNum() const { |
| 629 return message_queue_->GetProcessedOrderNum(); | 634 return message_queue_->GetProcessedOrderNum(); |
| 630 } | 635 } |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 782 | 787 |
| 783 bool GpuChannel::OnControlMessageReceived(const IPC::Message& msg) { | 788 bool GpuChannel::OnControlMessageReceived(const IPC::Message& msg) { |
| 784 bool handled = true; | 789 bool handled = true; |
| 785 IPC_BEGIN_MESSAGE_MAP(GpuChannel, msg) | 790 IPC_BEGIN_MESSAGE_MAP(GpuChannel, msg) |
| 786 IPC_MESSAGE_HANDLER(GpuChannelMsg_CreateOffscreenCommandBuffer, | 791 IPC_MESSAGE_HANDLER(GpuChannelMsg_CreateOffscreenCommandBuffer, |
| 787 OnCreateOffscreenCommandBuffer) | 792 OnCreateOffscreenCommandBuffer) |
| 788 IPC_MESSAGE_HANDLER(GpuChannelMsg_DestroyCommandBuffer, | 793 IPC_MESSAGE_HANDLER(GpuChannelMsg_DestroyCommandBuffer, |
| 789 OnDestroyCommandBuffer) | 794 OnDestroyCommandBuffer) |
| 790 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuMsg_CreateJpegDecoder, | 795 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuMsg_CreateJpegDecoder, |
| 791 OnCreateJpegDecoder) | 796 OnCreateJpegDecoder) |
| 797 IPC_MESSAGE_HANDLER(GpuMsg_CreateArcAccelerator, OnCreateArcAccelerator) |
| 798 IPC_MESSAGE_HANDLER(GpuMsg_ShutdownArcAccelerators, |
| 799 OnShutdownArcAccelerators) |
| 792 IPC_MESSAGE_UNHANDLED(handled = false) | 800 IPC_MESSAGE_UNHANDLED(handled = false) |
| 793 IPC_END_MESSAGE_MAP() | 801 IPC_END_MESSAGE_MAP() |
| 794 DCHECK(handled) << msg.type(); | 802 DCHECK(handled) << msg.type(); |
| 795 return handled; | 803 return handled; |
| 796 } | 804 } |
| 797 | 805 |
| 798 scoped_refptr<gpu::SyncPointOrderData> GpuChannel::GetSyncPointOrderData() { | 806 scoped_refptr<gpu::SyncPointOrderData> GpuChannel::GetSyncPointOrderData() { |
| 799 return message_queue_->GetSyncPointOrderData(); | 807 return message_queue_->GetSyncPointOrderData(); |
| 800 } | 808 } |
| 801 | 809 |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 993 } | 1001 } |
| 994 } | 1002 } |
| 995 | 1003 |
| 996 void GpuChannel::OnCreateJpegDecoder(int32 route_id, IPC::Message* reply_msg) { | 1004 void GpuChannel::OnCreateJpegDecoder(int32 route_id, IPC::Message* reply_msg) { |
| 997 if (!jpeg_decoder_) { | 1005 if (!jpeg_decoder_) { |
| 998 jpeg_decoder_.reset(new GpuJpegDecodeAccelerator(this, io_task_runner_)); | 1006 jpeg_decoder_.reset(new GpuJpegDecodeAccelerator(this, io_task_runner_)); |
| 999 } | 1007 } |
| 1000 jpeg_decoder_->AddClient(route_id, reply_msg); | 1008 jpeg_decoder_->AddClient(route_id, reply_msg); |
| 1001 } | 1009 } |
| 1002 | 1010 |
| 1011 void GpuChannel::OnCreateArcAccelerator(uint32_t device_type) { |
| 1012 DCHECK(arc_accelerator_); |
| 1013 arc_accelerator_->CreateClient(device_type); |
| 1014 } |
| 1015 |
| 1016 void GpuChannel::OnShutdownArcAccelerators() { |
| 1017 arc_accelerator_.reset(); |
| 1018 } |
| 1019 |
| 1003 void GpuChannel::CacheShader(const std::string& key, | 1020 void GpuChannel::CacheShader(const std::string& key, |
| 1004 const std::string& shader) { | 1021 const std::string& shader) { |
| 1005 gpu_channel_manager_->Send( | 1022 gpu_channel_manager_->Send( |
| 1006 new GpuHostMsg_CacheShader(client_id_, key, shader)); | 1023 new GpuHostMsg_CacheShader(client_id_, key, shader)); |
| 1007 } | 1024 } |
| 1008 | 1025 |
| 1009 void GpuChannel::AddFilter(IPC::MessageFilter* filter) { | 1026 void GpuChannel::AddFilter(IPC::MessageFilter* filter) { |
| 1010 io_task_runner_->PostTask( | 1027 io_task_runner_->PostTask( |
| 1011 FROM_HERE, base::Bind(&GpuChannelMessageFilter::AddChannelFilter, | 1028 FROM_HERE, base::Bind(&GpuChannelMessageFilter::AddChannelFilter, |
| 1012 filter_, make_scoped_refptr(filter))); | 1029 filter_, make_scoped_refptr(filter))); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1067 } | 1084 } |
| 1068 } | 1085 } |
| 1069 } | 1086 } |
| 1070 | 1087 |
| 1071 void GpuChannel::HandleUpdateValueState( | 1088 void GpuChannel::HandleUpdateValueState( |
| 1072 unsigned int target, const gpu::ValueState& state) { | 1089 unsigned int target, const gpu::ValueState& state) { |
| 1073 pending_valuebuffer_state_->UpdateState(target, state); | 1090 pending_valuebuffer_state_->UpdateState(target, state); |
| 1074 } | 1091 } |
| 1075 | 1092 |
| 1076 } // namespace content | 1093 } // namespace content |
| OLD | NEW |