summaryrefslogtreecommitdiffstats
path: root/gpu/GLES2
diff options
context:
space:
mode:
authordyen <dyen@chromium.org>2015-12-09 14:13:42 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-09 22:14:31 +0000
commit36bf34f140999029c2ddca0497755a2b0d22897a (patch)
tree53f2450f39a0c44e83bb9ad991733bac68a3ddf5 /gpu/GLES2
parent82dee6e429ccf6775024a2dcfa10e745518ca566 (diff)
downloadchromium_src-36bf34f140999029c2ddca0497755a2b0d22897a.zip
chromium_src-36bf34f140999029c2ddca0497755a2b0d22897a.tar.gz
chromium_src-36bf34f140999029c2ddca0497755a2b0d22897a.tar.bz2
Added VerifySyncTokensCHROMIUM() function to sync_point_CHROMIUM.
R=piman@chromium.org BUG=514815 Review URL: https://codereview.chromium.org/1477993002 Cr-Commit-Position: refs/heads/master@{#364171}
Diffstat (limited to 'gpu/GLES2')
-rw-r--r--gpu/GLES2/extensions/CHROMIUM/CHROMIUM_sync_point.txt23
-rw-r--r--gpu/GLES2/gl2chromium_autogen.h1
-rw-r--r--gpu/GLES2/gl2extchromium.h8
3 files changed, 29 insertions, 3 deletions
diff --git a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_sync_point.txt b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_sync_point.txt
index 1d73261..8394847 100644
--- a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_sync_point.txt
+++ b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_sync_point.txt
@@ -85,6 +85,20 @@ New Procedures and Functions
The command
+ void VerifySyncTokensCHROMIUM(GLbyte **sync_tokens, GLsizei count)
+
+ verifies array <sync_tokens> of length <count> and ensures that these
+ sync tokens have all been verified. The generated sync token did not have
+ to be generated from the same context but it must be from a context which
+ flush order guarantee is enough to guarantee order. For example, contexts
+ which live on the same channel may verify sync tokens for one another.
+ If a sync token was generated by GenUnverifiedSyncTokenCHROMIUM and the
+ corresponding context is unable to verify it, an INVALID_OPERATION error
+ is generated. Sync tokens which have already been verified are ignored, if
+ all sync tokens were already verified then nothing will be done.
+
+ The command
+
void WaitSyncTokenCHROMIUM(const GLbyte *sync_token)
causes the current context to stop submitting commands until the specified
@@ -92,7 +106,7 @@ New Procedures and Functions
<sync_token> is a sync token generated by GenSyncTokenCHROMIUM. If
<sync_token> was generated by GenUnverifiedSyncTokenCHROMIUM and the
corresponding fence sync context required more than just flush ordering
- to guarantee synchronization, a INVALID_OPERATION error is generated. If
+ to guarantee synchronization, an INVALID_OPERATION error is generated. If
<sync_token> isn't a valid sync token returned by GenSyncTokenCHROMIUM or
GenUnverifiedSyncTokenCHROMIUM, the result is undefined.
@@ -119,8 +133,9 @@ Errors
or queued to be flushed using an ordering barrier.
INVALID_OPERATION is generated if the <sync_token> parameter of
- WaitSyncTokenCHROMIUM was generated using GenUnverifiedSyncTokenCHROMIUM,
- but the two contexts must be synchronized with more than just flush order.
+ WaitSyncTokenCHROMIUM or VerifySyncTokensCHROMIUM was generated using
+ GenUnverifiedSyncTokenCHROMIUM, but the two contexts must be synchronized
+ with more than just flush order.
New State
@@ -137,3 +152,5 @@ Revision History
11/24/2015 Clarified that GenUnverifiedSyncTokenCHROMIUM only needs an
ordering barrier and added proper error values.
+
+ 11/25/2015 Added function VerifySyncTokensCHROMIUM.
diff --git a/gpu/GLES2/gl2chromium_autogen.h b/gpu/GLES2/gl2chromium_autogen.h
index f01a448..153472e 100644
--- a/gpu/GLES2/gl2chromium_autogen.h
+++ b/gpu/GLES2/gl2chromium_autogen.h
@@ -330,6 +330,7 @@
#define glGenSyncTokenCHROMIUM GLES2_GET_FUN(GenSyncTokenCHROMIUM)
#define glGenUnverifiedSyncTokenCHROMIUM \
GLES2_GET_FUN(GenUnverifiedSyncTokenCHROMIUM)
+#define glVerifySyncTokensCHROMIUM GLES2_GET_FUN(VerifySyncTokensCHROMIUM)
#define glWaitSyncTokenCHROMIUM GLES2_GET_FUN(WaitSyncTokenCHROMIUM)
#define glDrawBuffersEXT GLES2_GET_FUN(DrawBuffersEXT)
#define glDiscardBackbufferCHROMIUM GLES2_GET_FUN(DiscardBackbufferCHROMIUM)
diff --git a/gpu/GLES2/gl2extchromium.h b/gpu/GLES2/gl2extchromium.h
index 8118de0..51af9dc 100644
--- a/gpu/GLES2/gl2extchromium.h
+++ b/gpu/GLES2/gl2extchromium.h
@@ -690,12 +690,20 @@ GL_APICALL GLuint GL_APIENTRY glInsertSyncPointCHROMIUM();
GL_APICALL GLuint64 GL_APIENTRY glInsertFenceSyncCHROMIUM();
GL_APICALL void GL_APIENTRY glGenSyncTokenCHROMIUM(GLuint64 fence_sync,
GLbyte* sync_token);
+GL_APICALL void GL_APIENTRY glGenUnverifiedSyncTokenCHROMIUM(
+ GLuint64 fence_sync, GLbyte* sync_token);
+GL_APICALL void GL_APIENTRY glVerifySyncTokensCHROMIUM(GLbyte **sync_tokens,
+ GLsizei count);
GL_APICALL void GL_APIENTRY glWaitSyncTokenCHROMIUM(const GLbyte* sync_token);
#endif
typedef GLuint (GL_APIENTRYP PFNGLINSERTSYNCPOINTCHROMIUMPROC) ();
typedef GLuint64 (GL_APIENTRYP PFNGLINSERTFENCESYNCCHROMIUMPROC) ();
typedef void (GL_APIENTRYP PFNGLGENSYNCTOKENCHROMIUMPROC) (GLuint64 fence_sync,
GLbyte* sync_token);
+typedef void (GL_APIENTRYP PFNGLGENUNVERIFIEDSYNCTOKENCHROMIUMPROC) (
+ GLuint64 fence_sync, GLbyte* sync_token);
+typedef void (GL_APIENTRYP PFNGLVERIFYSYNCTOKENSCHROMIUMPROC) (
+ GLbyte **sync_tokens, GLsizei count);
typedef void (GL_APIENTRYP PFNGLWAITSYNCTOKENCHROMIUM) (
const GLbyte* sync_tokens);
#endif /* GL_CHROMIUM_sync_point */