Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Unified Diff: gpu/GLES2/extensions/CHROMIUM/CHROMIUM_sync_point.txt

Issue 1323263005: Proposing new CHROMIUM_sync_point API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Renamed sync object to sync token Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698