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 "gpu/ipc/service/gpu_command_buffer_stub.h" | 5 #include "gpu/ipc/service/gpu_command_buffer_stub.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 } | 287 } |
288 | 288 |
289 // Always use IPC_MESSAGE_HANDLER_DELAY_REPLY for synchronous message handlers | 289 // Always use IPC_MESSAGE_HANDLER_DELAY_REPLY for synchronous message handlers |
290 // here. This is so the reply can be delayed if the scheduler is unscheduled. | 290 // here. This is so the reply can be delayed if the scheduler is unscheduled. |
291 bool handled = true; | 291 bool handled = true; |
292 IPC_BEGIN_MESSAGE_MAP(GpuCommandBufferStub, message) | 292 IPC_BEGIN_MESSAGE_MAP(GpuCommandBufferStub, message) |
293 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_Initialize, | 293 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_Initialize, |
294 OnInitialize); | 294 OnInitialize); |
295 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_SetGetBuffer, | 295 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_SetGetBuffer, |
296 OnSetGetBuffer); | 296 OnSetGetBuffer); |
297 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_TakeFrontBuffer, OnTakeFrontBuffer); | 297 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_ProduceFrontBuffer, |
298 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_ReturnFrontBuffer, | 298 OnProduceFrontBuffer); |
299 OnReturnFrontBuffer); | |
300 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_WaitForTokenInRange, | 299 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_WaitForTokenInRange, |
301 OnWaitForTokenInRange); | 300 OnWaitForTokenInRange); |
302 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_WaitForGetOffsetInRange, | 301 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_WaitForGetOffsetInRange, |
303 OnWaitForGetOffsetInRange); | 302 OnWaitForGetOffsetInRange); |
304 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_AsyncFlush, OnAsyncFlush); | 303 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_AsyncFlush, OnAsyncFlush); |
305 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_RegisterTransferBuffer, | 304 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_RegisterTransferBuffer, |
306 OnRegisterTransferBuffer); | 305 OnRegisterTransferBuffer); |
307 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_DestroyTransferBuffer, | 306 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_DestroyTransferBuffer, |
308 OnDestroyTransferBuffer); | 307 OnDestroyTransferBuffer); |
309 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalSyncToken, | 308 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalSyncToken, |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
701 } | 700 } |
702 | 701 |
703 void GpuCommandBufferStub::OnSetGetBuffer(int32_t shm_id, | 702 void GpuCommandBufferStub::OnSetGetBuffer(int32_t shm_id, |
704 IPC::Message* reply_message) { | 703 IPC::Message* reply_message) { |
705 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnSetGetBuffer"); | 704 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnSetGetBuffer"); |
706 if (command_buffer_) | 705 if (command_buffer_) |
707 command_buffer_->SetGetBuffer(shm_id); | 706 command_buffer_->SetGetBuffer(shm_id); |
708 Send(reply_message); | 707 Send(reply_message); |
709 } | 708 } |
710 | 709 |
711 void GpuCommandBufferStub::OnTakeFrontBuffer(const Mailbox& mailbox) { | 710 void GpuCommandBufferStub::OnProduceFrontBuffer(const Mailbox& mailbox) { |
712 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnTakeFrontBuffer"); | 711 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnProduceFrontBuffer"); |
713 if (!decoder_) { | 712 if (!decoder_) { |
714 LOG(ERROR) << "Can't take front buffer before initialization."; | 713 LOG(ERROR) << "Can't produce front buffer before initialization."; |
715 return; | 714 return; |
716 } | 715 } |
717 | 716 |
718 decoder_->TakeFrontBuffer(mailbox); | 717 decoder_->ProduceFrontBuffer(mailbox); |
719 } | |
720 | |
721 void GpuCommandBufferStub::OnReturnFrontBuffer(const Mailbox& mailbox, | |
722 const SyncToken& sync_token, | |
723 bool is_lost) { | |
724 OnWaitFenceSync(sync_token.namespace_id(), sync_token.command_buffer_id(), | |
725 sync_token.release_count()); | |
726 decoder_->ReturnFrontBuffer(mailbox, is_lost); | |
727 } | 718 } |
728 | 719 |
729 void GpuCommandBufferStub::OnParseError() { | 720 void GpuCommandBufferStub::OnParseError() { |
730 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnParseError"); | 721 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnParseError"); |
731 DCHECK(command_buffer_.get()); | 722 DCHECK(command_buffer_.get()); |
732 CommandBuffer::State state = command_buffer_->GetLastState(); | 723 CommandBuffer::State state = command_buffer_->GetLastState(); |
733 IPC::Message* msg = new GpuCommandBufferMsg_Destroyed( | 724 IPC::Message* msg = new GpuCommandBufferMsg_Destroyed( |
734 route_id_, state.context_lost_reason, state.error); | 725 route_id_, state.context_lost_reason, state.error); |
735 msg->set_unblock(true); | 726 msg->set_unblock(true); |
736 Send(msg); | 727 Send(msg); |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1135 result)); | 1126 result)); |
1136 } | 1127 } |
1137 | 1128 |
1138 void GpuCommandBufferStub::SendUpdateVSyncParameters(base::TimeTicks timebase, | 1129 void GpuCommandBufferStub::SendUpdateVSyncParameters(base::TimeTicks timebase, |
1139 base::TimeDelta interval) { | 1130 base::TimeDelta interval) { |
1140 Send(new GpuCommandBufferMsg_UpdateVSyncParameters(route_id_, timebase, | 1131 Send(new GpuCommandBufferMsg_UpdateVSyncParameters(route_id_, timebase, |
1141 interval)); | 1132 interval)); |
1142 } | 1133 } |
1143 | 1134 |
1144 } // namespace gpu | 1135 } // namespace gpu |
OLD | NEW |