Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(102)

Side by Side Diff: gpu/command_buffer/client/cmd_buffer_helper.h

Issue 6316002: Make CommandBuffer::Flush asynchronous, and add CommandBuffer::FlushSync with former semantics. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file contains the command buffer helper class. 5 // This file contains the command buffer helper class.
6 6
7 #ifndef GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_ 7 #ifndef GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_
8 #define GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_ 8 #define GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_
9 9
10 #include <string.h> 10 #include <string.h>
(...skipping 24 matching lines...) Expand all
35 public: 35 public:
36 explicit CommandBufferHelper(CommandBuffer* command_buffer); 36 explicit CommandBufferHelper(CommandBuffer* command_buffer);
37 virtual ~CommandBufferHelper(); 37 virtual ~CommandBufferHelper();
38 38
39 // Initializes the CommandBufferHelper. 39 // Initializes the CommandBufferHelper.
40 // Parameters: 40 // Parameters:
41 // ring_buffer_size: The size of the ring buffer portion of the command 41 // ring_buffer_size: The size of the ring buffer portion of the command
42 // buffer. 42 // buffer.
43 bool Initialize(int32 ring_buffer_size); 43 bool Initialize(int32 ring_buffer_size);
44 44
45 // Asynchronously flushes the commands, setting the put pointer to let the
46 // buffer interface know that new commands have been added. After a flush
47 // returns, the command buffer service is aware of all pending commands.
48 void Flush();
49
45 // Flushes the commands, setting the put pointer to let the buffer interface 50 // Flushes the commands, setting the put pointer to let the buffer interface
46 // know that new commands have been added. After a flush returns, the command 51 // know that new commands have been added. After a flush returns, the command
47 // buffer service is aware of all pending commands and it is guaranteed to 52 // buffer service is aware of all pending commands and it is guaranteed to
48 // have made some progress in processing them. Returns whether the flush was 53 // have made some progress in processing them. Returns whether the flush was
49 // successful. The flush will fail if the command buffer service has 54 // successful. The flush will fail if the command buffer service has
50 // disconnected. 55 // disconnected.
51 bool Flush(); 56 bool FlushSync();
52 57
53 // Waits until all the commands have been executed. Returns whether it 58 // Waits until all the commands have been executed. Returns whether it
54 // was successful. The function will fail if the command buffer service has 59 // was successful. The function will fail if the command buffer service has
55 // disconnected. 60 // disconnected.
56 bool Finish(); 61 bool Finish();
57 62
58 // Waits until a given number of available entries are available. 63 // Waits until a given number of available entries are available.
59 // Parameters: 64 // Parameters:
60 // count: number of entries needed. This value must be at most 65 // count: number of entries needed. This value must be at most
61 // the size of the buffer minus one. 66 // the size of the buffer minus one.
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 223
219 CommandBuffer* command_buffer_; 224 CommandBuffer* command_buffer_;
220 Buffer ring_buffer_; 225 Buffer ring_buffer_;
221 CommandBufferEntry *entries_; 226 CommandBufferEntry *entries_;
222 int32 total_entry_count_; // the total number of entries 227 int32 total_entry_count_; // the total number of entries
223 int32 usable_entry_count_; // the usable number (ie, minus space for jump) 228 int32 usable_entry_count_; // the usable number (ie, minus space for jump)
224 int32 token_; 229 int32 token_;
225 int32 last_token_read_; 230 int32 last_token_read_;
226 int32 get_; 231 int32 get_;
227 int32 put_; 232 int32 put_;
233 int32 last_put_sent_;
228 234
229 friend class CommandBufferHelperTest; 235 friend class CommandBufferHelperTest;
230 DISALLOW_COPY_AND_ASSIGN(CommandBufferHelper); 236 DISALLOW_COPY_AND_ASSIGN(CommandBufferHelper);
231 }; 237 };
232 238
233 } // namespace gpu 239 } // namespace gpu
234 240
235 #endif // GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_ 241 #endif // GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_
OLDNEW
« no previous file with comments | « chrome/renderer/webplugin_delegate_pepper.cc ('k') | gpu/command_buffer/client/cmd_buffer_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698