Chromium Code Reviews| 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; |