Index: gpu/command_buffer/service/command_buffer_service.h |
diff --git a/gpu/command_buffer/service/command_buffer_service.h b/gpu/command_buffer/service/command_buffer_service.h |
index a83a4e5d6dfbe65cbefa8bba5a08ef9eb0c9dd00..a9bc9dfc40602cedee5988cd0f1696efaca7f6a8 100644 |
--- a/gpu/command_buffer/service/command_buffer_service.h |
+++ b/gpu/command_buffer/service/command_buffer_service.h |
@@ -30,7 +30,7 @@ class CommandBufferService : public CommandBuffer { |
virtual Buffer GetRingBuffer(); |
virtual State GetState(); |
virtual void Flush(int32 put_offset); |
- virtual State FlushSync(int32 put_offset); |
+ virtual State FlushSync(int32 put_offset, int32 last_known_get); |
virtual void SetGetOffset(int32 get_offset); |
virtual int32 CreateTransferBuffer(size_t size, int32 id_request); |
virtual int32 RegisterTransferBuffer(base::SharedMemory* shared_memory, |
@@ -41,27 +41,26 @@ class CommandBufferService : public CommandBuffer { |
virtual void SetToken(int32 token); |
virtual void SetParseError(error::Error error); |
- // Sets a callback that should be posted on another thread whenever the put |
- // offset is changed. The callback must not return until some progress has |
- // been made (unless the command buffer is empty), i.e. the |
- // get offset must have changed. It need not process the entire command |
- // buffer though. This allows concurrency between the writer and the reader |
- // while giving the writer a means of waiting for the reader to make some |
- // progress before attempting to write more to the command buffer. Avoiding |
- // the use of a synchronization primitive like a condition variable to |
- // synchronize reader and writer reduces the risk of deadlock. |
- // Takes ownership of callback. The callback is invoked on the plugin thread. |
- virtual void SetPutOffsetChangeCallback(Callback0::Type* callback); |
+ // Sets a callback that is called whenever the put offset is changed. When |
+ // called with sync==true, the callback must not return until some progress |
+ // has been made (unless the command buffer is empty), i.e. the get offset |
+ // must have changed. It need not process the entire command buffer though. |
+ // This allows concurrency between the writer and the reader while giving the |
+ // writer a means of waiting for the reader to make some progress before |
+ // attempting to write more to the command buffer. Takes ownership of |
+ // callback. |
+ virtual void SetPutOffsetChangeCallback(Callback1<bool>::Type* callback); |
private: |
Buffer ring_buffer_; |
int32 num_entries_; |
int32 get_offset_; |
int32 put_offset_; |
- scoped_ptr<Callback0::Type> put_offset_change_callback_; |
+ scoped_ptr<Callback1<bool>::Type> put_offset_change_callback_; |
std::vector<Buffer> registered_objects_; |
std::set<int32> unused_registered_object_elements_; |
int32 token_; |
+ uint32 generation_; |
error::Error error_; |
}; |