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..7843aa3ac02678edff53963ccc6b080c1a327e5a 100644 |
--- a/gpu/command_buffer/service/in_process_command_buffer.h |
+++ b/gpu/command_buffer/service/in_process_command_buffer.h |
@@ -48,7 +48,7 @@ class StreamTextureManagerInProcess; |
namespace gpu { |
class SyncPointClient; |
-class SyncPointClientState; |
+class SyncPointOrderData; |
class SyncPointManager; |
class ValueStateMap; |
@@ -130,6 +130,9 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, |
bool IsGpuChannelLost() override; |
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; |
// 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(uint64_t release); |
+ bool WaitFenceSyncOnGpuThread(gpu::CommandBufferNamespace namespace_id, |
+ uint64_t command_buffer_id, |
+ uint64_t release); |
void SignalQueryOnGpuThread(unsigned query_id, const base::Closure& callback); |
void DestroyTransferBufferOnGpuThread(int32 id); |
void CreateImageOnGpuThread(int32 id, |
@@ -242,7 +249,7 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, |
scoped_ptr<gles2::GLES2Decoder> decoder_; |
scoped_refptr<gfx::GLContext> context_; |
scoped_refptr<gfx::GLSurface> surface_; |
- scoped_refptr<SyncPointClientState> sync_point_client_state_; |
+ scoped_refptr<SyncPointOrderData> sync_point_order_data_; |
scoped_ptr<SyncPointClient> sync_point_client_; |
base::Closure context_lost_callback_; |
bool delayed_work_pending_; // Used to throttle PerformDelayedWork. |
@@ -254,6 +261,8 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, |
gpu::Capabilities capabilities_; |
GpuMemoryBufferManager* gpu_memory_buffer_manager_; |
base::AtomicSequenceNumber next_image_id_; |
+ uint64_t next_fence_sync_release_; |
+ uint64_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_; |