OLD | NEW |
| (Empty) |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef GPU_COMMAND_BUFFER_COMMON_SYNC_TOKEN_H_ | |
6 #define GPU_COMMAND_BUFFER_COMMON_SYNC_TOKEN_H_ | |
7 | |
8 #include <stdint.h> | |
9 | |
10 #include "gpu/command_buffer/common/constants.h" | |
11 #include "gpu/gpu_export.h" | |
12 | |
13 // From glextchromium.h. | |
14 #ifndef GL_SYNC_TOKEN_SIZE_CHROMIUM | |
15 #define GL_SYNC_TOKEN_SIZE_CHROMIUM 24 | |
16 #endif | |
17 | |
18 namespace gpu { | |
19 | |
20 // A Sync Token is a binary blob which represents a waitable fence sync | |
21 // on a particular command buffer namespace and id. | |
22 // See src/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_sync_point.txt for more | |
23 // details. | |
24 struct GPU_EXPORT SyncToken { | |
25 using Data = int8_t[GL_SYNC_TOKEN_SIZE_CHROMIUM]; | |
26 | |
27 SyncToken(); | |
28 SyncToken(CommandBufferNamespace namespace_id, | |
29 uint64_t command_buffer_id, | |
30 uint64_t release_count); | |
31 | |
32 CommandBufferNamespace GetNamespaceId() const; | |
33 uint64_t GetCommandBufferId() const; | |
34 uint64_t GetReleaseCount() const; | |
35 | |
36 void SetData(CommandBufferNamespace namespace_id, | |
37 uint64_t command_buffer_id, | |
38 uint64_t release_count); | |
39 | |
40 bool operator<(const SyncToken& other) const; | |
41 | |
42 Data data; | |
43 }; | |
44 | |
45 } // namespace gpu | |
46 | |
47 #endif // GPU_COMMAND_BUFFER_COMMON_SYNC_TOKEN_H_ | |
48 | |
OLD | NEW |