Index: gpu/command_buffer/client/buffer_tracker.h |
diff --git a/gpu/command_buffer/client/buffer_tracker.h b/gpu/command_buffer/client/buffer_tracker.h |
index 3e50364317d234bc9d7ed336c81de4fdbc26d5a4..8fadca918bc95330608a58f5a74fecc81fb1297a 100644 |
--- a/gpu/command_buffer/client/buffer_tracker.h |
+++ b/gpu/command_buffer/client/buffer_tracker.h |
@@ -35,7 +35,9 @@ class GLES2_IMPL_EXPORT BufferTracker { |
shm_offset_(shm_offset), |
address_(address), |
mapped_(false), |
- transfer_ready_token_(0) { |
+ transfer_ready_token_(0), |
+ unused_token_(0), |
+ async_query_id_(0) { |
} |
GLenum id() const { |
@@ -74,6 +76,30 @@ class GLES2_IMPL_EXPORT BufferTracker { |
return transfer_ready_token_; |
} |
+ void set_used(bool used) { |
+ used_ = used; |
+ } |
+ |
+ bool used() const { |
+ return used_; |
+ } |
+ |
+ void set_unused_token(int token) { |
+ unused_token_ = token; |
+ } |
+ |
+ int unused_token() const { |
+ return unused_token_; |
+ } |
+ |
+ void set_async_query_id(GLuint async_query_id) { |
+ async_query_id_ = async_query_id; |
+ } |
+ |
+ GLuint async_query_id() const { |
+ return async_query_id_; |
+ } |
+ |
private: |
friend class BufferTracker; |
friend class BufferTrackerTest; |
@@ -83,8 +109,11 @@ class GLES2_IMPL_EXPORT BufferTracker { |
int32 shm_id_; |
uint32 shm_offset_; |
void* address_; |
- bool mapped_; |
+ bool mapped_ : 1; |
+ bool used_ : 1; |
int32 transfer_ready_token_; |
+ int32 unused_token_; |
epennerAtGoogle
2014/01/07 00:47:59
Does this mean: "The buffer is unused after this t
reveman
2014/01/07 06:32:06
+1
jadahl
2014/01/07 10:52:03
last_usage_token np. last_async_query_id might be
|
+ GLuint async_query_id_; |
}; |
BufferTracker(MappedMemoryManager* manager); |
@@ -93,10 +122,12 @@ class GLES2_IMPL_EXPORT BufferTracker { |
Buffer* CreateBuffer(GLuint id, GLsizeiptr size); |
Buffer* GetBuffer(GLuint id); |
void RemoveBuffer(GLuint id); |
+ void UnmanageBuffer(GLuint id); |
// Frees the block of memory associated with buffer, pending the passage |
// of a token. |
- void FreePendingToken(Buffer*, int32 token); |
+ void FreePendingToken(Buffer* buffer, int32 token); |
+ void Free(Buffer* buffer); |
private: |
typedef base::hash_map<GLuint, Buffer*> BufferMap; |