Index: content/common/gpu/client/command_buffer_proxy_impl.h |
diff --git a/content/common/gpu/client/command_buffer_proxy_impl.h b/content/common/gpu/client/command_buffer_proxy_impl.h |
index 98f8ed7e2e570907f24d43fed42cd3d754417775..61ba77585f6cf17ba83ba018b4c193533395d00f 100644 |
--- a/content/common/gpu/client/command_buffer_proxy_impl.h |
+++ b/content/common/gpu/client/command_buffer_proxy_impl.h |
@@ -123,6 +123,9 @@ class CommandBufferProxyImpl |
bool IsGpuChannelLost() override; |
gpu::CommandBufferNamespace GetNamespaceID() const override; |
uint64_t GetCommandBufferID() const override; |
+ uint64_t GenerateFenceSyncRelease() override; |
+ bool IsFenceSyncRelease(uint64_t release) override; |
+ bool IsFenceSyncFlushed(uint64_t release) override; |
bool ProduceFrontBuffer(const gpu::Mailbox& mailbox); |
void SetContextLostCallback(const base::Closure& callback); |
@@ -191,6 +194,9 @@ class CommandBufferProxyImpl |
// Try to read an updated copy of the state from shared memory. |
void TryUpdateState(); |
+ // Updates the highest verified release fence sync. |
+ void UpdateVerifiedReleases(uint32_t verified_flush); |
+ |
// The shared memory area used to update state. |
gpu::CommandBufferSharedState* shared_state() const; |
@@ -215,6 +221,18 @@ class CommandBufferProxyImpl |
int32 last_put_offset_; |
int32 last_barrier_put_offset_; |
+ // Next generated fence sync. |
+ uint64_t next_fence_sync_release_; |
+ |
+ // Unverified flushed fence syncs with their corresponding flush id. |
+ std::queue<std::pair<uint64_t, uint32_t>> flushed_release_flush_id_; |
+ |
+ // Last flushed fence sync release, same as last item in queue if not empty. |
+ uint64_t flushed_fence_sync_release_; |
+ |
+ // Last verified fence sync. |
+ uint64_t verified_fence_sync_release_; |
+ |
base::Closure context_lost_callback_; |
GpuConsoleMessageCallback console_message_callback_; |