Merge pull request #278 from hfink-daqri/gl-mesa-egl-sync

Add GL_MESA_EGL_sync extension
diff --git a/api/GL/glcorearb.h b/api/GL/glcorearb.h
index e568510..e8515a1 100755
--- a/api/GL/glcorearb.h
+++ b/api/GL/glcorearb.h
@@ -4026,6 +4026,10 @@
 #endif
 #endif /* GL_EXT_EGL_image_storage */
 
+#ifndef GL_EXT_EGL_sync
+#define GL_EXT_EGL_sync 1
+#endif /* GL_EXT_EGL_sync */
+
 #ifndef GL_EXT_debug_label
 #define GL_EXT_debug_label 1
 #define GL_PROGRAM_PIPELINE_OBJECT_EXT    0x8A4F
diff --git a/api/GL/glext.h b/api/GL/glext.h
index 8aa0157..8574817 100644
--- a/api/GL/glext.h
+++ b/api/GL/glext.h
@@ -51,7 +51,7 @@
 #define GLAPI extern
 #endif
 
-#define GL_GLEXT_VERSION 20190805
+#define GL_GLEXT_VERSION 20190911
 
 #include <KHR/khrplatform.h>
 
@@ -6481,6 +6481,10 @@
 #endif
 #endif /* GL_EXT_EGL_image_storage */
 
+#ifndef GL_EXT_EGL_sync
+#define GL_EXT_EGL_sync 1
+#endif /* GL_EXT_EGL_sync */
+
 #ifndef GL_EXT_abgr
 #define GL_EXT_abgr 1
 #define GL_ABGR_EXT                       0x8000
diff --git a/api/GL/glxext.h b/api/GL/glxext.h
index ea970a0..662c265 100755
--- a/api/GL/glxext.h
+++ b/api/GL/glxext.h
@@ -34,7 +34,7 @@
 **   https://github.com/KhronosGroup/OpenGL-Registry
 */
 
