OLD | NEW |
---|---|
1 Name | 1 Name |
2 | 2 |
3 CHROMIUM_sync_point | 3 CHROMIUM_sync_point |
4 | 4 |
5 Name Strings | 5 Name Strings |
6 | 6 |
7 GL_CHROMIUM_sync_point | 7 GL_CHROMIUM_sync_point |
8 | 8 |
9 Version | 9 Version |
10 | 10 |
11 Last Modifed Date: February 25, 2013 | 11 Last Modifed Date: September 8, 2015 |
12 | 12 |
13 Dependencies | 13 Dependencies |
14 | 14 |
15 OpenGL ES 2.0 is required. | 15 OpenGL ES 2.0 is required. |
16 | 16 |
17 Overview | 17 Overview |
18 | 18 |
19 This extension allows a client to order operations between contexts. | 19 This extension allows a client to order operations between contexts. |
20 | 20 |
21 This extension implements a small subset of ARB_sync, with weaker | 21 This extension implements a small subset of ARB_sync, with weaker |
22 guarantees. In particular it doesn't ensure commands are actually executed | 22 guarantees. In particular it doesn't ensure commands are actually executed |
23 by the server, it only guarantees submission order. | 23 by the server, it only guarantees submission order. |
24 | 24 |
25 It does however guarantee operation order with respect to | 25 It does however guarantee operation order with respect to |
26 ConsumeTextureCHROMIUM and ProduceTextureCHROMIUM from | 26 ConsumeTextureCHROMIUM and ProduceTextureCHROMIUM from |
27 CHROMIUM_texture_mailbox, if present. | 27 CHROMIUM_texture_mailbox, if present. |
28 | 28 |
29 Issues | 29 Issues |
30 | 30 |
31 None | 31 None |
32 | 32 |
33 New Tokens | 33 New Tokens |
34 | 34 |
35 None | 35 None |
36 | 36 |
37 New Types | |
38 | |
39 typedef struct __CHROMIUMsync *CHROMIUMsync; | |
jbauman
2015/09/08 20:54:13
What exactly is __CHROMIUMsync? Can it be passed v
David Yen
2015/09/08 21:35:29
In order to make the tracking of lifetimes easier,
| |
40 | |
37 New Procedures and Functions | 41 New Procedures and Functions |
38 | 42 |
39 The command | 43 The command |
40 | 44 |
41 uint InsertSyncPointCHROMIUM() | 45 uint InsertSyncPointCHROMIUM() |
42 | 46 |
43 flushes the stream of commands for the current context and creates and | 47 inserts a sync point in the current command stream. The sync point acts as |
44 inserts a sync point. The sync point acts as a fence, which is signaled when | 48 a fence, which is signaled when previous commands have been submitted to |
45 previous commands have been submitted to the server, or when the context is | 49 the server, or when the context is destroyed, whichever happens first. |
46 destroyed, whichever happens first. The sync point name is returned. The | 50 The sync point name for the current context is returned. Before the |
47 sync point is implicitly deleted when it becomes signaled. The sync point | 51 returned sync point is waited upon, the command must be flushed and |
48 namespace is shared between all contexts on the same server, including other | 52 converted to a CHROMIUMsync object using GenSyncPointCHROMIUM. The |
49 context groups. | 53 CHROMIUMsync object returned from GenSyncPointCHROMIUM is shared between |
50 | 54 all contexts. |
51 | 55 |
52 The command | 56 The command |
53 | 57 |
54 void WaitSyncPointCHROMIUM(uint sync_point) | 58 CHROMIUMsync GenSyncPointCHROMIUM(uint sync_point) |
59 | |
60 converts a sync point name for the current context to a sync point object | |
61 which can be waited on and shared between all contexts on the same server. | |
62 <sync_point> must be flushed before this function may be called, otherwise | |
63 an INVALID_OPERATION error is generated. | |
piman
2015/09/08 18:21:01
Can you clarify whether the CHROMIUMsync handle na
David Yen
2015/09/08 19:07:53
Improved documentation on this. It is shared globa
| |
64 | |
65 The command | |
66 | |
67 void WaitSyncPointCHROMIUM(CHROMIUMsync sync_point) | |
55 | 68 |
56 causes the current context to stop submitting commands until the specified | 69 causes the current context to stop submitting commands until the specified |
57 sync point becomes signaled. This is implemented as a server-side wait. | 70 sync point becomes signaled. This is implemented as a server-side wait. |
58 <sync_point> is the name of the sync point to wait for. If <sync_point> | 71 <sync_point> is the name of the sync point to wait for. If <sync_point> |
59 isn't a valid sync point returned by InsertSyncPointCHROMIUM, or if the sync | 72 isn't a valid sync point returned by GenSyncPointCHROMIUM, or if the sync |
60 point has already been deleted, the command is equivalent to a no-op and no | 73 point has already been deleted, the command is equivalent to a no-op and no |
61 error is generated. | 74 error is generated. |
62 | 75 |
76 The command | |
77 | |
78 void DeleteSyncPointCHROMIUM(CHROMIUMsync sync_point) | |
79 | |
80 deletes the corresponding sync point object and makes it so no context can | |
81 wait on <sync_point> anymore. This will not affect any WaitSyncPointCHROMIUM | |
82 commands that are already blocking on <sync_point>. | |
piman
2015/09/08 18:21:01
I'm not sure what "already blocking on <sync_point
David Yen
2015/09/08 19:07:53
I wanted to communicate that on the client side th
| |
83 | |
63 Errors | 84 Errors |
64 | 85 |
65 None. | 86 INVALID_VALUE is generated if the <sync_point> parameter of |
87 GenSyncPointCHROMIUM is not a valid local sync point name. | |
88 | |
89 INVALID_OPERATION is generated if the <sync_point> parameter of | |
90 GenSyncPointCHROMIUM has not been flushed. | |
66 | 91 |
67 New State | 92 New State |
68 | 93 |
69 None. | 94 None. |
70 | 95 |
71 Revision History | 96 Revision History |
72 | 97 |
73 2/25/2013 Documented the extension | 98 2/25/2013 Documented the extension |
99 | |
100 9/8/2015 Added CHROMIUMsync, WaitSyncPointCHROMIUM, | |
101 DeleteSyncPointCHROMIUM | |
OLD | NEW |