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 1075 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1086 if (mailbox_manager->UsesSync() && MakeCurrent()) | 1086 if (mailbox_manager->UsesSync() && MakeCurrent()) |
1087 mailbox_manager->PullTextureUpdates(sync_token); | 1087 mailbox_manager->PullTextureUpdates(sync_token); |
1088 return false; | 1088 return false; |
1089 } | 1089 } |
1090 | 1090 |
1091 void GpuCommandBufferStub::OnWaitSyncTokenCompleted( | 1091 void GpuCommandBufferStub::OnWaitSyncTokenCompleted( |
1092 const SyncToken& sync_token) { | 1092 const SyncToken& sync_token) { |
1093 DCHECK(waiting_for_sync_point_); | 1093 DCHECK(waiting_for_sync_point_); |
1094 TRACE_EVENT_ASYNC_END1("gpu", "WaitSyncTokenCompleted", this, | 1094 TRACE_EVENT_ASYNC_END1("gpu", "WaitSyncTokenCompleted", this, |
1095 "GpuCommandBufferStub", this); | 1095 "GpuCommandBufferStub", this); |
| 1096 // Don't call PullTextureUpdates here because we can't MakeCurrent if we're |
| 1097 // executing commands on another context. The WaitSyncToken command will run |
| 1098 // again and call PullTextureUpdates once this command buffer gets scheduled. |
1096 waiting_for_sync_point_ = false; | 1099 waiting_for_sync_point_ = false; |
1097 | |
1098 gles2::MailboxManager* mailbox_manager = context_group_->mailbox_manager(); | |
1099 if (mailbox_manager->UsesSync() && MakeCurrent()) | |
1100 mailbox_manager->PullTextureUpdates(sync_token); | |
1101 | |
1102 executor_->SetScheduled(true); | 1100 executor_->SetScheduled(true); |
1103 channel_->OnStreamRescheduled(stream_id_, true); | 1101 channel_->OnStreamRescheduled(stream_id_, true); |
1104 } | 1102 } |
1105 | 1103 |
1106 void GpuCommandBufferStub::OnCreateImage( | 1104 void GpuCommandBufferStub::OnCreateImage( |
1107 const GpuCommandBufferMsg_CreateImage_Params& params) { | 1105 const GpuCommandBufferMsg_CreateImage_Params& params) { |
1108 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnCreateImage"); | 1106 TRACE_EVENT0("gpu", "GpuCommandBufferStub::OnCreateImage"); |
1109 const int32_t id = params.id; | 1107 const int32_t id = params.id; |
1110 const gfx::GpuMemoryBufferHandle& handle = params.gpu_memory_buffer; | 1108 const gfx::GpuMemoryBufferHandle& handle = params.gpu_memory_buffer; |
1111 const gfx::Size& size = params.size; | 1109 const gfx::Size& size = params.size; |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1229 command_buffer_->GetLastState().error == error::kLostContext) | 1227 command_buffer_->GetLastState().error == error::kLostContext) |
1230 return; | 1228 return; |
1231 | 1229 |
1232 command_buffer_->SetContextLostReason(error::kUnknown); | 1230 command_buffer_->SetContextLostReason(error::kUnknown); |
1233 if (decoder_) | 1231 if (decoder_) |
1234 decoder_->MarkContextLost(error::kUnknown); | 1232 decoder_->MarkContextLost(error::kUnknown); |
1235 command_buffer_->SetParseError(error::kLostContext); | 1233 command_buffer_->SetParseError(error::kLostContext); |
1236 } | 1234 } |
1237 | 1235 |
1238 } // namespace gpu | 1236 } // namespace gpu |
OLD | NEW |