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/client/command_buffer_proxy_impl.h" | 5 #include "content/common/gpu/client/command_buffer_proxy_impl.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/process_util.h" | 10 #include "base/process_util.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 IPC_BEGIN_MESSAGE_MAP(CommandBufferProxyImpl, message) | 63 IPC_BEGIN_MESSAGE_MAP(CommandBufferProxyImpl, message) |
64 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_Destroyed, OnDestroyed); | 64 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_Destroyed, OnDestroyed); |
65 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_NotifyRepaint, | 65 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_NotifyRepaint, |
66 OnNotifyRepaint); | 66 OnNotifyRepaint); |
67 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_EchoAck, OnEchoAck); | 67 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_EchoAck, OnEchoAck); |
68 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_ConsoleMsg, OnConsoleMessage); | 68 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_ConsoleMsg, OnConsoleMessage); |
69 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SetMemoryAllocation, | 69 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SetMemoryAllocation, |
70 OnSetMemoryAllocation); | 70 OnSetMemoryAllocation); |
71 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalSyncPointAck, | 71 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalSyncPointAck, |
72 OnSignalSyncPointAck); | 72 OnSignalSyncPointAck); |
| 73 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SetLatencyInfo, |
| 74 OnSetLatencyInfo); |
73 IPC_MESSAGE_UNHANDLED(handled = false) | 75 IPC_MESSAGE_UNHANDLED(handled = false) |
74 IPC_END_MESSAGE_MAP() | 76 IPC_END_MESSAGE_MAP() |
75 | 77 |
76 DCHECK(handled); | 78 DCHECK(handled); |
77 return handled; | 79 return handled; |
78 } | 80 } |
79 | 81 |
80 void CommandBufferProxyImpl::OnChannelError() { | 82 void CommandBufferProxyImpl::OnChannelError() { |
81 OnDestroyed(gpu::error::kUnknown); | 83 OnDestroyed(gpu::error::kUnknown); |
82 } | 84 } |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 if (last_put_offset_ == put_offset) | 208 if (last_put_offset_ == put_offset) |
207 return; | 209 return; |
208 | 210 |
209 last_put_offset_ = put_offset; | 211 last_put_offset_ = put_offset; |
210 | 212 |
211 Send(new GpuCommandBufferMsg_AsyncFlush(route_id_, | 213 Send(new GpuCommandBufferMsg_AsyncFlush(route_id_, |
212 put_offset, | 214 put_offset, |
213 ++flush_count_)); | 215 ++flush_count_)); |
214 } | 216 } |
215 | 217 |
| 218 void CommandBufferProxyImpl::SetLatencyInfo( |
| 219 const WebKit::WebLatencyInfoImpl& latency_info) { |
| 220 Send(new GpuCommandBufferMsg_SetLatencyInfo(route_id_, latency_info)); |
| 221 } |
| 222 |
| 223 void CommandBufferProxyImpl::SetLatencyInfoCallback( |
| 224 const GpuLatencyInfoCallback& callback) { |
| 225 latency_info_callback_ = callback; |
| 226 } |
| 227 |
| 228 void CommandBufferProxyImpl::OnSetLatencyInfo( |
| 229 const WebKit::WebLatencyInfoImpl& latency_info) { |
| 230 if (!latency_info_callback_.is_null()) |
| 231 latency_info_callback_.Run(latency_info); |
| 232 } |
| 233 |
216 gpu::CommandBuffer::State CommandBufferProxyImpl::FlushSync( | 234 gpu::CommandBuffer::State CommandBufferProxyImpl::FlushSync( |
217 int32 put_offset, | 235 int32 put_offset, |
218 int32 last_known_get) { | 236 int32 last_known_get) { |
219 TRACE_EVENT1("gpu", "CommandBufferProxyImpl::FlushSync", "put_offset", | 237 TRACE_EVENT1("gpu", "CommandBufferProxyImpl::FlushSync", "put_offset", |
220 put_offset); | 238 put_offset); |
221 Flush(put_offset); | 239 Flush(put_offset); |
222 TryUpdateState(); | 240 TryUpdateState(); |
223 if (last_known_get == last_state_.get_offset) { | 241 if (last_known_get == last_state_.get_offset) { |
224 // Send will flag state with lost context if IPC fails. | 242 // Send will flag state with lost context if IPC fails. |
225 if (last_state_.error == gpu::error::kNoError) { | 243 if (last_state_.error == gpu::error::kNoError) { |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
574 void CommandBufferProxyImpl::SendManagedMemoryStats( | 592 void CommandBufferProxyImpl::SendManagedMemoryStats( |
575 const GpuManagedMemoryStats& stats) { | 593 const GpuManagedMemoryStats& stats) { |
576 if (last_state_.error != gpu::error::kNoError) | 594 if (last_state_.error != gpu::error::kNoError) |
577 return; | 595 return; |
578 | 596 |
579 Send(new GpuCommandBufferMsg_SendClientManagedMemoryStats(route_id_, | 597 Send(new GpuCommandBufferMsg_SendClientManagedMemoryStats(route_id_, |
580 stats)); | 598 stats)); |
581 } | 599 } |
582 | 600 |
583 } // namespace content | 601 } // namespace content |
OLD | NEW |