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

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: 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..08cf38777fca29d9988570986a9b3bafb893d946 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
@@ -34,35 +34,60 @@ New Tokens
None
+New Types
+
+ 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,
+
New Procedures and Functions
The command
uint InsertSyncPointCHROMIUM()
- 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.
+ inserts a sync point in the current command stream. 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 for the current context is returned. Before the
+ returned sync point is waited upon, the command must be flushed and
+ converted to a CHROMIUMsync object using GenSyncPointCHROMIUM. The
+ CHROMIUMsync object returned from GenSyncPointCHROMIUM is shared between
+ all contexts.
+
+ The command
+
+ CHROMIUMsync GenSyncPointCHROMIUM(uint sync_point)
+ converts a sync point name for the current context to a sync point object
+ which can be waited on and shared between all contexts on the same server.
+ <sync_point> must be flushed before this function may be called, otherwise
+ 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
The command
- void WaitSyncPointCHROMIUM(uint sync_point)
+ void WaitSyncPointCHROMIUM(CHROMIUMsync sync_point)
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
+ isn't a valid sync point returned by GenSyncPointCHROMIUM, or if the sync
point has already been deleted, the command is equivalent to a no-op and no
error is generated.
+ The command
+
+ void DeleteSyncPointCHROMIUM(CHROMIUMsync sync_point)
+
+ deletes the corresponding sync point object and makes it so no context can
+ wait on <sync_point> anymore. This will not affect any WaitSyncPointCHROMIUM
+ 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
+
Errors
- None.
+ INVALID_VALUE is generated if the <sync_point> parameter of
+ GenSyncPointCHROMIUM is not a valid local sync point name.
+
+ INVALID_OPERATION is generated if the <sync_point> parameter of
+ GenSyncPointCHROMIUM has not been flushed.
New State
@@ -71,3 +96,6 @@ New State
Revision History
2/25/2013 Documented the extension
+
+ 9/8/2015 Added CHROMIUMsync, WaitSyncPointCHROMIUM,
+ DeleteSyncPointCHROMIUM
« 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