OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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> |
11 #include <time.h> | 11 #include <time.h> |
12 | 12 |
| 13 #include "base/time/time.h" |
13 #include "gpu/command_buffer/common/cmd_buffer_common.h" | 14 #include "gpu/command_buffer/common/cmd_buffer_common.h" |
14 #include "gpu/command_buffer/common/command_buffer.h" | 15 #include "gpu/command_buffer/common/command_buffer.h" |
15 #include "gpu/command_buffer/common/constants.h" | 16 #include "gpu/command_buffer/common/constants.h" |
16 #include "gpu/gpu_export.h" | 17 #include "gpu/gpu_export.h" |
17 | 18 |
18 namespace gpu { | 19 namespace gpu { |
19 | 20 |
20 #if !defined(OS_ANDROID) | 21 #if !defined(OS_ANDROID) |
21 #define CMD_HELPER_PERIODIC_FLUSH_CHECK | 22 #define CMD_HELPER_PERIODIC_FLUSH_CHECK |
22 const int kCommandsPerFlushCheck = 100; | 23 const int kCommandsPerFlushCheck = 100; |
23 const float kPeriodicFlushDelay = 1.0f / (5.0f * 60.0f); | 24 const int kPeriodicFlushDelayInMicroseconds = |
| 25 base::Time::kMicrosecondsPerSecond / (5 * 60); |
24 #endif | 26 #endif |
25 | 27 |
26 const int kAutoFlushSmall = 16; // 1/16 of the buffer | 28 const int kAutoFlushSmall = 16; // 1/16 of the buffer |
27 const int kAutoFlushBig = 2; // 1/2 of the buffer | 29 const int kAutoFlushBig = 2; // 1/2 of the buffer |
28 | 30 |
29 // Command buffer helper class. This class simplifies ring buffer management: | 31 // Command buffer helper class. This class simplifies ring buffer management: |
30 // it will allocate the buffer, give it to the buffer interface, and let the | 32 // it will allocate the buffer, give it to the buffer interface, and let the |
31 // user add commands to it, while taking care of the synchronization (put and | 33 // user add commands to it, while taking care of the synchronization (put and |
32 // get). It also provides a way to ensure commands have been executed, through | 34 // get). It also provides a way to ensure commands have been executed, through |
33 // the token mechanism: | 35 // the token mechanism: |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 int32 last_put_sent_; | 320 int32 last_put_sent_; |
319 | 321 |
320 #if defined(CMD_HELPER_PERIODIC_FLUSH_CHECK) | 322 #if defined(CMD_HELPER_PERIODIC_FLUSH_CHECK) |
321 int commands_issued_; | 323 int commands_issued_; |
322 #endif | 324 #endif |
323 | 325 |
324 bool usable_; | 326 bool usable_; |
325 bool context_lost_; | 327 bool context_lost_; |
326 bool flush_automatically_; | 328 bool flush_automatically_; |
327 | 329 |
328 // Using C runtime instead of base because this file cannot depend on base. | 330 base::TimeTicks last_flush_time_; |
329 clock_t last_flush_time_; | |
330 | 331 |
331 // Incremented every time the helper flushes the command buffer. | 332 // Incremented every time the helper flushes the command buffer. |
332 // Can be used to track when prior commands have been flushed. | 333 // Can be used to track when prior commands have been flushed. |
333 uint32 flush_generation_; | 334 uint32 flush_generation_; |
334 | 335 |
335 friend class CommandBufferHelperTest; | 336 friend class CommandBufferHelperTest; |
336 DISALLOW_COPY_AND_ASSIGN(CommandBufferHelper); | 337 DISALLOW_COPY_AND_ASSIGN(CommandBufferHelper); |
337 }; | 338 }; |
338 | 339 |
339 } // namespace gpu | 340 } // namespace gpu |
340 | 341 |
341 #endif // GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_ | 342 #endif // GPU_COMMAND_BUFFER_CLIENT_CMD_BUFFER_HELPER_H_ |
OLD | NEW |