diff options
author | dyen <dyen@chromium.org> | 2015-12-09 14:13:42 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-09 22:14:31 +0000 |
commit | 36bf34f140999029c2ddca0497755a2b0d22897a (patch) | |
tree | 53f2450f39a0c44e83bb9ad991733bac68a3ddf5 /gpu/GLES2 | |
parent | 82dee6e429ccf6775024a2dcfa10e745518ca566 (diff) | |
download | chromium_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.txt | 23 | ||||
-rw-r--r-- | gpu/GLES2/gl2chromium_autogen.h | 1 | ||||
-rw-r--r-- | gpu/GLES2/gl2extchromium.h | 8 |
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 */ |