Index: content/common/gpu/gpu_command_buffer_stub.cc |
diff --git a/content/common/gpu/gpu_command_buffer_stub.cc b/content/common/gpu/gpu_command_buffer_stub.cc |
index 44eaf90cc85fb3634f118576f716f868d6d02ccf..181edc57825a2f89e435e74087a5e2518d2c32cc 100644 |
--- a/content/common/gpu/gpu_command_buffer_stub.cc |
+++ b/content/common/gpu/gpu_command_buffer_stub.cc |
@@ -768,13 +768,16 @@ void GpuCommandBufferStub::OnRetireSyncPoint(uint32 sync_point) { |
} |
bool GpuCommandBufferStub::OnWaitSyncPoint(uint32 sync_point) { |
+ GpuChannelManager* manager = channel_->gpu_channel_manager(); |
+ if (manager->sync_point_manager()->IsSyncPointRetired(sync_point)) |
+ return true; |
+ |
if (sync_point_wait_count_ == 0) { |
TRACE_EVENT_ASYNC_BEGIN1("gpu", "WaitSyncPoint", this, |
"GpuCommandBufferStub", this); |
} |
scheduler_->SetScheduled(false); |
++sync_point_wait_count_; |
- GpuChannelManager* manager = channel_->gpu_channel_manager(); |
manager->sync_point_manager()->AddSyncPointCallback( |
sync_point, |
base::Bind(&GpuCommandBufferStub::OnSyncPointRetired, |