Index: gpu/command_buffer/client/cmd_buffer_helper.cc |
diff --git a/gpu/command_buffer/client/cmd_buffer_helper.cc b/gpu/command_buffer/client/cmd_buffer_helper.cc |
index 35805fe195703e37b006a0b7e2aef33439d0d333..4267eb76689080ea2c32ca407c196e1f91279883 100644 |
--- a/gpu/command_buffer/client/cmd_buffer_helper.cc |
+++ b/gpu/command_buffer/client/cmd_buffer_helper.cc |
@@ -31,6 +31,8 @@ CommandBufferHelper::CommandBufferHelper(CommandBuffer* command_buffer) |
token_(0), |
put_(0), |
last_put_sent_(0), |
+ next_fence_sync_release_(1), |
+ flushed_fence_sync_release_(0), |
#if defined(CMD_HELPER_PERIODIC_FLUSH_CHECK) |
commands_issued_(0), |
#endif |
@@ -146,6 +148,12 @@ void CommandBufferHelper::FreeRingBuffer() { |
FreeResources(); |
} |
+uint32_t CommandBufferHelper::GenerateFenceSyncRelease() { |
+ // Enforce fence syncs generated are always inserted in the command buffer. |
+ const uint32_t release = next_fence_sync_release_++; |
+ return release; |
+} |
+ |
bool CommandBufferHelper::Initialize(int32 ring_buffer_size) { |
ring_buffer_size_ = ring_buffer_size; |
return AllocateRingBuffer(); |
@@ -176,6 +184,8 @@ void CommandBufferHelper::Flush() { |
command_buffer_->Flush(put_); |
++flush_generation_; |
CalcImmediateEntries(0); |
+ |
+ flushed_fence_sync_release_ = next_fence_sync_release_ - 1; |
} |
} |