Chromium Code Reviews| 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 | |
| 34 | |
| 35 None | |
| 36 | |
| 37 New Procedures and Functions | 33 New Procedures and Functions |
| 38 | 34 |
| 39 The command | 35 The command |
| 40 | 36 |
| 41 uint InsertSyncPointCHROMIUM() | 37 uint InsertSyncPointCHROMIUM() |
| 42 | 38 |
| 43 flushes the stream of commands for the current context and creates and | 39 inserts a sync point insertion point in the current command stream. The |
|
piman
2015/09/08 22:19:47
nit: "inserts a sync point insertion point" doesn'
David Yen
2015/09/08 22:54:14
Maybe just use "fence sync" and "sync object" to m
| |
| 44 inserts a sync point. The sync point acts as a fence, which is signaled when | 40 sync point acts as a fence, which is signaled when previous commands have be en submitted to the server, or when the context is destroyed, |
|
piman
2015/09/08 22:19:47
nit: wrapping at 80 columns
David Yen
2015/09/08 22:54:14
Done.
| |
| 45 previous commands have been submitted to the server, or when the context is | 41 whichever happens first. The sync point name is only visible for the |
| 46 destroyed, whichever happens first. The sync point name is returned. The | 42 current context. Before the returned sync point is waited upon, the command |
| 47 sync point is implicitly deleted when it becomes signaled. The sync point | 43 must be flushed and converted to a sync point object using |
| 48 namespace is shared between all contexts on the same server, including other | 44 GenSyncPointCHROMIUM. The opaque object returned from GenSyncPointCHROMIUM |
| 49 context groups. | 45 is shared between all contexts. |
| 50 | |
| 51 | 46 |
| 52 The command | 47 The command |
| 53 | 48 |
| 54 void WaitSyncPointCHROMIUM(uint sync_point) | 49 void GenSyncPointCHROMIUM (uint insertion, GLbyte *sync_point) |
| 50 | |
| 51 converts <insertion> which is only visible to the current context to a | |
| 52 sync point opaque object which is global between all contexts on the same | |
| 53 server. The <insertion> command must be flushed before this function may be | |
| 54 called, otherwise an INVALID_OPERATION error is generated. <sync_point> may | |
| 55 be passed to any other context on the same server to be waited upon. | |
| 56 | |
| 57 <sync_point> returns a GL_SYNC_POINT_SIZE_CHROMIUM byte sized name | |
|
piman
2015/09/08 22:19:47
nit: .
David Yen
2015/09/08 22:54:14
Done.
| |
| 58 | |
| 59 The command | |
| 60 | |
| 61 void WaitSyncPointCHROMIUM (GLbyte *sync_point) | |
| 55 | 62 |
| 56 causes the current context to stop submitting commands until the specified | 63 causes the current context to stop submitting commands until the specified |
| 57 sync point becomes signaled. This is implemented as a server-side wait. | 64 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> | 65 <sync_point> is the name of the sync point to wait for that was generated |
| 59 isn't a valid sync point returned by InsertSyncPointCHROMIUM, or if the sync | 66 by GenSyncPointCHROMIUM. If <sync_point> isn't a valid sync point |
| 60 point has already been deleted, the command is equivalent to a no-op and no | 67 returned by GenSyncPointCHROMIUM, the command is equivalent to a no-op |
| 61 error is generated. | 68 and no error is generated. |
| 69 | |
| 70 New Tokens | |
| 71 | |
| 72 The size of a mailbox name in bytes. | |
| 73 | |
| 74 GL_SYNC_POINT_SIZE_CHROMIUM 12 | |
| 62 | 75 |
| 63 Errors | 76 Errors |
| 64 | 77 |
| 65 None. | 78 INVALID_VALUE is generated if the <insertion> parameter of |
| 79 GenSyncPointCHROMIUM is not a valid local sync point insertion name. | |
| 80 | |
| 81 INVALID_OPERATION is generated if the <insertion> parameter of | |
| 82 GenSyncPointCHROMIUM has not been flushed to the server. | |
| 66 | 83 |
| 67 New State | 84 New State |
| 68 | 85 |
| 69 None. | 86 None. |
| 70 | 87 |
| 71 Revision History | 88 Revision History |
| 72 | 89 |
| 73 2/25/2013 Documented the extension | 90 2/25/2013 Documented the extension |
| 91 | |
| 92 9/8/2015 Added CHROMIUMsync, WaitSyncPointCHROMIUM | |
| OLD | NEW |