-#define GLX_GLXEXT_VERSION 20190822
+#define GLX_GLXEXT_VERSION 20190911
 
 /* Generated C header for:
  * API: glx
diff --git a/api/GLES/gl.h b/api/GLES/gl.h
index ea586eb..e59ff13 100644
--- a/api/GLES/gl.h
+++ b/api/GLES/gl.h
@@ -36,7 +36,7 @@
 
 #include <GLES/glplatform.h>
 
-/* Generated on date 20190805 */
+/* Generated on date 20190911 */
 
 /* Generated C header for:
  * API: gles1
diff --git a/api/GLES/glext.h b/api/GLES/glext.h
index be8a569..49df24e 100644
--- a/api/GLES/glext.h
+++ b/api/GLES/glext.h
@@ -38,7 +38,7 @@
 #define GL_APIENTRYP GL_APIENTRY*
 #endif
 
-/* Generated on date 20190805 */
+/* Generated on date 20190911 */
 
 /* Generated C header for:
  * API: gles1
diff --git a/api/GLES2/gl2.h b/api/GLES2/gl2.h
index f1e3dc6..e43cd5d 100644
--- a/api/GLES2/gl2.h
+++ b/api/GLES2/gl2.h
@@ -44,7 +44,7 @@
 #define GL_GLES_PROTOTYPES 1
 #endif
 
-/* Generated on date 20190805 */
+/* Generated on date 20190911 */
 
 /* Generated C header for:
  * API: gles2
diff --git a/api/GLES2/gl2ext.h b/api/GLES2/gl2ext.h
index cab1c45..141e4d6 100644
--- a/api/GLES2/gl2ext.h
+++ b/api/GLES2/gl2ext.h
@@ -38,7 +38,7 @@
 #define GL_APIENTRYP GL_APIENTRY*
 #endif
 
-/* Generated on date 20190805 */
+/* Generated on date 20190911 */
 
 /* Generated C header for:
  * API: gles2
diff --git a/api/GLES3/gl3.h b/api/GLES3/gl3.h
index 838286c..822f4c6 100644
--- a/api/GLES3/gl3.h
+++ b/api/GLES3/gl3.h
@@ -44,7 +44,7 @@
 #define GL_GLES_PROTOTYPES 1
 #endif
 
-/* Generated on date 20190805 */
+/* Generated on date 20190911 */
 
 /* Generated C header for:
  * API: gles2
diff --git a/extensions/EXT/EXT_EGL_sync.txt b/extensions/EXT/EXT_EGL_sync.txt
new file mode 100644
index 0000000..3f2c70b
--- /dev/null
+++ b/extensions/EXT/EXT_EGL_sync.txt
@@ -0,0 +1,85 @@
+Name
+
+    EXT_EGL_sync
+
+Name Strings
+
+    GL_EXT_EGL_sync
+
+Contact
+
+    Heinrich Fink, DAQRI (heinrich.fink 'at' daqri.com)
+
+Contributors
+
+    Heinrich Fink, DAQRI
+    Daniel Stone, Collabora
+    Marek Olšák, AMD
+
+Status
+
+    Proposal
+
+Version
+
+    Version 4, Sept 11, 2019
+
+Number
+
+    OpenGL Extension #546
+
+Dependencies
+
+    EGL_KHR_fence_sync is required.
+
+    This extension is written against the EGL 1.2 Specification, as modified by
+    the EGL_KHR_fence_sync extension.
+
+Overview
+
+    This extension extends EGL_KHR_fence_sync with client API support for
+    OpenGL (compatibility or core profiles) as an EXT extension.
+
+    The "GL_EXT_EGL_sync" string indicates that a fence sync object can be
+    created in association with a fence command placed in the command stream
+    of a bound OpenGL context.
+
+IP Status
+
+    None
+
+New Procedures and Functions
+
+    None
+
+New Tokens
+
+    None
+
+Additions to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+    Modify Section 3.8.1 Sync Objects, page 43
+
+    After "Each client API which supports..." add a new paragraph:
+
+    If the GL_EXT_EGL_sync extension is supported by OpenGL (compatibility or
+    core profile), a fence sync object may be created when the currently bound API
+    is OpenGL.
+
+Errors
+
+    None
+
+Revision History
+
+    Version 4, Sept 11th, 2019
+        Change scope from MESA to EXT on request by James Jones (NVIDIA)
+
+    Version 3, Sept 6th, 2019
+        Update extension no
+
+    Version 2, July 29th, 2019
+        Update extension no in draft
+
+    Version 1, June 5th, 2019
+        Initial draft (Heinrich Fink)
diff --git a/extensions/glext.php b/extensions/glext.php
index 9baab5d..8848c66 100644
--- a/extensions/glext.php
+++ b/extensions/glext.php
@@ -1029,4 +1029,6 @@
 </li>
 <li value=545><a href="extensions/NV/GLX_NV_multigpu_context.txt">GLX_NV_multigpu_context</a>
 </li>
+<li value=546><a href="extensions/EXT/EXT_EGL_sync.txt">GL_EXT_EGL_sync</a>
+</li>
 </ol>
diff --git a/extensions/registry.py b/extensions/registry.py
index acd3d7f..966b3a6 100644
--- a/extensions/registry.py
+++ b/extensions/registry.py
@@ -1801,6 +1801,12 @@
         'flags' : { 'public' },
         'url' : 'extensions/EXT/EXT_EGL_image_storage.txt',
     },
+    'GL_EXT_EGL_sync' : {
+        'number' : 546,
+        'flags' : { 'public' },
+        'supporters' : { 'MESA' },
+        'url' : 'extensions/EXT/EXT_EGL_sync.txt',
+    },
     'GL_EXT_memory_object' : {
         'number' : 503,
         'esnumber' : 280,
diff --git a/xml/gl.xml b/xml/gl.xml
index 0a7b86b..8a325e3 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -44169,6 +44169,7 @@
                 <command name="glEGLImageTargetTextureStorageEXT"/>
             </require>
         </extension>
+        <extension name="GL_EXT_EGL_sync" supported="gl|glcore"/>
         <extension name="GL_EXT_YUV_target" supported="gles2">
             <require>
                 <enum name="GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT"/>