| Index: content/common/gpu/client/command_buffer_proxy_impl.cc
|
| diff --git a/content/common/gpu/client/command_buffer_proxy_impl.cc b/content/common/gpu/client/command_buffer_proxy_impl.cc
|
| index a0f67b3dedb55955c6cbb71f0bea71a06cc660b0..f25120c80d99422bbeb01073ae72e21efa3f7e02 100644
|
| --- a/content/common/gpu/client/command_buffer_proxy_impl.cc
|
| +++ b/content/common/gpu/client/command_buffer_proxy_impl.cc
|
| @@ -47,6 +47,8 @@ bool CommandBufferProxyImpl::OnMessageReceived(const IPC::Message& message) {
|
| OnSetMemoryAllocation);
|
| IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalSyncPointAck,
|
| OnSignalSyncPointAck);
|
| + IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SwapBuffersCompleted,
|
| + OnSwapBuffersCompleted);
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
|
|
| @@ -192,6 +194,11 @@ void CommandBufferProxyImpl::SetLatencyInfo(
|
| latency_info_.push_back(latency_info[i]);
|
| }
|
|
|
| +void CommandBufferProxyImpl::SetSwapBuffersCompletionCallback(
|
| + const SwapBuffersCompletionCallback& callback) {
|
| + swap_buffers_completion_callback_ = callback;
|
| +}
|
| +
|
| void CommandBufferProxyImpl::WaitForTokenInRange(int32 start, int32 end) {
|
| TRACE_EVENT2("gpu",
|
| "CommandBufferProxyImpl::WaitForToken",
|
| @@ -504,4 +511,16 @@ gpu::CommandBufferSharedState* CommandBufferProxyImpl::shared_state() const {
|
| shared_state_shm_->memory());
|
| }
|
|
|
| +void CommandBufferProxyImpl::OnSwapBuffersCompleted(
|
| + const std::vector<ui::LatencyInfo>& latency_info) {
|
| + if (!swap_buffers_completion_callback_.is_null()) {
|
| + if (!ui::LatencyInfo::Verify(
|
| + latency_info, "CommandBufferProxyImpl::OnSwapBuffersCompleted")) {
|
| + swap_buffers_completion_callback_.Run(std::vector<ui::LatencyInfo>());
|
| + return;
|
| + }
|
| + swap_buffers_completion_callback_.Run(latency_info);
|
| + }
|
| +}
|
| +
|
| } // namespace content
|
|
|