Index: gpu/GLES2/extensions/CHROMIUM/CHROMIUM_sync_point.txt |
diff --git a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_sync_point.txt b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_sync_point.txt |
index 965cb44b0c066306163f84404232be632a42f644..9f1863cc0052467d5ac845a07ef50048bbfad68e 100644 |
--- a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_sync_point.txt |
+++ b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_sync_point.txt |
@@ -8,7 +8,7 @@ Name Strings |
Version |
- Last Modifed Date: February 25, 2013 |
+ Last Modifed Date: September 8, 2015 |
Dependencies |
@@ -18,6 +18,13 @@ Overview |
This extension allows a client to order operations between contexts. |
+ This extension introduces the concept of "fence syncs" and "sync token". |
+ Inserted fence syncs represents a position in the command stream of a |
+ context. Sync tokens are generated from fence syncs and allows another |
+ context to issue a "wait" command on the sync token. This wait command |
+ will then guarantee that commands before the inserted fence sync are |
+ submitted before commands after the sync token wait. |
+ |
This extension implements a small subset of ARB_sync, with weaker |
guarantees. In particular it doesn't ensure commands are actually executed |
by the server, it only guarantees submission order. |
@@ -30,39 +37,57 @@ Issues |
None |
-New Tokens |
+New Procedures and Functions |
- None |
+ The command |
-New Procedures and Functions |
+ uint InsertFenceSyncCHROMIUM() |
+ |
+ inserts a fence sync in the current command stream. The fence sync is |
+ signaled when previous commands have been submitted to the server, or when |
+ the context is destroyed, whichever happens first. The fence sync name is |
+ only visible for the current context. The returned fence sync name cannot |
+ be waited upon directly, but once the command is flushed to the server it |
+ can be converted to a sync token using GenSyncTokenCHROMIUM which is |
+ waitable. |
The command |
- uint InsertSyncPointCHROMIUM() |
+ void GenSyncTokenCHROMIUM(uint fence_sync, GLbyte *sync_token) |
- flushes the stream of commands for the current context and creates and |
- inserts a sync point. The sync point acts as a fence, which is signaled when |
- previous commands have been submitted to the server, or when the context is |
- destroyed, whichever happens first. The sync point name is returned. The |
- sync point is implicitly deleted when it becomes signaled. The sync point |
- namespace is shared between all contexts on the same server, including other |
- context groups. |
+ converts <fence_sync> which is only visible to the current context to a |
+ sync token which may be waited upon by any contexts on the same server. |
+ The <fence_sync> command must be flushed before this function may be |
+ called, otherwise an INVALID_OPERATION error is generated. The generated |
+ <sync_token> must be generated on the same context as when |
+ InsertSyncPointCHROMIUM was called. The <sync_token> can be passed and |
+ used by any context on the same server, including other context groups. |
+ <sync_token> returns a GL_SYNC_POINT_SIZE_CHROMIUM byte sized name. |
The command |
- void WaitSyncPointCHROMIUM(uint sync_point) |
+ void WaitSyncTokenCHROMIUM(GLbyte *sync_token) |
causes the current context to stop submitting commands until the specified |
- sync point becomes signaled. This is implemented as a server-side wait. |
- <sync_point> is the name of the sync point to wait for. If <sync_point> |
- isn't a valid sync point returned by InsertSyncPointCHROMIUM, or if the sync |
- point has already been deleted, the command is equivalent to a no-op and no |
- error is generated. |
+ fence sync becomes signaled. This is implemented as a server-side wait. |
+ <sync_token> is a sync token generated by GenSyncPointCHROMIUM. If |
+ <sync_token> isn't a valid sync token returned by GenSyncPointCHROMIUM, the |
+ command is equivalent to a no-op and no error is generated. |
+ |
+New Tokens |
+ |
+ The size of a sync token name in bytes. |
+ |
+ GL_SYNC_TOKEN_SIZE_CHROMIUM 12 |
Errors |
- None. |
+ INVALID_VALUE is generated if the <fence_sync> parameter of |
+ GenSyncPointCHROMIUM is not a valid local fence sync name. |
+ |
+ INVALID_OPERATION is generated if the <fence_sync> parameter of |
+ GenSyncPointCHROMIUM has not been flushed to the server. |
New State |
@@ -71,3 +96,6 @@ New State |
Revision History |
2/25/2013 Documented the extension |
+ |
+ 9/8/2015 Modified functions to InsertFenceSyncCHROMIUM, |
+ GenSyncTokenCHROMIUM, and WaitSyncTokenCHROMIUM. |