Index: gpu/command_buffer/service/mailbox_synchronizer.h |
diff --git a/gpu/command_buffer/service/mailbox_synchronizer.h b/gpu/command_buffer/service/mailbox_synchronizer.h |
index a845963bbbf74c67c6f2b0198c4c2ec7719e6981..3ddb9d0f8026ab1bfff8c64a87fb5ff652c23bd0 100644 |
--- a/gpu/command_buffer/service/mailbox_synchronizer.h |
+++ b/gpu/command_buffer/service/mailbox_synchronizer.h |
@@ -8,6 +8,7 @@ |
#include "gpu/command_buffer/common/mailbox.h" |
#include <map> |
+#include <queue> |
#include <set> |
#include "base/memory/linked_ptr.h" |
@@ -15,6 +16,10 @@ |
#include "gpu/command_buffer/service/texture_definition.h" |
#include "gpu/gpu_export.h" |
+namespace gfx { |
+class GLFence; |
+} |
+ |
namespace gpu { |
namespace gles2 { |
@@ -34,8 +39,8 @@ class MailboxSynchronizer { |
// Create a texture from a globally visible mailbox. |
Texture* CreateTextureFromMailbox(unsigned target, const Mailbox& mailbox); |
- void PushTextureUpdates(MailboxManager* manager); |
- void PullTextureUpdates(MailboxManager* manager); |
+ void PushTextureUpdates(MailboxManager* manager, uint32 sync_point); |
+ void PullTextureUpdates(MailboxManager* manager, uint32 sync_point); |
void TextureDeleted(Texture* texture); |
@@ -85,6 +90,12 @@ class MailboxSynchronizer { |
const TargetName& target_name, |
TextureGroup* group); |
void UpdateTextureLocked(Texture* texture, TextureVersion& texture_version); |
+ void CreateFenceLocked(uint32 sync_point); |
+ void AcquireFenceLocked(uint32 sync_point); |
+ |
+ typedef std::map<uint32, linked_ptr<gfx::GLFence> > SyncPointToFenceMap; |
+ SyncPointToFenceMap sync_point_to_fence_; |
+ std::queue<SyncPointToFenceMap::iterator> sync_points_; |
DISALLOW_COPY_AND_ASSIGN(MailboxSynchronizer); |
}; |