Index: gpu/command_buffer/service/in_process_command_buffer.h |
diff --git a/gpu/command_buffer/service/in_process_command_buffer.h b/gpu/command_buffer/service/in_process_command_buffer.h |
index f4f91f81009b027c9cd70ca5a85f4a1f224833ad..a5680cff73ba4be61ae0068d1928366b2e54a618 100644 |
--- a/gpu/command_buffer/service/in_process_command_buffer.h |
+++ b/gpu/command_buffer/service/in_process_command_buffer.h |
@@ -130,6 +130,9 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, |
bool IsGpuChannelLost() override; |
CommandBufferNamespace GetNamespaceID() const override; |
uint64_t GetCommandBufferID() const override; |
+ uint32_t GenerateFenceSyncRelease() override; |
+ bool IsFenceSyncRelease(uint32_t release) override; |
+ bool IsFenceSyncFlushed(uint32_t release) override; |
// The serializer interface to the GPU service (i.e. thread). |
class Service { |
@@ -215,6 +218,10 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, |
void SignalSyncPointOnGpuThread(uint32 sync_point, |
const base::Closure& callback); |
bool WaitSyncPointOnGpuThread(uint32 sync_point); |
+ void FenceSyncReleaseOnGpuThread(uint32_t release); |
+ bool WaitFenceSyncOnGpuThread(gpu::CommandBufferNamespace namespace_id, |
+ uint64_t command_buffer_id, |
+ uint32_t release); |
void SignalQueryOnGpuThread(unsigned query_id, const base::Closure& callback); |
void DestroyTransferBufferOnGpuThread(int32 id); |
void CreateImageOnGpuThread(int32 id, |
@@ -254,6 +261,8 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, |
gpu::Capabilities capabilities_; |
GpuMemoryBufferManager* gpu_memory_buffer_manager_; |
base::AtomicSequenceNumber next_image_id_; |
+ uint32_t next_fence_sync_release_; |
+ uint32_t flushed_fence_sync_release_; |
// Accessed on both threads: |
scoped_ptr<CommandBufferServiceBase> command_buffer_; |
@@ -263,6 +272,7 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, |
State state_after_last_flush_; |
base::Lock state_after_last_flush_lock_; |
scoped_refptr<gfx::GLShareGroup> gl_share_group_; |
+ base::WaitableEvent fence_sync_wait_event_; |
#if defined(OS_ANDROID) |
scoped_ptr<StreamTextureManagerInProcess> stream_texture_manager_; |