| 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_ProduceFrontBuffer, | 297 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_TakeFrontBuffer, OnTakeFrontBuffer); |
| 298 OnProduceFrontBuffer); | 298 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_ReturnFrontBuffer, |
| 299 OnReturnFrontBuffer); |
| 299 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_WaitForTokenInRange, | 300 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_WaitForTokenInRange, |
| 300 OnWaitForTokenInRange); | 301 OnWaitForTokenInRange); |
| 301 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_WaitForGetOffsetInRange, | 302 IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuCommandBufferMsg_WaitForGetOffsetInRange, |
| 302 OnWaitForGetOffsetInRange); | 303 OnWaitForGetOffsetInRange); |
| 303 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_AsyncFlush, OnAsyncFlush); | 304 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_AsyncFlush, OnAsyncFlush); |
| 304 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_RegisterTransferBuffer, | 305 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_RegisterTransferBuffer, |
| 305 OnRegisterTransferBuffer); | 306 OnRegisterTransferBuffer); |
| 306 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_DestroyTransferBuffer, | 307 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_DestroyTransferBuffer, |
| 307 OnDestroyTransferBuffer); | 308 OnDestroyTransferBuffer); |
| 308 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalSyncToken, | 309 IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalSyncToken, |
| (...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 700 } | 701 } |
| 701 | 702 |
| 702 void GpuCommandBufferStub::OnSetGetBuffer(int32_t shm_id, | 703 void GpuCommandBufferStub::OnSetGetBuffer(int32_t shm_id, |
| 703 IPC::Message* reply_message) { | 704 IPC::Message* reply_message) { |
| 704 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnSetGetBuffer"); | 705 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnSetGetBuffer"); |
| 705 if (command_buffer_) | 706 if (command_buffer_) |
| 706 command_buffer_->SetGetBuffer(shm_id); | 707 command_buffer_->SetGetBuffer(shm_id); |
| 707 Send(reply_message); | 708 Send(reply_message); |
| 708 } | 709 } |
| 709 | 710 |
| 710 void GpuCommandBufferStub::OnProduceFrontBuffer(const Mailbox& mailbox) { | 711 void GpuCommandBufferStub::OnTakeFrontBuffer(const Mailbox& mailbox) { |
| 711 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnProduceFrontBuffer"); | 712 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnTakeFrontBuffer"); |
| 712 if (!decoder_) { | 713 if (!decoder_) { |
| 713 LOG(ERROR) << "Can't produce front buffer before initialization."; | 714 LOG(ERROR) << "Can't take front buffer before initialization."; |
| 714 return; | 715 return; |
| 715 } | 716 } |
| 716 | 717 |
| 717 decoder_->ProduceFrontBuffer(mailbox); | 718 decoder_->TakeFrontBuffer(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); |
| 718 } | 727 } |
| 719 | 728 |
| 720 void GpuCommandBufferStub::OnParseError() { | 729 void GpuCommandBufferStub::OnParseError() { |
| 721 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnParseError"); | 730 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnParseError"); |
| 722 DCHECK(command_buffer_.get()); | 731 DCHECK(command_buffer_.get()); |
| 723 CommandBuffer::State state = command_buffer_->GetLastState(); | 732 CommandBuffer::State state = command_buffer_->GetLastState(); |
| 724 IPC::Message* msg = new GpuCommandBufferMsg_Destroyed( | 733 IPC::Message* msg = new GpuCommandBufferMsg_Destroyed( |
| 725 route_id_, state.context_lost_reason, state.error); | 734 route_id_, state.context_lost_reason, state.error); |
| 726 msg->set_unblock(true); | 735 msg->set_unblock(true); |
| 727 Send(msg); | 736 Send(msg); |
| (...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1126 result)); | 1135 result)); |
| 1127 } | 1136 } |
| 1128 | 1137 |
| 1129 void GpuCommandBufferStub::SendUpdateVSyncParameters(base::TimeTicks timebase, | 1138 void GpuCommandBufferStub::SendUpdateVSyncParameters(base::TimeTicks timebase, |
| 1130 base::TimeDelta interval) { | 1139 base::TimeDelta interval) { |
| 1131 Send(new GpuCommandBufferMsg_UpdateVSyncParameters(route_id_, timebase, | 1140 Send(new GpuCommandBufferMsg_UpdateVSyncParameters(route_id_, timebase, |
| 1132 interval)); | 1141 interval)); |
| 1133 } | 1142 } |
| 1134 | 1143 |
| 1135 } // namespace gpu | 1144 } // namespace gpu |
| OLD | NEW |