Merge pull request #6 from groleo/master

genheaders.py: make it usable as a module
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..a11610b
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1 @@
+A reminder that this issue tracker is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil.
diff --git a/api/EGL/egl.h b/api/EGL/egl.h
index 2d8b6f7..3e2f7e7 100644
--- a/api/EGL/egl.h
+++ b/api/EGL/egl.h
@@ -28,17 +28,17 @@
 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
 */
 /*
-** This header is generated from the Khronos OpenGL / OpenGL ES XML
-** API Registry. The current version of the Registry, generator scripts
+** This header is generated from the Khronos EGL XML API Registry.
+** The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
 **   http://www.khronos.org/registry/egl
 **
-** Khronos $Revision$ on $Date$
+** Khronos $Git commit SHA1: 726475c203 $ on $Git commit date: 2018-10-03 23:51:49 -0700 $
 */
 
 #include <EGL/eglplatform.h>
 
-/* Generated on date 20170203 */
+/* Generated on date 20181204 */
 
 /* Generated C header for:
  * API: egl
diff --git a/api/EGL/eglext.h b/api/EGL/eglext.h
index 008fa76..82d0186 100644
--- a/api/EGL/eglext.h
+++ b/api/EGL/eglext.h
@@ -28,17 +28,17 @@
 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
 */
 /*
-** This header is generated from the Khronos OpenGL / OpenGL ES XML
-** API Registry. The current version of the Registry, generator scripts
+** This header is generated from the Khronos EGL XML API Registry.
+** The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
 **   http://www.khronos.org/registry/egl
 **
-** Khronos $Revision$ on $Date$
+** Khronos $Git commit SHA1: 7866a17153 $ on $Git commit date: 2019-01-25 23:06:48 -0800 $
 */
 
 #include <EGL/eglplatform.h>
 
-#define EGL_EGLEXT_VERSION 20170203
+#define EGL_EGLEXT_VERSION 20190125
 
 /* Generated C header for:
  * API: egl
@@ -133,6 +133,15 @@
 #endif
 #endif /* EGL_KHR_debug */
 
+#ifndef EGL_KHR_display_reference
+#define EGL_KHR_display_reference 1
+#define EGL_TRACK_REFERENCES_KHR          0x3352
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBKHRPROC) (EGLDisplay dpy, EGLint name, EGLAttrib *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribKHR (EGLDisplay dpy, EGLint name, EGLAttrib *value);
+#endif
+#endif /* EGL_KHR_display_reference */
+
 #ifndef EGL_KHR_fence_sync
 #define EGL_KHR_fence_sync 1
 typedef khronos_utime_nanoseconds_t EGLTimeKHR;
@@ -486,6 +495,47 @@
 #define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C
 #endif /* EGL_ANDROID_front_buffer_auto_refresh */
 
+#ifndef EGL_ANDROID_get_frame_timestamps
+#define EGL_ANDROID_get_frame_timestamps 1
+typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
+#define EGL_TIMESTAMP_PENDING_ANDROID     EGL_CAST(EGLnsecsANDROID,-2)
+#define EGL_TIMESTAMP_INVALID_ANDROID     EGL_CAST(EGLnsecsANDROID,-1)
+#define EGL_TIMESTAMPS_ANDROID            0x3430
+#define EGL_COMPOSITE_DEADLINE_ANDROID    0x3431
+#define EGL_COMPOSITE_INTERVAL_ANDROID    0x3432
+#define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433
+#define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434
+#define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435
+#define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436
+#define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437
+#define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438
+#define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439
+#define EGL_DISPLAY_PRESENT_TIME_ANDROID  0x343A
+#define EGL_DEQUEUE_READY_TIME_ANDROID    0x343B
+#define EGL_READS_DONE_TIME_ANDROID       0x343C
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint name);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps,  const EGLint *names, EGLnsecsANDROID *values);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETNEXTFRAMEIDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps,  const EGLint *timestamps, EGLnsecsANDROID *values);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint name);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingANDROID (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps,  const EGLint *names, EGLnsecsANDROID *values);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetNextFrameIdANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampsANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps,  const EGLint *timestamps, EGLnsecsANDROID *values);
+#endif
+#endif /* EGL_ANDROID_get_frame_timestamps */
+
+#ifndef EGL_ANDROID_get_native_client_buffer
+#define EGL_ANDROID_get_native_client_buffer 1
+struct AHardwareBuffer;
+typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) (const struct AHardwareBuffer *buffer);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLClientBuffer EGLAPIENTRY eglGetNativeClientBufferANDROID (const struct AHardwareBuffer *buffer);
+#endif
+#endif /* EGL_ANDROID_get_native_client_buffer */
+
 #ifndef EGL_ANDROID_image_native_buffer
 #define EGL_ANDROID_image_native_buffer 1
 #define EGL_NATIVE_BUFFER_ANDROID         0x3140
@@ -505,7 +555,6 @@
 
 #ifndef EGL_ANDROID_presentation_time
 #define EGL_ANDROID_presentation_time 1
-typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
 typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
 #ifdef EGL_EGLEXT_PROTOTYPES
 EGLAPI EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
@@ -555,6 +604,11 @@
 #define EGL_DISCARD_SAMPLES_ARM           0x3286
 #endif /* EGL_ARM_pixmap_multisample_discard */
 
+#ifndef EGL_EXT_bind_to_front
+#define EGL_EXT_bind_to_front 1
+#define EGL_FRONT_BUFFER_EXT              0x3464
+#endif /* EGL_EXT_bind_to_front */
+
 #ifndef EGL_EXT_buffer_age
 #define EGL_EXT_buffer_age 1
 #define EGL_BUFFER_AGE_EXT                0x313D
@@ -564,6 +618,16 @@
 #define EGL_EXT_client_extensions 1
 #endif /* EGL_EXT_client_extensions */
 
+#ifndef EGL_EXT_client_sync
+#define EGL_EXT_client_sync 1
+#define EGL_SYNC_CLIENT_EXT               0x3364
+#define EGL_SYNC_CLIENT_SIGNAL_EXT        0x3365
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLCLIENTSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglClientSignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
+#endif
+#endif /* EGL_EXT_client_sync */
+
 #ifndef EGL_EXT_compositor
 #define EGL_EXT_compositor 1
 #define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460
@@ -617,6 +681,7 @@
 #ifndef EGL_EXT_device_drm
 #define EGL_EXT_device_drm 1
 #define EGL_DRM_DEVICE_FILE_EXT           0x3233
+#define EGL_DRM_MASTER_FD_EXT             0x333C
 #endif /* EGL_EXT_device_drm */
 
 #ifndef EGL_EXT_device_enumeration
@@ -642,6 +707,26 @@
 #define EGL_GL_COLORSPACE_BT2020_PQ_EXT   0x3340
 #endif /* EGL_EXT_gl_colorspace_bt2020_pq */
 
+#ifndef EGL_EXT_gl_colorspace_display_p3
+#define EGL_EXT_gl_colorspace_display_p3 1
+#define EGL_GL_COLORSPACE_DISPLAY_P3_EXT  0x3363
+#endif /* EGL_EXT_gl_colorspace_display_p3 */
+
+#ifndef EGL_EXT_gl_colorspace_display_p3_linear
+#define EGL_EXT_gl_colorspace_display_p3_linear 1
+#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362
+#endif /* EGL_EXT_gl_colorspace_display_p3_linear */
+
+#ifndef EGL_EXT_gl_colorspace_display_p3_passthrough
+#define EGL_EXT_gl_colorspace_display_p3_passthrough 1
+#define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490
+#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */
+
+#ifndef EGL_EXT_gl_colorspace_scrgb
+#define EGL_EXT_gl_colorspace_scrgb 1
+#define EGL_GL_COLORSPACE_SCRGB_EXT       0x3351
+#endif /* EGL_EXT_gl_colorspace_scrgb */
+
 #ifndef EGL_EXT_gl_colorspace_scrgb_linear
 #define EGL_EXT_gl_colorspace_scrgb_linear 1
 #define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350
@@ -694,6 +779,18 @@
 #endif
 #endif /* EGL_EXT_image_dma_buf_import_modifiers */
 
+#ifndef EGL_EXT_image_gl_colorspace
+#define EGL_EXT_image_gl_colorspace 1
+#define EGL_GL_COLORSPACE_DEFAULT_EXT     0x314D
+#endif /* EGL_EXT_image_gl_colorspace */
+
+#ifndef EGL_EXT_image_implicit_sync_control
+#define EGL_EXT_image_implicit_sync_control 1
+#define EGL_IMPORT_SYNC_TYPE_EXT          0x3470
+#define EGL_IMPORT_IMPLICIT_SYNC_EXT      0x3471
+#define EGL_IMPORT_EXPLICIT_SYNC_EXT      0x3472
+#endif /* EGL_EXT_image_implicit_sync_control */
+
 #ifndef EGL_EXT_multiview_window
 #define EGL_EXT_multiview_window 1
 #define EGL_MULTIVIEW_VIEW_COUNT_EXT      0x3134
@@ -793,6 +890,12 @@
 #endif
 #endif /* EGL_EXT_stream_consumer_egloutput */
 
+#ifndef EGL_EXT_surface_CTA861_3_metadata
+#define EGL_EXT_surface_CTA861_3_metadata 1
+#define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360
+#define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361
+#endif /* EGL_EXT_surface_CTA861_3_metadata */
+
 #ifndef EGL_EXT_surface_SMPTE2086_metadata
 #define EGL_EXT_surface_SMPTE2086_metadata 1
 #define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341
@@ -805,6 +908,7 @@
 #define EGL_SMPTE2086_WHITE_POINT_Y_EXT   0x3348
 #define EGL_SMPTE2086_MAX_LUMINANCE_EXT   0x3349
 #define EGL_SMPTE2086_MIN_LUMINANCE_EXT   0x334A
+#define EGL_METADATA_SCALING_EXT          50000
 #endif /* EGL_EXT_surface_SMPTE2086_metadata */
 
 #ifndef EGL_EXT_swap_buffers_with_damage
@@ -815,6 +919,14 @@
 #endif
 #endif /* EGL_EXT_swap_buffers_with_damage */
 
+#ifndef EGL_EXT_sync_reuse
+#define EGL_EXT_sync_reuse 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglUnsignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
+#endif
+#endif /* EGL_EXT_sync_reuse */
+
 #ifndef EGL_EXT_yuv_surface
 #define EGL_EXT_yuv_surface 1
 #define EGL_YUV_ORDER_EXT                 0x3301
@@ -890,6 +1002,7 @@
 #define EGL_DRM_BUFFER_STRIDE_MESA        0x31D4
 #define EGL_DRM_BUFFER_USE_SCANOUT_MESA   0x00000001
 #define EGL_DRM_BUFFER_USE_SHARE_MESA     0x00000002
+#define EGL_DRM_BUFFER_USE_CURSOR_MESA    0x00000004
 typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list);
 typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
 #ifdef EGL_EGLEXT_PROTOTYPES
@@ -918,6 +1031,16 @@
 #define EGL_PLATFORM_SURFACELESS_MESA     0x31DD
 #endif /* EGL_MESA_platform_surfaceless */
 
+#ifndef EGL_MESA_query_driver
+#define EGL_MESA_query_driver 1
+typedef char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERCONFIGPROC) (EGLDisplay dpy);
+typedef const char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERNAMEPROC) (EGLDisplay dpy);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI char *EGLAPIENTRY eglGetDisplayDriverConfig (EGLDisplay dpy);
+EGLAPI const char *EGLAPIENTRY eglGetDisplayDriverName (EGLDisplay dpy);
+#endif
+#endif /* EGL_MESA_query_driver */
+
 #ifndef EGL_NOK_swap_region
 #define EGL_NOK_swap_region 1
 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
@@ -944,6 +1067,11 @@
 #define EGL_AUTO_STEREO_NV                0x3136
 #endif /* EGL_NV_3dvision_surface */
 
+#ifndef EGL_NV_context_priority_realtime
+#define EGL_NV_context_priority_realtime 1
+#define EGL_CONTEXT_PRIORITY_REALTIME_NV  0x3357
+#endif /* EGL_NV_context_priority_realtime */
+
 #ifndef EGL_NV_coverage_sample
 #define EGL_NV_coverage_sample 1
 #define EGL_COVERAGE_BUFFERS_NV           0x30E0
@@ -1011,9 +1139,9 @@
 #define EGL_YUV_PLANE0_TEXTURE_UNIT_NV    0x332C
 #define EGL_YUV_PLANE1_TEXTURE_UNIT_NV    0x332D
 #define EGL_YUV_PLANE2_TEXTURE_UNIT_NV    0x332E
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLAttrib *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
 #ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
 #endif
 #endif /* EGL_NV_stream_consumer_gltexture_yuv */
 
@@ -1053,6 +1181,14 @@
 #define EGL_STREAM_FIFO_SYNCHRONOUS_NV    0x3336
 #endif /* EGL_NV_stream_fifo_synchronous */
 
+#ifndef EGL_NV_stream_flush
+#define EGL_NV_stream_flush 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMFLUSHNVPROC) (EGLDisplay dpy, EGLStreamKHR stream);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamFlushNV (EGLDisplay dpy, EGLStreamKHR stream);
+#endif
+#endif /* EGL_NV_stream_flush */
+
 #ifndef EGL_NV_stream_frame_limits
 #define EGL_NV_stream_frame_limits 1
 #define EGL_PRODUCER_MAX_FRAME_HINT_NV    0x3337
diff --git a/api/EGL/eglplatform.h b/api/EGL/eglplatform.h
index 7041b2f..6d0d8db 100644
--- a/api/EGL/eglplatform.h
+++ b/api/EGL/eglplatform.h
@@ -77,23 +77,40 @@
 typedef HBITMAP EGLNativePixmapType;
 typedef HWND    EGLNativeWindowType;
 
-#elif defined(__APPLE__) || defined(__WINSCW__) || defined(__SYMBIAN32__)  /* Symbian */
+#elif defined(__WINSCW__) || defined(__SYMBIAN32__)  /* Symbian */
 
 typedef int   EGLNativeDisplayType;
-typedef void *EGLNativeWindowType;
 typedef void *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(WL_EGL_PLATFORM)
+
+typedef struct wl_display     *EGLNativeDisplayType;
+typedef struct wl_egl_pixmap  *EGLNativePixmapType;
+typedef struct wl_egl_window  *EGLNativeWindowType;
+
+#elif defined(__GBM__)
+
+typedef struct gbm_device  *EGLNativeDisplayType;
+typedef struct gbm_bo      *EGLNativePixmapType;
+typedef void               *EGLNativeWindowType;
 
 #elif defined(__ANDROID__) || defined(ANDROID)
 
-#include <android/native_window.h>
-
+struct ANativeWindow;
 struct egl_native_pixmap_t;
 
-typedef struct ANativeWindow*           EGLNativeWindowType;
-typedef struct egl_native_pixmap_t*     EGLNativePixmapType;
 typedef void*                           EGLNativeDisplayType;
+typedef struct egl_native_pixmap_t*     EGLNativePixmapType;
+typedef struct ANativeWindow*           EGLNativeWindowType;
 
-#elif defined(__unix__)
+#elif defined(USE_OZONE)
+
+typedef intptr_t EGLNativeDisplayType;
+typedef intptr_t EGLNativePixmapType;
+typedef intptr_t EGLNativeWindowType;
+
+#elif defined(__unix__) || defined(USE_X11)
 
 /* X11 (tentative)  */
 #include <X11/Xlib.h>
@@ -103,6 +120,20 @@
 typedef Pixmap   EGLNativePixmapType;
 typedef Window   EGLNativeWindowType;
 
+#elif defined(__APPLE__)
+
+typedef int   EGLNativeDisplayType;
+typedef void *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(__HAIKU__)
+
+#include <kernel/image.h>
+
+typedef void              *EGLNativeDisplayType;
+typedef khronos_uintptr_t  EGLNativePixmapType;
+typedef khronos_uintptr_t  EGLNativeWindowType;
+
 #else
 #error "Platform not recognized"
 #endif
diff --git a/api/KHR/khrplatform.h b/api/KHR/khrplatform.h
index 07b61b9..975bbff 100644
--- a/api/KHR/khrplatform.h
+++ b/api/KHR/khrplatform.h
@@ -2,7 +2,7 @@
 #define __khrplatform_h_
 
 /*
-** Copyright (c) 2008-2009 The Khronos Group Inc.
+** Copyright (c) 2008-2018 The Khronos Group Inc.
 **
 ** Permission is hereby granted, free of charge, to any person obtaining a
 ** copy of this software and/or associated documentation files (the
@@ -26,18 +26,16 @@
 
 /* Khronos platform-specific types and definitions.
  *
- * $Revision: 32517 $ on $Date: 2016-03-11 02:41:19 -0800 (Fri, 11 Mar 2016) $
+ * The master copy of khrplatform.h is maintained in the Khronos EGL
+ * Registry repository at https://github.com/KhronosGroup/EGL-Registry
+ * The last semantic modification to khrplatform.h was at commit ID:
+ *      67a3e0864c2d75ea5287b9f3d2eb74a745936692
  *
  * Adopters may modify this file to suit their platform. Adopters are
  * encouraged to submit platform specific modifications to the Khronos
  * group so that they can be included in future versions of this file.
- * Please submit changes by sending them to the public Khronos Bugzilla
- * (http://khronos.org/bugzilla) by filing a bug against product
- * "Khronos (general)" component "Registry".
- *
- * A predefined template which fills in some of the bug fields can be
- * reached using http://tinyurl.com/khrplatform-h-bugreport, but you
- * must create a Bugzilla login first.
+ * Please submit changes by filing pull requests or issues on
+ * the EGL Registry repository linked above.
  *
  *
  * See the Implementer's Guidelines for information about where this file
@@ -102,8 +100,7 @@
 #elif defined (__SYMBIAN32__)
 #   define KHRONOS_APICALL IMPORT_C
 #elif defined(__ANDROID__)
-#   include <sys/cdefs.h>
-#   define KHRONOS_APICALL __attribute__((visibility("default"))) __NDK_FPABI__
+#   define KHRONOS_APICALL __attribute__((visibility("default")))
 #else
 #   define KHRONOS_APICALL
 #endif
diff --git a/api/Makefile b/api/Makefile
index cc4ad4e..64922eb 100644
--- a/api/Makefile
+++ b/api/Makefile
@@ -1,4 +1,4 @@
-# Copyright (c) 2013-2016 The Khronos Group Inc.
+# Copyright (c) 2013-2018 The Khronos Group Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
 EGLHEADERS = EGL/egl.h EGL/eglext.h
 
 # Generation tools
-PYTHON = python
+PYTHON = python3
 PYFILES = genheaders.py reg.py
 REGISTRY = egl.xml
 GENOPTS =
diff --git a/api/egl.xml b/api/egl.xml
index 65a1a79..10e3424 100644
--- a/api/egl.xml
+++ b/api/egl.xml
@@ -38,6 +38,7 @@
         <type name="khrplatform">#include &lt;KHR/khrplatform.h&gt;</type>
         <type name="eglplatform" requires="khrplatform">#include &lt;EGL/eglplatform.h&gt;</type>
         <type name="khronos_utime_nanoseconds_t" requires="khrplatform"/>
+        <type name="khronos_stime_nanoseconds_t" requires="khrplatform"/>
         <type name="khronos_uint64_t" requires="khrplatform"/>
         <type name="khronos_ssize_t" requires="khrplatform"/>
         <type name="EGLNativeDisplayType" requires="eglplatform"/>
@@ -47,6 +48,7 @@
         <type name="NativeDisplayType" requires="eglplatform"/>
         <type name="NativePixmapType" requires="eglplatform"/>
         <type name="NativeWindowType" requires="eglplatform"/>
+        <type>struct <name>AHardwareBuffer</name>;</type>
         <!-- Dummy placeholders for non-EGL types -->
         <type name="Bool"/>
             <!-- These are actual EGL types.  -->
@@ -147,6 +149,7 @@
     <enums namespace="EGLDRMBufferUseMESAMask" type="bitmask" comment="EGL_DRM_BUFFER_USE_MESA bits">
         <enum value="0x00000001" name="EGL_DRM_BUFFER_USE_SCANOUT_MESA"/>
         <enum value="0x00000002" name="EGL_DRM_BUFFER_USE_SHARE_MESA"/>
+        <enum value="0x00000004" name="EGL_DRM_BUFFER_USE_CURSOR_MESA"/>
     </enums>
 
     <!-- Should be shared with GL, but aren't aren't since the
@@ -496,8 +499,9 @@
         <enum value="0x3146" name="EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID"/>
         <enum value="0x3147" name="EGL_FRAMEBUFFER_TARGET_ANDROID"/>
             <unused start="0x3148" end="0x314B"/>
-        <enum value="0x314C"     name="EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID"/>
-            <unused start="0x314D" end="0x314F"/>
+        <enum value="0x314C" name="EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID"/>
+        <enum value="0x314D" name="EGL_GL_COLORSPACE_DEFAULT_EXT"/>
+            <unused start="0x314E" end="0x314F"/>
     </enums>
 
     <enums namespace="EGL" start="0x3150" end="0x315F" vendor="NOK" comment="Reserved for Robert Palmer (Khronos bug 5368)">
@@ -768,7 +772,8 @@
         <enum value="0x3339" name="EGL_COLOR_COMPONENT_TYPE_EXT"/>
         <enum value="0x333A" name="EGL_COLOR_COMPONENT_TYPE_FIXED_EXT"/>
         <enum value="0x333B" name="EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT"/>
-            <unused start="0x333C" end="0x333E"/>
+        <enum value="0x333C" name="EGL_DRM_MASTER_FD_EXT"/>
+            <unused start="0x333D" end="0x333E"/>
         <enum value="0x333F" name="EGL_GL_COLORSPACE_BT2020_LINEAR_EXT"/>
         <enum value="0x3340" name="EGL_GL_COLORSPACE_BT2020_PQ_EXT"/>
         <enum value="0x3341" name="EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT"/>
@@ -781,13 +786,25 @@
         <enum value="0x3348" name="EGL_SMPTE2086_WHITE_POINT_Y_EXT"/>
         <enum value="0x3349" name="EGL_SMPTE2086_MAX_LUMINANCE_EXT"/>
         <enum value="0x334A" name="EGL_SMPTE2086_MIN_LUMINANCE_EXT"/>
+        <enum value="50000"  name="EGL_METADATA_SCALING_EXT"/>
             <unused start="0x334B"/>
         <enum value="0x334C" name="EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV"/>
         <enum value="0x334D" name="EGL_STREAM_CROSS_OBJECT_NV"/>
         <enum value="0x334E" name="EGL_STREAM_CROSS_DISPLAY_NV"/>
         <enum value="0x334F" name="EGL_STREAM_CROSS_SYSTEM_NV"/>
         <enum value="0x3350" name="EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT"/>
-            <unused start="0x3351" end="0x339F"/>
+        <enum value="0x3351" name="EGL_GL_COLORSPACE_SCRGB_EXT"/>
+        <enum value="0x3352" name="EGL_TRACK_REFERENCES_KHR"/>
+            <unused start="0x3353" end="0x3356"/>
+        <enum value="0x3357" name="EGL_CONTEXT_PRIORITY_REALTIME_NV"/>
+            <unused start="0x3358" end="0x335F"/>
+        <enum value="0x3360" name="EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT"/>
+        <enum value="0x3361" name="EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT"/>
+        <enum value="0x3362" name="EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT"/>
+        <enum value="0x3363" name="EGL_GL_COLORSPACE_DISPLAY_P3_EXT"/>
+        <enum value="0x3364" name="EGL_SYNC_CLIENT_EXT"/>
+        <enum value="0x3365" name="EGL_SYNC_CLIENT_SIGNAL_EXT"/>
+            <unused start="0x3366" end="0x339F"/>
     </enums>
 
     <enums namespace="EGL" start="0x33A0" end="0x33AF" vendor="ANGLE" comment="Reserved for Shannon Woods (Bug 13175)">
@@ -822,7 +839,22 @@
     </enums>
 
     <enums namespace="EGL" start="0x3430" end="0x343F" vendor="ANDROID" comment="Reserved for Pablo Ceballos (Bug 15874)">
-            <unused start="0x3430" end="0x343F"/>
+        <enum value="EGL_CAST(EGLnsecsANDROID,-2)" name="EGL_TIMESTAMP_PENDING_ANDROID"/>
+        <enum value="EGL_CAST(EGLnsecsANDROID,-1)" name="EGL_TIMESTAMP_INVALID_ANDROID"/>
+        <enum value="0x3430" name="EGL_TIMESTAMPS_ANDROID"/>
+        <enum value="0x3431" name="EGL_COMPOSITE_DEADLINE_ANDROID"/>
+        <enum value="0x3432" name="EGL_COMPOSITE_INTERVAL_ANDROID"/>
+        <enum value="0x3433" name="EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID"/>
+        <enum value="0x3434" name="EGL_REQUESTED_PRESENT_TIME_ANDROID"/>
+        <enum value="0x3435" name="EGL_RENDERING_COMPLETE_TIME_ANDROID"/>
+        <enum value="0x3436" name="EGL_COMPOSITION_LATCH_TIME_ANDROID"/>
+        <enum value="0x3437" name="EGL_FIRST_COMPOSITION_START_TIME_ANDROID"/>
+        <enum value="0x3438" name="EGL_LAST_COMPOSITION_START_TIME_ANDROID"/>
+        <enum value="0x3439" name="EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID"/>
+        <enum value="0x343A" name="EGL_DISPLAY_PRESENT_TIME_ANDROID"/>
+        <enum value="0x343B" name="EGL_DEQUEUE_READY_TIME_ANDROID"/>
+        <enum value="0x343C" name="EGL_READS_DONE_TIME_ANDROID"/>
+            <unused start="0x343D" end="0x343F"/>
     </enums>
 
     <enums namespace="EGL" start="0x3440" end="0x344F" vendor="ANDROID" comment="Reserved for Kristian Kristensen (Bug 16033)">
@@ -843,13 +875,27 @@
     <enums namespace="EGL" start="0x3450" end="0x345F" vendor="ANGLE" comment="Reserved for Shannon Woods (Bug 16106)">
             <unused start="0x3450" end="0x345F"/>
     </enums>
-    
+
     <enums namespace="EGL" start="0x3460" end="0x346F" vendor="COREAVI" comment="Reserved for Daniel Herring (Bug 16162)">
         <enum value="0x3460" name="EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT"/>
         <enum value="0x3461" name="EGL_EXTERNAL_REF_ID_EXT"/>
         <enum value="0x3462" name="EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT"/>
         <enum value="0x3463" name="EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT"/>
-        <unused start="0x3464" end="0x346F"/>
+        <enum value="0x3464" name="EGL_FRONT_BUFFER_EXT"/>
+        <unused start="0x3465" end="0x346F"/>
+    </enums>
+
+    <enums namespace="EGL" start="0x3470" end="0x347F" vendor="EXT" comment="Reserved for Daniel Stone (PR 14)">
+        <enum value="0x3470" name="EGL_IMPORT_SYNC_TYPE_EXT"/>
+        <enum value="0x3471" name="EGL_IMPORT_IMPLICIT_SYNC_EXT"/>
+        <enum value="0x3472" name="EGL_IMPORT_EXPLICIT_SYNC_EXT"/>
+    </enums>
+    <enums namespace="EGL" start="0x3480" end="0x348F" vendor="ANGLE" comment="Reserved for Courtney Goeltzenleuchter - ANGLE (gitlab EGL bug 7)">
+            <unused start="0x3480" end="0x348F"/>
+    </enums>
+    <enums namespace="EGL" start="0x3490" end="0x349F" vendor="EXT" comment="Reserved for Courtney Goeltzenleuchter - Android (gitlab EGL bug 69)">
+        <enum value="0x3490" name="EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT"/>
+            <unused start="0x3491" end="0x349F"/>
     </enums>
 
 <!-- Please remember that new enumerant allocations must be obtained by
@@ -861,8 +907,8 @@
 
 <!-- Reservable for future use. To generate a new range, allocate multiples
      of 16 starting at the lowest available point in this block. -->
-    <enums namespace="EGL" start="0x3470" end="0x3FFF" vendor="KHR" comment="Reserved for future use">
-            <unused start="0x3470" end="0x3FFF"/>
+    <enums namespace="EGL" start="0x34A0" end="0x3FFF" vendor="KHR" comment="Reserved for future use">
+            <unused start="0x34A0" end="0x3FFF"/>
     </enums>
 
     <enums namespace="EGL" start="0x8F70" end="0x8F7F" vendor="HI" comment="For Mark Callow, Khronos bug 4055. Shared with GL.">
@@ -894,6 +940,12 @@
             <param><ptype>EGLint</ptype> *<name>num_config</name></param>
         </command>
         <command>
+            <proto><ptype>EGLBoolean</ptype> <name>eglClientSignalSyncEXT</name></proto>
+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+            <param><ptype>EGLSync</ptype> <name>sync</name></param>
+            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+        </command>
+        <command>
             <proto><ptype>EGLint</ptype> <name>eglClientWaitSync</name></proto>
             <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
             <param><ptype>EGLSync</ptype> <name>sync</name></param>
@@ -1176,9 +1228,21 @@
             <param><ptype>EGLNativeDisplayType</ptype> <name>display_id</name></param>
         </command>
         <command>
+            <proto>char *<name>eglGetDisplayDriverConfig</name></proto>
+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+        </command>
+        <command>
+            <proto>const char *<name>eglGetDisplayDriverName</name></proto>
+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+        </command>
+        <command>
             <proto><ptype>EGLint</ptype> <name>eglGetError</name></proto>
         </command>
         <command>
+            <proto><ptype>EGLClientBuffer</ptype> <name>eglGetNativeClientBufferANDROID</name></proto>
+            <param>const struct <ptype>AHardwareBuffer</ptype> *<name>buffer</name></param>
+        </command>
+        <command>
             <proto><ptype>EGLBoolean</ptype> <name>eglGetOutputLayersEXT</name></proto>
             <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
             <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
@@ -1297,6 +1361,41 @@
             <param><ptype>EGLnsecsANDROID</ptype> <name>time</name></param>
         </command>
         <command>
+            <proto><ptype>EGLBoolean</ptype> <name>eglGetCompositorTimingSupportedANDROID</name></proto>
+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+            <param><ptype>EGLint</ptype> <name>name</name></param>
+        </command>
+        <command>
+            <proto><ptype>EGLBoolean</ptype> <name>eglGetCompositorTimingANDROID</name></proto>
+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+            <param><ptype>EGLint</ptype> <name>numTimestamps</name></param>
+            <param> const <ptype>EGLint</ptype> *<name>names</name></param>
+            <param><ptype>EGLnsecsANDROID</ptype> *<name>values</name></param>
+        </command>
+        <command>
+            <proto><ptype>EGLBoolean</ptype> <name>eglGetNextFrameIdANDROID</name></proto>
+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+            <param><ptype>EGLuint64KHR</ptype> *<name>frameId</name></param>
+        </command>
+        <command>
+            <proto><ptype>EGLBoolean</ptype> <name>eglGetFrameTimestampSupportedANDROID</name></proto>
+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+            <param><ptype>EGLint</ptype> <name>timestamp</name></param>
+        </command>
+        <command>
+            <proto><ptype>EGLBoolean</ptype> <name>eglGetFrameTimestampsANDROID</name></proto>
+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+            <param><ptype>EGLuint64KHR</ptype> <name>frameId</name></param>
+            <param><ptype>EGLint</ptype> <name>numTimestamps</name></param>
+            <param> const <ptype>EGLint</ptype> *<name>timestamps</name></param>
+            <param><ptype>EGLnsecsANDROID</ptype> *<name>values</name></param>
+        </command>
+        <command>
             <proto><ptype>EGLenum</ptype> <name>eglQueryAPI</name></proto>
         </command>
         <command>
@@ -1333,29 +1432,36 @@
             <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
             <param><ptype>EGLint</ptype> <name>attribute</name></param>
             <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
+            <alias name="eglQueryDisplayAttribKHR"/>
+        </command>
+        <command>
+            <proto><ptype>EGLBoolean</ptype> <name>eglQueryDisplayAttribKHR</name></proto>
+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+            <param><ptype>EGLint</ptype> <name>name</name></param>
+            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
         </command>
         <command>
             <proto><ptype>EGLBoolean</ptype> <name>eglQueryDisplayAttribNV</name></proto>
             <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
             <param><ptype>EGLint</ptype> <name>attribute</name></param>
             <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
-            <alias name="eglQueryDisplayAttribEXT"/>
+            <alias name="eglQueryDisplayAttribKHR"/>
         </command>
         <command>
             <proto><ptype>EGLBoolean</ptype> <name>eglQueryDmaBufFormatsEXT</name></proto>
             <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
             <param><ptype>EGLint</ptype> <name>max_formats</name></param>
-            <param><ptype>EGLint</ptype> <name>*formats</name></param>
-            <param><ptype>EGLint</ptype> <name>*num_formats</name></param>
+            <param><ptype>EGLint</ptype> *<name>formats</name></param>
+            <param><ptype>EGLint</ptype> *<name>num_formats</name></param>
         </command>
         <command>
             <proto><ptype>EGLBoolean</ptype> <name>eglQueryDmaBufModifiersEXT</name></proto>
             <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
             <param><ptype>EGLint</ptype> <name>format</name></param>
             <param><ptype>EGLint</ptype> <name>max_modifiers</name></param>
-            <param><ptype>EGLuint64KHR</ptype> <name>*modifiers</name></param>
-            <param><ptype>EGLBoolean</ptype> <name>*external_only</name></param>
-            <param><ptype>EGLint</ptype> <name>*num_modifiers</name></param>
+            <param><ptype>EGLuint64KHR</ptype> *<name>modifiers</name></param>
+            <param><ptype>EGLBoolean</ptype> *<name>external_only</name></param>
+            <param><ptype>EGLint</ptype> *<name>num_modifiers</name></param>
         </command>
         <command>
             <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativeDisplayNV</name></proto>
@@ -1545,7 +1651,7 @@
             <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerGLTextureExternalAttribsNV</name></proto>
             <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
             <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
-            <param><ptype>EGLAttrib</ptype> <name>*attrib_list</name></param>
+            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
         </command>
         <command>
             <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerOutputEXT</name></proto>
@@ -1565,6 +1671,11 @@
             <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
         </command>
         <command>
+            <proto><ptype>EGLBoolean</ptype> <name>eglStreamFlushNV</name></proto>
+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+        </command>
+        <command>
             <proto><ptype>EGLBoolean</ptype> <name>eglSurfaceAttrib</name></proto>
             <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
             <param><ptype>EGLSurface</ptype> <name>surface</name></param>
@@ -1619,6 +1730,12 @@
             <param><ptype>EGLSurface</ptype> <name>surface</name></param>
         </command>
         <command>
+            <proto><ptype>EGLBoolean</ptype> <name>eglUnsignalSyncEXT</name></proto>
+            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+            <param><ptype>EGLSync</ptype> <name>sync</name></param>
+            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+        </command>
+        <command>
             <proto><ptype>EGLBoolean</ptype> <name>eglWaitClient</name></proto>
         </command>
         <command>
@@ -1964,6 +2081,11 @@
                 <enum name="EGL_FRAMEBUFFER_TARGET_ANDROID"/>
             </require>
         </extension>
+        <extension name="EGL_ANDROID_get_native_client_buffer" supported="egl">
+            <require>
+                <command name="eglGetNativeClientBufferANDROID"/>
+            </require>
+        </extension>
         <extension name="EGL_ANDROID_front_buffer_auto_refresh" supported="egl">
             <require>
                 <enum name="EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID"/>
@@ -1988,6 +2110,30 @@
                 <command name="eglPresentationTimeANDROID"/>
             </require>
         </extension>
+        <extension name="EGL_ANDROID_get_frame_timestamps" supported="egl">
+            <require>
+                <enum name="EGL_TIMESTAMP_PENDING_ANDROID"/>
+                <enum name="EGL_TIMESTAMP_INVALID_ANDROID"/>
+                <enum name="EGL_TIMESTAMPS_ANDROID"/>
+                <enum name="EGL_COMPOSITE_DEADLINE_ANDROID"/>
+                <enum name="EGL_COMPOSITE_INTERVAL_ANDROID"/>
+                <enum name="EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID"/>
+                <enum name="EGL_REQUESTED_PRESENT_TIME_ANDROID"/>
+                <enum name="EGL_RENDERING_COMPLETE_TIME_ANDROID"/>
+                <enum name="EGL_COMPOSITION_LATCH_TIME_ANDROID"/>
+                <enum name="EGL_FIRST_COMPOSITION_START_TIME_ANDROID"/>
+                <enum name="EGL_LAST_COMPOSITION_START_TIME_ANDROID"/>
+                <enum name="EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID"/>
+                <enum name="EGL_DISPLAY_PRESENT_TIME_ANDROID"/>
+                <enum name="EGL_DEQUEUE_READY_TIME_ANDROID"/>
+                <enum name="EGL_READS_DONE_TIME_ANDROID"/>
+                <command name="eglGetCompositorTimingSupportedANDROID"/>
+                <command name="eglGetCompositorTimingANDROID"/>
+                <command name="eglGetNextFrameIdANDROID"/>
+                <command name="eglGetFrameTimestampSupportedANDROID"/>
+                <command name="eglGetFrameTimestampsANDROID"/>
+            </require>
+        </extension>
         <extension name="EGL_ANDROID_recordable" supported="egl">
             <require>
                 <enum name="EGL_RECORDABLE_ANDROID"/>
@@ -2035,6 +2181,13 @@
             </require>
         </extension>
         <extension name="EGL_EXT_client_extensions" supported="egl"/>
+        <extension name="EGL_EXT_client_sync" supported="egl">
+            <require>
+                <enum name="EGL_SYNC_CLIENT_EXT"/>
+                <enum name="EGL_SYNC_CLIENT_SIGNAL_EXT"/>
+                <command name="eglClientSignalSyncEXT"/>
+            </require>
+        </extension>
         <extension name="EGL_EXT_create_context_robustness" supported="egl">
             <require>
                 <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT"/>
@@ -2057,6 +2210,7 @@
         <extension name="EGL_EXT_device_drm" supported="egl">
             <require>
                 <enum name="EGL_DRM_DEVICE_FILE_EXT"/>
+                <enum name="EGL_DRM_MASTER_FD_EXT"/>
             </require>
         </extension>
         <extension name="EGL_EXT_device_enumeration" supported="egl">
@@ -2089,11 +2243,31 @@
                 <enum name="EGL_GL_COLORSPACE_BT2020_PQ_EXT"/>
             </require>
         </extension>
+        <extension name="EGL_EXT_gl_colorspace_scrgb" supported="egl">
+            <require>
+                <enum name="EGL_GL_COLORSPACE_SCRGB_EXT"/>
+            </require>
+        </extension>
         <extension name="EGL_EXT_gl_colorspace_scrgb_linear" supported="egl">
             <require>
                 <enum name="EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT"/>
             </require>
         </extension>
+        <extension name="EGL_EXT_gl_colorspace_display_p3_linear" supported="egl">
+            <require>
+                <enum name="EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT"/>
+            </require>
+        </extension>
+        <extension name="EGL_EXT_gl_colorspace_display_p3" supported="egl">
+            <require>
+                <enum name="EGL_GL_COLORSPACE_DISPLAY_P3_EXT"/>
+            </require>
+        </extension>
+        <extension name="EGL_EXT_gl_colorspace_display_p3_passthrough" supported="egl">
+            <require>
+                <enum name="EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT"/>
+            </require>
+        </extension>
         <extension name="EGL_EXT_image_dma_buf_import" supported="egl">
             <require>
                 <enum name="EGL_LINUX_DMA_BUF_EXT"/>
@@ -2137,6 +2311,12 @@
                 <command name="eglQueryDmaBufModifiersEXT"/>
             </require>
         </extension>
+        <extension name="EGL_EXT_image_gl_colorspace" supported="egl">
+            <require>
+                <enum name="EGL_GL_COLORSPACE"/>
+                <enum name="EGL_GL_COLORSPACE_DEFAULT_EXT"/>
+            </require>
+        </extension>
         <extension name="EGL_EXT_multiview_window" supported="egl">
             <require>
                 <enum name="EGL_MULTIVIEW_VIEW_COUNT_EXT"/>
@@ -2231,6 +2411,7 @@
                 <enum name="EGL_SMPTE2086_WHITE_POINT_Y_EXT"/>
                 <enum name="EGL_SMPTE2086_MAX_LUMINANCE_EXT"/>
                 <enum name="EGL_SMPTE2086_MIN_LUMINANCE_EXT"/>
+                <enum name="EGL_METADATA_SCALING_EXT"/>
             </require>
         </extension>
         <extension name="EGL_EXT_swap_buffers_with_damage" supported="egl">
@@ -2238,6 +2419,11 @@
                 <command name="eglSwapBuffersWithDamageEXT"/>
             </require>
         </extension>
+        <extension name="EGL_EXT_sync_reuse" supported="egl">
+            <require>
+                <command name="eglUnsignalSyncEXT"/>
+            </require>
+        </extension>
         <extension name="EGL_EXT_yuv_surface" supported="egl">
             <require>
                 <enum name="EGL_YUV_ORDER_EXT"/>
@@ -2370,6 +2556,12 @@
                 <command name="eglLabelObjectKHR"/>
             </require>
         </extension>
+        <extension name="EGL_KHR_display_reference" supported="egl">
+            <require>
+                <enum name="EGL_TRACK_REFERENCES_KHR"/>
+                <command name="eglQueryDisplayAttribKHR"/>
+            </require>
+        </extension>
         <extension name="EGL_KHR_fence_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
             <require>
                 <!-- Most interfaces also defined by EGL_KHR_reusable sync -->
@@ -2646,6 +2838,7 @@
                 <enum name="EGL_DRM_BUFFER_STRIDE_MESA"/>
                 <enum name="EGL_DRM_BUFFER_USE_SCANOUT_MESA"/>
                 <enum name="EGL_DRM_BUFFER_USE_SHARE_MESA"/>
+                <enum name="EGL_DRM_BUFFER_USE_CURSOR_MESA"/>
                 <command name="eglCreateDRMImageMESA"/>
                 <command name="eglExportDRMImageMESA"/>
             </require>
@@ -2667,6 +2860,12 @@
                 <enum name="EGL_PLATFORM_SURFACELESS_MESA"/>
             </require>
         </extension>
+        <extension name="EGL_MESA_query_driver" supported="egl">
+            <require>
+                <command name="eglGetDisplayDriverConfig"/>
+                <command name="eglGetDisplayDriverName"/>
+            </require>
+        </extension>
         <extension name="EGL_NOK_swap_region" supported="egl">
             <require>
                 <command name="eglSwapBuffersRegionNOK"/>
@@ -2693,6 +2892,11 @@
                 <enum name="EGL_COVERAGE_SAMPLES_NV"/>
             </require>
         </extension>
+        <extension name="EGL_NV_context_priority_realtime" supported="egl">
+            <require>
+                <enum name="EGL_CONTEXT_PRIORITY_REALTIME_NV"/>
+            </require>
+        </extension>
         <extension name="EGL_NV_coverage_sample_resolve" supported="egl">
             <require>
                 <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_NV"/>
@@ -2787,6 +2991,11 @@
                 <enum name="EGL_STREAM_FIFO_SYNCHRONOUS_NV"/>
             </require>
         </extension>
+        <extension name="EGL_NV_stream_flush" supported="egl">
+            <require>
+                <command name="eglStreamFlushNV"/>
+            </require>
+        </extension>
         <extension name="EGL_NV_stream_frame_limits" supported="egl">
             <require>
                 <enum name="EGL_PRODUCER_MAX_FRAME_HINT_NV"/>
@@ -2899,7 +3108,7 @@
             </require>
         </extension>
         <extension name="EGL_EXT_compositor" supported="egl">
-            <require>                
+            <require>
                 <enum name="EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT"/>
                 <enum name="EGL_EXTERNAL_REF_ID_EXT"/>
                 <enum name="EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT"/>
@@ -2911,7 +3120,25 @@
                 <command name="eglCompositorSetWindowAttributesEXT"/>
                 <command name="eglCompositorBindTexWindowEXT"/>
                 <command name="eglCompositorSetSizeEXT"/>
-                <command name="eglCompositorSwapPolicyEXT"/>                                              
+                <command name="eglCompositorSwapPolicyEXT"/>
+            </require>
+        </extension>
+        <extension name="EGL_EXT_surface_CTA861_3_metadata" supported="egl">
+            <require>
+                <enum name="EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT"/>
+                <enum name="EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT"/>
+            </require>
+        </extension>
+        <extension name="EGL_EXT_image_implicit_sync_control" supported="egl">
+            <require>
+                <enum name="EGL_IMPORT_SYNC_TYPE_EXT"/>
+                <enum name="EGL_IMPORT_IMPLICIT_SYNC_EXT"/>
+                <enum name="EGL_IMPORT_EXPLICIT_SYNC_EXT"/>
+            </require>
+        </extension>
+        <extension name="EGL_EXT_bind_to_front" supported="egl">
+            <require>
+                <enum name="EGL_FRONT_BUFFER_EXT"/>
             </require>
         </extension>
     </extensions>
diff --git a/api/genheaders.py b/api/genheaders.py
index 8461cfd..d170133 100755
--- a/api/genheaders.py
+++ b/api/genheaders.py
@@ -42,10 +42,10 @@
 startTime = None
 def startTimer():
     global startTime
-    startTime = time.clock()
+    startTime = time.process_time()
 def endTimer(msg):
     global startTime
-    endTime = time.clock()
+    endTime = time.process_time()
     if (timeit):
         write(msg, endTime - startTime)
         startTime = None
@@ -103,8 +103,8 @@
     '** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.',
     '*/',
     '/*',
-    '** This header is generated from the Khronos OpenGL / OpenGL ES XML',
-    '** API Registry. The current version of the Registry, generator scripts',
+    '** This header is generated from the Khronos EGL XML API Registry.',
+    '** The current version of the Registry, generator scripts',
     '** used to make the header, and the header can be found at',
     '**   http://www.khronos.org/registry/egl',
     '**',
diff --git a/api/reg.py b/api/reg.py
index 65e0ac7..d228a91 100755
--- a/api/reg.py
+++ b/api/reg.py
@@ -16,6 +16,7 @@
 
 import io,os,re,string,sys
 from lxml import etree
+import subprocess
 
 def write(*args, **kwargs):
     file = kwargs.pop('file', sys.stdout)
@@ -524,7 +525,15 @@
         #
         # User-supplied prefix text, if any (list of strings)
         if (genOpts.prefixText):
+            try:
+                git_rev = subprocess.check_output(['git', 'rev-parse', '--short=10', 'HEAD']).decode('utf-8').strip()
+                git_date = subprocess.check_output(['git', 'log', '-1', '--format=%ai']).decode('utf-8').strip()
+            except (OSError, subprocess.CalledProcessError):
+                git_rev = 'unknown'
+                git_date = 'unknown'
             for s in genOpts.prefixText:
+                s = s.replace('$Revision$', '$Git commit SHA1: ' + git_rev + ' $')
+                s = s.replace('$Date$', '$Git commit date: ' + git_date + ' $')
                 write(s, file=self.outFile)
         #
         # Some boilerplate describing what was generated - this
diff --git a/extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt b/extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt
new file mode 100644
index 0000000..f9a5b59
--- /dev/null
+++ b/extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt
@@ -0,0 +1,255 @@
+Name
+
+    ANDROID_get_frame_timestamps
+
+Name Strings
+
+    EGL_ANDROID_get_frame_timestamps
+
+Contributors
+
+    Brian Anderson
+    Dan Stoza
+    Pablo Ceballos
+    Jesse Hall
+    Fabien Sanglard
+
+Contact
+
+    Brian Anderson, Google Inc. (brianderson 'at' google.com)
+    Dan Stoza, Google Inc. (stoza 'at' google.com)
+    Pablo Ceballos, Google Inc. (pceballos 'at' google.com)
+    Jesse Hall, Google Inc. (jessehall 'at' google.com)
+    Fabien Sanglard, Google Inc. (sanglardf 'at' google.com)
+
+Status
+
+    Draft
+
+Version
+
+    Version 8, April 11, 2017
+
+Number
+
+    EGL Extension #122
+
+Dependencies
+
+    Requires EGL 1.2
+
+    This extension is written against the wording of the EGL 1.5 Specification
+
+Overview
+
+    This extension allows querying various timestamps related to the composition
+    and display of window surfaces.
+
+    Some examples of how this might be used:
+        - The display present time can be used to calculate end-to-end latency
+          of the entire graphics pipeline.
+        - The queue time and rendering complete time can be used to determine
+          how long the application's rendering took to complete. Likewise, the
+          composition start time and finish time can be used to determine how
+          long the compositor's rendering work took. In combination these can be
+          used to help determine if the system is GPU or CPU bound.
+
+New Types
+
+    /*
+     * EGLnsecsANDROID is a signed integer type for representing a time in
+     * nanoseconds.
+     */
+    #include <khrplatform.h>
+    typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
+
+New Procedures and Functions
+
+    EGLBoolean eglGetNextFrameIdANDROID(EGLDisplay dpy, EGLSurface surface,
+            EGLuint64KHR *frameId);
+
+    EGLBoolean eglGetCompositorTimingANDROID(EGLDisplay dpy,
+            EGLSurface surface, EGLint numTimestamps,
+            const EGLint *names, EGLnsecsANDROID *values);
+
+    EGLBoolean eglGetFrameTimestampsANDROID(EGLDisplay dpy, EGLSurface surface,
+            EGLuint64KHR frameId, EGLint numTimestamps,
+            const EGLint *timestamps, EGLnsecsANDROID *values);
+
+    EGLBoolean eglQueryTimestampSupportedANDROID(EGLDisplay dpy,
+            EGLSurface surface, EGLint timestamp);
+
+New Tokens
+
+    EGL_TIMESTAMPS_ANDROID 0x3430
+    EGL_COMPOSITE_DEADLINE_ANDROID 0x3431
+    EGL_COMPOSITE_INTERVAL_ANDROID 0x3432
+    EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433
+    EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434
+    EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435
+    EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436
+    EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437
+    EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438
+    EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439
+    EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A
+    EGL_DEQUEUE_READY_TIME_ANDROID 0x343B
+    EGL_READS_DONE_TIME_ANDROID 0x343C
+    EGL_TIMESTAMP_PENDING_ANDROID -2
+    EGL_TIMESTAMP_INVALID_ANDROID -1
+
+Add to the list of supported tokens for eglSurfaceAttrib in section 3.5.6
+"Surface Attributes", page 43:
+
+    If attribute is EGL_TIMESTAMPS_ANDROID, then values specifies whether to
+    enable/disable timestamp collection for this surface. A value of EGL_TRUE
+    enables timestamp collection, while a value of EGL_FALSE disables it. The
+    initial value is false. If surface is not a window surface this has no
+    effect.
+Changes to Chapter 3 of the EGL 1.5 Specification (EGL Functions and Errors)
+
+    Add a new subsection under Section 3,
+
+    "3.13 Composition and Display Timestamps
+
+    The function
+
+        EGLBoolean eglGetNextFrameIdANDROID(EGLDisplay dpy, EGLSurface surface,
+            EGLuint64KHR *frameId);
+
+    Returns an identifier for the next frame to be swapped. The identifier can
+    be used to correlate a particular eglSwapBuffers with its timestamps in
+    eglGetFrameTimestampsANDROID. If any error is generated, the function will
+    return EGL_FALSE.
+
+    The function
+
+        EGLBoolean eglGetCompositorTimingANDROID(EGLDisplay dpy,
+                EGLSurface surface, EGLint numTimestamps,
+                const EGLint *names, EGLnsecsANDROID *values);
+
+    allows querying anticipated timestamps and durations related to the
+    composition and display of a window surface. The values are not associated
+    with a particular frame and can be retrieved before the first swap.
+
+    The eglGetCompositorTimingANDROID function takes an array of names to
+    query and returns their values in the corresponding indices of the values
+    array. The possible names that can be queried are:
+        - EGL_COMPOSITE_DEADLINE_ANDROID - The timestamp of the next time the
+          compositor will begin composition. This is effectively the deadline
+          for when the compositor must receive a newly queued frame.
+        - EGL_COMPOSITE_INTERVAL_ANDROID - The time delta between subsequent
+          composition events.
+        - EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID - The time delta between
+          the start of composition and the expected present time of that
+          composition. This can be used to estimate the latency of the
+          actual present time.
+
+    The function
+
+        EGLBoolean eglGetFrameTimestampsANDROID(EGLDisplay dpy,
+            EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps,
+            const EGLint *timestamps, EGLnsecsANDROID *values);
+
+    allows querying various timestamps related to the composition and display
+    of specific frames of a window surface.
+
+    The frameId indicates which frame to query. The implementation maintains a
+    limited history of timestamp data. If a query is made for a frame whose
+    timestamp history no longer exists then EGL_BAD_ACCESS is generated. If
+    timestamp collection has not been enabled for the surface then
+    EGL_BAD_SURFACE is generated.  Timestamps for events that might still occur
+    will have the value EGL_TIMESTAMP_PENDING_ANDROID. Timestamps for events
+    that did not occur will have the value EGL_TIMESTAMP_INVALID_ANDROID.
+    Otherwise, the timestamp will be valid and indicate the event has occured.
+    Timestamp queries that are not supported will generate an EGL_BAD_PARAMETER
+    error. If any error is generated the function will return EGL_FALSE.
+
+    The application can poll for the timestamp of particular events by calling
+    eglGetFrameTimestamps over and over without needing to call any other EGL
+    function between calls. This is true even for the most recently swapped
+    frame. eglGetFrameTimestamps is thread safe and can be called from a
+    different thread than the swapping thread.
+
+    The eglGetFrameTimestampsANDROID function takes an array of timestamps to
+    query and returns timestamps in the corresponding indices of the values
+    array. The possible timestamps that can be queried are:
+        - EGL_REQUESTED_PRESENT_TIME_ANDROID - The time the application
+          requested this frame be presented. See EGL_ANDROID_presentation_time.
+          If the application does not request a presentation time explicitly,
+          this will correspond to buffer's queue time.
+        - EGL_RENDERING_COMPLETE_TIME_ANDROID - The time when all of the
+          application's rendering to the surface was completed.
+        - EGL_COMPOSITION_LATCH_TIME_ANDROID - The time when the compositor
+          selected this frame as the one to use for the next composition. The
+          latch is the earliest indication that the frame was submitted in time
+          to be composited.
+        - EGL_FIRST_COMPOSITION_START_TIME_ANDROID - The first time at which
+          the compositor began preparing composition for this frame.
+        - EGL_LAST_COMPOSITION_START_TIME_ANDROID - The last time at which the
+          compositor began preparing composition for this frame. If this frame
+          is composited only once, it will have the same value as
+          EGL_FIRST_COMPOSITION_START_TIME_ANDROID. If the value is not equal,
+          that indicates the subsequent frame was not submitted in time to be
+          latched by the compositor. Note: The value may not be updated for
+          every display refresh if the compositor becomes idle.
+        - EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID - The time at which
+          the compositor's rendering work for this frame finished. This will be
+          zero if composition was handled by the display and the compositor
+          didn't do any rendering.
+        - EGL_DISPLAY_PRESENT_TIME_ANDROID - The time at which this frame
+          started to scan out to the physical display.
+        - EGL_DEQUEUE_READY_TIME_ANDROID - The time when the buffer became
+          available for reuse as a buffer the client can target without
+          blocking. This is generally the point when all read commands of the
+          buffer have been submitted, but not necessarily completed.
+        - EGL_READS_DONE_TIME_ANDROID - The time at which all reads for the
+          purpose of display/composition were completed for this frame.
+
+    Not all implementations may support all of the above timestamp queries. The
+    functions
+
+        EGLBoolean eglGetCompositorTimingSupportedANDROID(EGLDisplay dpy,
+            EGLSurface surface, EGLint name);
+
+    and
+
+        EGLBoolean eglGetFrameTimestampsSupportedANDROID(EGLDisplay dpy,
+            EGLSurface surface, EGLint timestamp);
+
+    allows querying which values are supported by the implementations of
+    eglGetCompositoTimingANDROID and eglGetFrameTimestampsSupportedANDROID
+    respectively."
+
+Issues
+
+    None
+
+Revision History
+
+#8 (Brian Anderson, April 11, 2017)
+    - Use reserved enumerant values.
+
+#7 (Brian Anderson, March 21, 2017)
+    - Differentiate between pending events and events that did not occur.
+
+#6 (Brian Anderson, March 16, 2017)
+    - Remove DISPLAY_RETIRE_TIME_ANDROID.
+
+#5 (Brian Anderson, January 13, 2017)
+    - Add eglGetCompositorTimingANDROID.
+
+#4 (Brian Anderson, January 10, 2017)
+    - Use an absolute frameId rather than a relative framesAgo.
+
+#3 (Brian Anderson, November 30, 2016)
+    - Add EGL_COMPOSITION_LATCH_TIME_ANDROID,
+      EGL_LAST_COMPOSITION_START_TIME_ANDROID, and
+      EGL_DEQUEUE_READY_TIME_ANDROID.
+
+#2 (Brian Anderson, July 22, 2016)
+    - Replace EGL_QUEUE_TIME_ANDROID with EGL_REQUESTED_PRESENT_TIME_ANDROID.
+    - Add DISPLAY_PRESENT_TIME_ANDROID.
+
+#1 (Pablo Ceballos, May 31, 2016)
+    - Initial draft.
+
diff --git a/extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt b/extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt
new file mode 100644
index 0000000..285bba4
--- /dev/null
+++ b/extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt
@@ -0,0 +1,102 @@
+Name
+
+    ANDROID_get_native_client_buffer
+
+Name Strings
+
+    EGL_ANDROID_get_native_client_buffer
+
+Contributors
+
+    Craig Donner
+
+Contact
+
+    Craig Donner, Google Inc. (cdonner 'at' google.com)
+
+Status
+
+    Complete
+
+Version
+
+    Version 3, October 11, 2017
+
+Number
+
+    EGL Extension #123
+
+Dependencies
+
+    Requires EGL 1.2.
+
+    EGL_ANDROID_image_native_buffer and EGL_KHR_image_base are required.
+
+    This extension is written against the wording of the EGL 1.2
+    Specification as modified by EGL_KHR_image_base and
+    EGL_ANDROID_image_native_buffer.
+
+Overview
+
+    This extension allows creating an EGLClientBuffer from an Android
+    AHardwareBuffer object which can be later used to create an EGLImage.
+
+New Types
+
+    struct AHardwareBuffer
+
+New Procedures and Functions
+
+    EGLClientBuffer eglGetNativeClientBufferANDROID(const struct AHardwareBuffer *buffer)
+
+New Tokens
+
+    None
+
+Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+    Add the following to section 2.5.1 "EGLImage Specification" (as modified by
+    the EGL_KHR_image_base and EGL_ANDROID_image_native_buffer specifications),
+    below the description of eglCreateImageKHR:
+
+   "The command
+
+        EGLClientBuffer eglGetNativeClientBufferANDROID(
+                                const struct AHardwareBuffer *buffer)
+
+    may be used to create an EGLClientBuffer from an AHardwareBuffer object.
+    EGL implementations must guarantee that the lifetime of the returned
+    EGLClientBuffer is at least as long as the EGLImage(s) it is bound to,
+    following the lifetime semantics described below in section 2.5.2; the
+    EGLClientBuffer must be destroyed no earlier than when all of its associated
+    EGLImages are destroyed by eglDestroyImageKHR.
+
+    Errors
+
+        If eglGetNativeClientBufferANDROID fails, NULL will be returned, no
+        memory will be allocated, and the following error will be generated:
+
+       * If the value of buffer is NULL, the error EGL_BAD_PARAMETER is
+         generated.
+
+Issues
+
+    1. Should this extension define what particular AHardwareBuffer formats EGL
+    implementations are required to support?
+
+    RESOLVED: No.
+
+    The set of valid formats is implementation-specific and may depend on
+    additional EGL extensions. The particular valid combinations for a given
+    Android version and implementation should be documented by that version.
+
+Revision History
+
+#3 (Jesse Hall, October 11, 2017)
+    - Assigned extension number, fixed minor issues for publication
+
+#2 (Craig Donner, February 17, 2017)
+    - Fix typographical errors.
+
+#1 (Craig Donner, January 27, 2017)
+    - Initial draft.
diff --git a/extensions/EXT/EGL_EXT_bind_to_front.txt b/extensions/EXT/EGL_EXT_bind_to_front.txt
new file mode 100644
index 0000000..e83f9c9
--- /dev/null
+++ b/extensions/EXT/EGL_EXT_bind_to_front.txt
@@ -0,0 +1,108 @@
+Name
+
+  EXT_bind_to_front
+
+Name Strings
+
+  EGL_EXT_bind_to_front
+
+
+Contributors
+
+  Daniel Herring
+
+Contacts
+  
+  Daniel Herring, Core Avionics & Industrial Inc., daniel dot herring at ch1group dot com
+
+Status
+
+  Complete
+
+Version
+
+  Version 1.0, February 21, 2017
+
+Number
+
+  EGL Extension #121
+
+Dependencies
+
+  Requires EGL 1.2.
+
+Overview
+
+  This extension allows for using double buffered Pbuffers for rendering to textures, by 
+  allowing a new enumeration to be used in eglBindTexImage. EGL_FRONT_BUFFER_EXT is used
+  to denote reading the textures data from the front buffer of a double buffered Pbuffer.
+
+New Types
+
+  None
+
+New Procedures and Functions
+
+  None
+
+New Tokens
+  
+  EGL_FRONT_BUFFER_EXT          0x3464     
+
+Modify Section 3.6.1 of the EGL 1.2 Specification, paragraph 1
+  Add EGL_FRONT_BUFFER_EXT to list of acceptable values for buffer attribute.
+
+Modify Section 3.6.2 of the EGL 1.2 Specification, paragraph 5
+  Add EGL_FRONT_BUFFER_EXT to list of acceptable values for buffer attribute.
+
+Modify Section 3.5.2 of the EGL 1.2 Specification, paragraph 4 
+  Add EGL_RENDER_BUFFER to list of attributes which can be accepted in attrib_list.
+  
+Add to Section 3.5.2 of the EGL 1.2 Specification
+  EGL_RENDER_BUFFER specifies the number of color buffers which should be useable by the
+  client API rendering to the Pbuffer. If its value is EGL_SINGLE_BUFFER, then there is 
+  one color buffer the client APIs will render to directly. If its value is EGL_BACK_BUFFER,
+  then there are at least two color buffers the client API can render to. eglSwapBuffers 
+  is used to switch which color buffer is currently being rendered to. By default, all 
+  client APIs should render into the back buffer. The default value of EGL_RENDER_BUFFER
+  is EGL_SINGLE_BUFFER.
+
+Modify Section 2.2.2 of the EGL 1.2 Specification, paragraph 2
+    Pbuffer surfaces have a back buffer but no associated window, so the back buffer 
+    need not be copied.
+  Change to:
+    Pbuffer surfaces have no associated window, and include a back buffer, used by 
+    default, for rendering to by the client API. Pbuffers may have a front buffer 
+    used during render to texture operations to provide a read only texture which may
+    be used while the back buffer is being rendered to.
+ 
+Modify Section 3.5.6 
+    Querying EGL RENDER BUFFER returns the buffer which client API rendering
+    is requested to use. For a window surface, this is the same attribute value
+    specified when the surface was created. For a Pbuffer surface, it is always
+    EGL BACK BUFFER. For a pixmap surface, it is always EGL SINGLE BUFFER. To
+    determine the actual buffer being rendered to by a context, call eglQueryContext
+    (see section 3.7.4).
+
+  Change to:
+    Querying EGL RENDER BUFFER returns the buffer which client API rendering
+    is requested to use. For a window surface or Pbuffer surface, this is the 
+    same attribute value specified when the surface was created. For a pixmap 
+    surface, it is always EGL SINGLE BUFFER. To determine the actual buffer being
+    rendered to by a context, call eglQueryContext (see section 3.7.4).
+
+Revision History
+  Version 1.0, 21/02/2017 - Initial Version
+  
+Question:
+  What if the implementation  already uses double buffering for single buffered PBuffers? 
+  Such as when an implementation must insert a resolve to a texture instead of being 
+  able to use the same memory.
+Answer:
+  EGL_BACK_BUFFER would still refer to the resolved buffer. But in the case of the a 
+  double buffer EGL_FRONT_BUFFER should be used to reference the resolved buffer instead
+  of EGL_BACK_BUFFER as in this case the user has specified 2 buffers and knows they want 
+  the resolved buffer.
+  In the double buffer case where only a back draw and a front resolved buffer is used 
+  the implementation may not support EGL_BACK_BUFFER and should generate an EGL_BAD_
+  PARAMETER error when not supporting EGL_BACK_BUFFER texture binding.
diff --git a/extensions/EXT/EGL_EXT_client_sync.txt b/extensions/EXT/EGL_EXT_client_sync.txt
new file mode 100644
index 0000000..b871f39
--- /dev/null
+++ b/extensions/EXT/EGL_EXT_client_sync.txt
@@ -0,0 +1,146 @@
+Name

+

+    EXT_client_sync

+

+Name Strings

+

+    EGL_EXT_client_sync

+

+Contributors

+

+    Daniel Kartch

+

+Contacts

+

+    Daniel Kartch, NVIDIA Corporation (dkartch 'at' nvidia.com)

+

+Status

+

+    Complete

+

+Version

+

+    Version 2, April 20, 2018

+

+Number

+

+    EGL Extension #129

+

+Extension type

+

+    EGL display extension

+

+Dependencies

+

+    Requires EGL_EXT_sync_reuse

+

+Overview

+

+    The EGL_KHR_reusable_sync extension defines an EGL_SYNC_REUSABLE_KHR

+    EGLSync type which is signaled and unsignaled by client events. The

+    EGL_EXT_sync_reuse extension allows all EGLSyncs to become reusable.

+    The signaling behavior associated with EGL_SYNC_REUSABLE_KHR is

+    still desirable, but the name becomes misleading if all EGLSyncs can

+    be reused. This extension defines an EGLSync type with equivalent

+    behavior, separating the signaling mechanism from the reusability.

+

+New Procedures and Functions

+

+    EGLBoolean eglClientSignalSyncEXT(

+                        EGLDisplay dpy,

+                        EGLSync sync,

+                        const EGLAttrib *attrib_list);

+

+New Types

+

+    None

+

+New Tokens

+

+    Accepted by the <type> parameter of eglCreateSync, and returned

+    in <value> when eglGetSyncAttrib is called with <attribute>

+    EGL_SYNC_TYPE:

+

+    EGL_SYNC_CLIENT_EXT                   0x3364

+

+    Returned in <value> when eglGetSyncAttrib is called with attribute

+    EGL_SYNC_CONDITION:

+

+    EGL_SYNC_CLIENT_SIGNAL_EXT            0x3365

+

+Add to the list of sync object decriptions in 3.8.1 Sync Objects

+

+    A <client sync object> reflects the readiness of some client-side

+    state. Sync objects of this type are not visible to API contexts and

+    may not be used with eglWaitSync. They may be waited for with

+    eglClientWaitSync or polled with eglGetSyncAttrib as other sync

+    types.

+

+Add to the end of 3.8.1 Sync Objects

+

+    The command

+

+        EGLBoolean eglClientSignalSyncEXT(EGLDisplay dpy, EGLSync sync,

+            const EGLAttrib *attrib_list);

+

+    may be called to switch sync objects which support it to the

+    signaled state. Currently only sync objects with type

+    EGL_SYNC_CLIENT_EXT provide this support. The attribute list may be

+    used to provide additional information to the signaling operation,

+    as defined for the sync type.

+

+    Errors

+

+        eglClientSignalSyncEXT returns EGL_FALSE on failure, and has no

+        effect on <sync>.

+        If <dpy> is not the name of a valid, initialized EGLDisplay, an

+        EGL_BAD_DISPLAY error is generated.

+        If <sync> is not a valid sync object associated with <dpy>, an

+        EGL_BAD_PARAMETER error is generated.

+        If <attrib_list> contains an attribute name not defined for the

+        type of <sync>, an EGL_BAD_ATTRIBUTE error is generated.

+        If <sync>'s type does not support this direct signaling, an

+        EGL_BAD_ACCESS error is generated.

+

+Insert new subsection in 3.8.1 Sync Objects

+

+    3.8.1.x Creating and Signaling Client Sync Objects

+

+    If type is EGL_SYNC_CLIENT_EXT, a client sync object is created. The

+    EGL_SYNC_STATUS attribute may be specified as either EGL_UNSIGNALED

+    or EGL_SIGNALED, and will default to EGL_UNSIGNALED. No other

+    attributes may be specified for a client sync object. The value of

+    EGL_SYNC_CONDITION will be set to EGL_SYNC_CLIENT_SIGNAL_EXT.

+

+    A client sync object in the unsignaled state will switch to the

+    signaled state when eglClientSignalSyncEXT is called. No attributes

+    are supported for signaling a sync object of this type. Signaling a

+    client sync object which is already in the signaled state will have

+    no effect.

+

+    A client sync object which is in the signaled state may be switched

+    back to the unsignaled state with eglUnsignalSyncEXT. No attributes

+    are supported for unsignaling a sync object of this type.

+

+Add to the error list for eglWaitSync in 3.8.1.3 Waiting for Sync

+Objects

+

+    If <sync> is of type EGL_SYNC_CLIENT_EXT, an EGL_BAD_ACCESS error is

+    generated.

+

+Issues

+

+    None

+

+Revision History

+

+    #2 (April 20, 2018) Daniel Kartch

+       - Renamed to EXT

+       - Fixed missing attrib_list in New Functions section

+       - Eliminated condition as an allowed attribute at creation. This

+         is inconsistent with other sync extensions, and there is no

+         need to make it configurable at this time. Future extensions

+         can make the condition configurable if desired.

+

+    #1 (Feburary 22, 2018) Daniel Kartch

+       - Initial draft as XXX

diff --git a/extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt b/extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt
new file mode 100644
index 0000000..32e7ebc
--- /dev/null
+++ b/extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt
@@ -0,0 +1,137 @@
+Name
+
+    EXT_gl_colorspace_display_p3
+
+Name Strings
+
+    EGL_EXT_gl_colorspace_display_p3_linear
+    EGL_EXT_gl_colorspace_display_p3
+
+Contributors
+
+    Courtney Goeltzenleuchter
+    Jesse Hall
+
+Contact
+
+    Courtney Goeltzenleuchter (courtneygo 'at' google.com)
+
+IP Status
+
+    No known IP claims.
+
+Status
+
+    Draft
+
+Version
+
+     Version 2 - Oct 4, 2018
+
+Number
+
+    EGL Extension #118
+
+Extension Type
+
+    EGL display extension
+
+Dependencies
+
+    These extensions are written against the wording of the EGL 1.5
+    specification (August 27, 2014).
+
+    These extensions require EGL_KHR_gl_colorspace.
+
+Overview
+
+    Applications that want to use the Display-P3 color space (DCI-P3 primaries
+    and linear or sRGB-like transfer function) can use this extension to
+    communicate to the platform that framebuffer contents represent colors in
+    the Display-P3 color space.
+    The application is responsible for producing appropriate framebuffer
+    contents, but will typically use built-in sRGB encoding in OpenGL and OpenGL
+    ES to accomplish this.
+
+New Procedures and Functions
+
+    None.
+
+New Tokens
+
+    Accepted as attribute values for EGL_GL_COLORSPACE by
+    eglCreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface:
+
+    [[ If EGL_EXT_gl_colorspace_display_p3_linear is supported ]]
+
+        EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT         0x3362
+
+    [[ If EGL_EXT_gl_colorspace_display_p3 is supported ]]
+
+        EGL_GL_COLORSPACE_DISPLAY_P3_EXT                0x3363
+
+Modifications to the EGL 1.5 Specification
+
+    Insert below text in the 3rd paragraph on page 33 in 3.5.1 "Creating On-
+    Screen Rendering Surfaces, before "The default value of EGL_GL_COLORSPACE
+    is EGL_GL_COLORSPACE_LINEAR.":
+
+    [[ If EGL_EXT_gl_colorspace_display_p3_linear is supported ]]
+
+    If its value is EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT, then a linear
+    Display-P3 color space is assumed, with a corresponding
+    GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING value of GL_LINEAR.
+
+    [[ If EGL_EXT_gl_colorspace_display_p3 is supported ]]
+
+    If its value is EGL_GL_COLORSPACE_DISPLAY_P3_EXT, then a non-linear, sRGB
+    encoded Display-P3 color space is assumed, with a corresponding GL_FRAME-
+    BUFFER_ATTACHMENT_COLOR_ENCODING value of GL_SRGB.
+    Only OpenGL and OpenGL ES contexts which support sRGB rendering must
+    respect requests for EGL_GL_COLORSPACE_SRGB_KHR, and only to sRGB
+    formats supported by the context (normally just SRGB8).
+
+    Modify the 4th paragraph on the same page:
+
+    Note that the EGL_GL_COLORSPACE_SRGB attribute is used only by OpenGL and
+    OpenGL ES contexts supporting sRGB framebuffers. EGL itself does not
+    distinguish multiple colorspace models. Refer to the "sRGB Conversion"
+    sections of the OpenGL 4.4 and OpenGL ES 3.0 specifications for more
+    information.
+
+Errors
+
+    Modify below error in the "Errors" section on page 34:
+
+    "If config does not support the OpenVG colorspace or alpha format at-
+    tributes specified in attrib list (as defined for eglCreatePlatformWindow-
+    Surface), an EGL_BAD_MATCH error is generated."
+
+    To include OpenGL colorspace as well:
+
+    "If config does not support the OpenGL colorspace, the OpenVG colorspace or
+    alpha format attributes specified in attrib list (as defined for eglCreate-
+    PlatformWindowSurface), an EGL_BAD_MATCH error is generated."
+
+Issues
+
+    1. Removed section talking about HDR features, e.g. luminance > 80nits.
+       Do we want to keep that here in anticipation of HDR support in the future?
+
+    2. When creating an EGL surface, what happens when the specified colorspace
+       is not compatible with or supported by the EGLConfig?
+
+       RESOLVED: There is currently no way to query the compatibility of a
+       EGLConfig and colorspace pair. So the only option is to define an error
+       case similar to that of OpenVG colorspace, i.e. if config does not
+       support the colorspace specified in attrib list (as defined for egl-
+       CreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface),
+       an EGL_BAD_MATCH error is generated.
+
+Revision History
+
+    Version 1, 2017/03/22
+      - Internal revisions
+
+    Version 2, 2018/10/04
+      - Fix typo to correct extension reference
diff --git a/extensions/EXT/EGL_EXT_gl_colorspace_display_p3_passthrough.txt b/extensions/EXT/EGL_EXT_gl_colorspace_display_p3_passthrough.txt
new file mode 100644
index 0000000..f0223a6
--- /dev/null
+++ b/extensions/EXT/EGL_EXT_gl_colorspace_display_p3_passthrough.txt
@@ -0,0 +1,139 @@
+Name
+
+    EXT_gl_colorspace_display_p3_passthrough
+
+Name Strings
+
+    EGL_EXT_gl_colorspace_display_p3_passthrough
+
+Contributors
+
+    Chris Forbes
+    Courtney Goeltzenleuchter
+
+Contact
+
+    Courtney Goeltzenleuchter (courtneygo 'at' google.com)
+
+IP Status
+
+    No known IP claims.
+
+Status
+
+    Draft
+
+Version
+
+     Version 1 - Dec 4, 2018
+
+Number
+
+    EGL Extension #130
+
+Extension Type
+
+    EGL display extension
+
+Dependencies
+
+    This extension is written against the wording of the EGL 1.5
+    specification (August 27, 2014).
+
+    This extension requires EGL_KHR_gl_colorspace.
+
+Overview
+
+    Applications that want to use the Display-P3 color space (DCI-P3 primaries
+    with sRGB-like transfer function) can use this extension to
+    communicate to the platform that framebuffer contents represent colors in
+    the non-linear Display-P3 color space.
+    The application is responsible for producing appropriate framebuffer
+    contents. An application would want to use this extension rather than
+    EGL_EXT_gl_colorspace_display_p3 if they apply the sRGB transfer function
+    themselves and do not need the HW to do it.
+
+New Procedures and Functions
+
+    None.
+
+New Tokens
+
+    Accepted as attribute values for EGL_GL_COLORSPACE by
+    eglCreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface:
+
+    [[ If EGL_EXT_gl_colorspace_display_p3_linear is supported ]]
+
+        EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT         0x3490
+
+Modifications to the EGL 1.5 Specification
+
+    Insert below text in the 3rd paragraph on page 33 in 3.5.1 "Creating On-
+    Screen Rendering Surfaces, before "The default value of EGL_GL_COLORSPACE
+    is EGL_GL_COLORSPACE_LINEAR.":
+
+    [[ If EGL_EXT_gl_colorspace_display_p3_passthrough is supported ]]
+
+    If its value is EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT, then a
+    non-linear, sRGB encoded Display-P3 color space is assumed, with a
+    corresponding GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING value of GL_LINEAR.
+    The application is responsible for applying the appropriate transfer
+    function when writing and reading pixels.
+
+    Insert below text after the 4th paragraph on the same page:
+
+    Note that the EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT attribute
+    indicates that a colorspace of Display P3 will be communicated to the
+    Window system. While EGL itself is color space agnostic, the surface
+    will eventually be presented to a display device with specific color
+    reproduction characteristics. If any color space transformations are
+    necessary before an image can be displayed, the color space of the
+    presented image must be known to the window system.
+
+Errors
+
+    Modify below error in the "Errors" section on page 34:
+
+    "If config does not support the OpenVG colorspace or alpha format at-
+    tributes specified in attrib list (as defined for eglCreatePlatformWindow-
+    Surface), an EGL_BAD_MATCH error is generated."
+
+    To include OpenGL colorspace as well:
+
+    "If config does not support the OpenGL colorspace, the OpenVG colorspace or
+    alpha format attributes specified in attrib list (as defined for eglCreate-
+    PlatformWindowSurface), an EGL_BAD_MATCH error is generated."
+
+Issues
+
+    1. When creating an EGL surface, what happens when the specified colorspace
+       is not compatible with or supported by the EGLConfig?
+
+       RESOLVED: There is currently no way to query the compatibility of a
+       EGLConfig and colorspace pair. So the only option is to define an error
+       case similar to that of OpenVG colorspace, i.e. if config does not
+       support the colorspace specified in attrib list (as defined for egl-
+       CreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface),
+       an EGL_BAD_MATCH error is generated.
+
+   2. Why the new enum instead of DISPLAY_P3_EXT + EXT_srgb_write_control?
+
+      RESOLVED:
+      We want to rely on "surface state" rather than a "context state", e.g.
+      EXT_srgb_write_control is global where we only want behavior to apply to
+      specific surface.
+
+   3. Should sRGB framebuffer support affect the pixel path?
+
+      RESOLVED:  No.
+
+      sRGB rendering is defined by GL/GLES. Specifically, glReadPixels and
+      other pixel paths operations are not affected by sRGB rendering. But
+      glBlitFramebuffer is. Though, of course, if this extension were to
+      apply it would be a no-op.
+
+Revision History
+
+    Version 1, 2018/12/04
+      - Internal revisions
+
diff --git a/extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt b/extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt
new file mode 100644
index 0000000..708fb17
--- /dev/null
+++ b/extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt
@@ -0,0 +1,130 @@
+Name
+
+    EXT_gl_colorspace_scrgb
+
+Name Strings
+
+    EGL_EXT_gl_colorspace_scrgb
+
+Contributors
+
+    Courtney Goeltzenleuchter
+    Lauri Hyvarinen
+    Weiwan Liu
+    Arun Swain
+
+Contact
+
+    Courtney Goeltzenleuchter (courtneygo 'at' google.com)
+
+IP Status
+
+    No known IP claims.
+
+Status
+
+    Draft
+
+Version
+
+     Version 2 - August 25, 2017
+
+Number
+
+    EGL Extension #119
+
+Dependencies
+
+    This extension is written against the wording of the EGL 1.5 specification
+    (August 27, 2014).
+
+    This extension requires EGL_KHR_gl_colorspace and EGL_EXT_pixel_format_-
+    float, and interacts with EGL_EXT_surface_SMPTE2086_metadata. This extension
+    is closely related to EGL_EXT_gl_colorspace_scrgb_linear.
+
+Overview
+
+    This extension provides an extended sRGB (also called scRGB) color
+    space option for applications to choose from when creating an EGLSurface.
+    This extension defines the non-linear display referred scRGB color space.
+    It has the same white point and color primaries as sRGB, and thus is
+    backward-compatible with sRGB. Refer to the IEC 61966-2-2:2003 standard
+    for details on scRGB color space.
+
+    This extension chooses to use floating-point formats for scRGB color space.
+    For each color channel, the floating-point values of 0.0 and 1.0 still
+    correspond to sRGB chromaticities and luminance levels. However, scRGB
+    space allows for color values beyond the range of [0.0, 1.0], and can thus
+    achieve a larger color volume than that of sRGB. As it is display referred,
+    scRGB space makes assumptions of how the floating-point color values should
+    map to luminance levels by the underlying display pipeline. The expected
+    mapping is such that a color value of (1.0, 1.0, 1.0) corresponds to a
+    luminance level of 80 nits on a standardized studio monitor. As the color
+    value per channel goes beyond 1.0 and up to ~7.83, the corresponding
+    luminance levels also increase to a maximum of 10000 nits.
+
+    The application is responsible for applying the extended sRGB transfer
+    function to color values written to or read from a surface with a
+    colorspace of EGL_EXT_gl_colorspace_scrgb.
+
+New Procedures and Functions
+
+    None.
+
+New Tokens
+
+    Accepted as attribute values for EGL_GL_COLORSPACE by
+    eglCreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface:
+
+        EGL_GL_COLORSPACE_SCRGB_EXT            0x3351
+
+Modifications to the EGL 1.5 Specification
+
+    Insert below text in the 3rd paragraph on page 33 in 3.5.1 "Creating On-
+    Screen Rendering Surfaces", before "The default value of EGL_GL_COLORSPACE
+    is EGL_GL_COLORSPACE_LINEAR.":
+
+    [[ If EGL_EXT_gl_colorspace_scrgb is supported ]]
+
+    If its value is EGL_GL_COLORSPACE_SCRGB_EXT, then a non-linear scRGB
+    color space is assumed. with a corresponding GL_FRAMEBUFFER_ATTACHMENT_-
+    COLOR_ENCODING value of GL_LINEAR as neither OpenGL nor OpenGL ES
+    supports framebuffers using an scRGB transfer function.
+    The application is responsible for applying the appropriate extended
+    sRGB transfer function when reading or writing to this buffer.
+    scRGB is defined to use the same primaries and white-point as sRGB.
+    See IEC 61966-2-2:2003 for details.
+
+    Add two paragraphs after the 4th paragraph above:
+
+    When using a floating-point EGL surface with EGL_GL_COLORSPACE_SCRGB_EXT,
+    the display-referred values in the range of (0.0, 0.0, 0.0) to
+    (1.0, 1.0, 1.0) correspond to a luminance range of 0 to 80 nits, which is
+    the same luminance range for sRGB. To achieve a larger dynamic range of up
+    to 10000 nits, the output values can go beyond 1.0 and to a range of
+    [0.0, ~7.83] for each channel.
+
+    The effective color gamut and luminance range of the content that extend
+    beyond those of sRGB may be described via EGL_EXT_surface_SMPTE2086_metadata.
+    It is highly recommended to supply such metadata, so the display pipeline
+    may use this information to transform the the colors in a manner that
+    attempts to preserve the creative intent of the color data.
+
+    In the "Errors" section on page 34 in 3.5.1 "Creating On Screen Rendering
+    Surfaces", change the 3rd error definition to:
+
+    * If config does not support the OpenGL colorspace, the OpenVG colorspace or
+      alpha format attributes specified in attrib list (as defined for
+      eglCreatePlatformWindowSurface), an EGL_BAD_MATCH error is generated.
+
+Issues
+
+    * Clarifications on the scRGB colorspace extensions
+
+Revision History
+
+    Version 1, 2017/06/21
+    - Initial draft
+
+    Version 2, 2017/08/25
+    - Clarify definition of color space
diff --git a/extensions/EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt b/extensions/EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt
index 60dde95..084f4a0 100644
--- a/extensions/EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt
+++ b/extensions/EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt
@@ -8,6 +8,7 @@
 
 Contributors
 
+    Courtney Goeltzenleuchter
     Lauri Hyvarinen
     Weiwan Liu
     Arun Swain
@@ -26,7 +27,7 @@
 
 Version
 
-     Version 3 - November 22, 2016
+     Version 4 - August 25, 2017
 
 Number
 
@@ -38,15 +39,17 @@
     (August 27, 2014).
 
     This extension requires EGL_KHR_gl_colorspace and EGL_EXT_pixel_format_-
-    float, and interacts with EGL_EXT_surface_SMPTE2086_metadata.
+    float, and interacts with EGL_EXT_surface_SMPTE2086_metadata. This extension
+    is closely related to the EGL_EXT_gl_colorspace_scrgb.
 
 Overview
 
-    This extension provides a new color space option, scRGB, for applications to
-    choose from when creating an EGLSurface. The scRGB color space defines a
-    linear display referred space. It has the same white point and color
-    primaries as sRGB, and thus is backward-compatible with sRGB. Refer to
-    the IEC 61966-2-2:2003 standard for details on scRGB color space.
+    This extension provides an extended sRGB (also called scRGB) color
+    space option for applications to choose from when creating an EGLSurface.
+    This extension defines the linear display referred scRGB color space.
+    It has the same white point and color primaries as sRGB, and thus is
+    backward-compatible with sRGB. Refer to the IEC 61966-2-2:2003 standard
+    for details on scRGB color space.
 
     This extension chooses to use floating-point formats for scRGB color space.
     For each color channel, the floating-point values of 0.0 and 1.0 still
@@ -79,9 +82,8 @@
 
     If its value is EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT, then a linear scRGB
     color space is assumed, with a corresponding GL_FRAMEBUFFER_ATTACHMENT_-
-    COLOR_ENCODING value of GL_LINEAR. As defined in IEC 61966-2-2:2003, scRGB
-    is a linear color space and has the same white point and color primaries as
-    those of sRGB.
+    COLOR_ENCODING value of GL_LINEAR. scRGB is defined to use the same
+    primaries and white-point as sRGB. See IEC 61966-2-2:2003 for details.
 
     Add two paragraphs after the 4th paragraph above:
 
@@ -95,7 +97,7 @@
     The effective color gamut and luminance range of the content that extend
     beyond those of sRGB may be described via EGL_EXT_surface_SMPTE2086_metadata.
     It is highly recommended to supply such metadata, so the display pipeline
-    may use this information to transform the the colors in a manner that
+    may use this information to transform the colors in a manner that
     attempts to preserve the creative intent of the color data.
 
     In the "Errors" section on page 34 in 3.5.1 "Creating On Screen Rendering
@@ -107,7 +109,7 @@
 
 Issues
 
-    No issues so far.
+    * Clarifications on the scRGB colorspace extensions
 
 Revision History
 
@@ -120,3 +122,6 @@
     Version 3, 2016/11/22
     - Change status to complete
 
+    Version 4, 2017/08/25
+    - Clarifications on the definition of scRGB colorspace
+
diff --git a/extensions/EXT/EGL_EXT_image_gl_colorspace.txt b/extensions/EXT/EGL_EXT_image_gl_colorspace.txt
new file mode 100644
index 0000000..ab53660
--- /dev/null
+++ b/extensions/EXT/EGL_EXT_image_gl_colorspace.txt
@@ -0,0 +1,136 @@
+Name
+
+    EXT_image_gl_colorspace
+
+Name Strings
+
+    EGL_EXT_image_gl_colorspace
+
+Contributors
+
+    Jesse Hall, Google
+    Philip Rideout, Google
+    Mohan Maiya, Qualcomm
+    Jan-Harald Fredriksen, ARM
+
+Contact
+
+    Krzysztof Kosiński, Google (krzysio 'at' google.com)
+
+Status
+
+    Complete
+
+Version
+
+    Version 9, February 26, 2018
+
+Number
+
+    EGL Extension #125
+
+Dependencies
+
+    Written against the EGL 1.5 specification.
+
+    Can be supported on EGL 1.4 provided that EGL_KHR_gl_colorspace is
+    implemented, as well as either EGL_KHR_image or EGL_KHR_image_base.
+
+    Interacts with the GL_OES_EGL_image_external specification.
+
+Overview
+
+    This extension relaxes the restriction that only the eglCreate*Surface
+    functions can accept the EGL_GL_COLORSPACE attribute. With this change,
+    eglCreateImage can also accept this attribute.
+
+New Tokens
+
+    EGL_GL_COLORSPACE_DEFAULT_EXT          0x314D
+
+New Procedures and Functions
+
+    None.
+
+Additions to the EGL 1.5 Specification
+
+    Add to table 3.11 on page 75:
+
+   "Attribute             Type    Description
+    --------------------  ----    -----------
+    EGL_GL_COLORSPACE     enum    Color space for OpenGL and OpenGL ES"
+
+
+    Add the following paragraph to the end of section 3.9, "EGLImage
+    Specification and Management" on page 77:
+
+   "EGL_GL_COLORSPACE specifies the color space used by OpenGL and OpenGL
+    ES when rendering to the image, or sampling from the image. It has the
+    same meaning as when used with eglCreatePlatformWindowSurface, with the
+    exception that its default value is EGL_GL_COLORSPACE_DEFAULT_EXT. This
+    means that the color space should not be overriden. For example, if an
+    image is created from an existing OpenGL texture, then
+    GL_COLORSPACE_DEFAULT_EXT means that the original color space should be
+    preserved."
+
+
+    Add the following paragraphs to the "Errors" subsection in section 3.9
+    on page 76:
+    
+   "If EGL_GL_COLORSPACE is not one of the legal values, the error
+    EGL_BAD_PARAMETER is generated."
+
+   "If ctx specifies a GL context that does not support creating an EGLImage
+    with the given value for EGL_GL_COLORSPACE, EGL_BAD_MATCH error is
+    generated."
+
+
+Interaction with OES_EGL_image_external:
+
+    The first sentence in the second to last paragraph in section 3.7.14
+    should be changed from:
+
+   "Sampling an external texture will return an RGBA vector in the same
+    colorspace as the source image."
+
+    to:
+
+   "Sampling an external texture will return an RGBA vector in the same color
+    space as the source image, unless the image's EGL_GL_COLORSPACE attribute
+    results in sRGB encoding as described in EGL_EXT_image_gl_colorspace."
+
+    The three parenthetical sentences in this same paragraph should be
+    simplified since they partially conflict with existing language in the
+    ES30 specification. Change them from:
+
+   "(But these RGB values will be in the same colorspace as the
+    original image.  Colorspace here includes the linear or non-linear
+    encoding of the samples. For example, if the original image is in the
+    sRGB color space then the RGB value returned by the sampler will also
+    be sRGB, and if the original image is stored in ITU-R Rec. 601 YV12
+    then the RGB value returned by the sampler will be an RGB value in the
+    ITU-R Rec. 601 colorspace.)"
+
+    to:
+
+   "(For example, if the original image is stored in ITU-R Rec. 601 YV12
+    then the RGB value returned by the sampler will be an RGB value in the
+    ITU-R Rec. 601 colorspace.)"
+
+
+Issues
+
+Revision History
+
+      Rev.  Date      Author    Changes
+      ----  --------  --------  -----------------------------------------
+      1     11/22/17  philip    Initial draft
+      2     12/8/17   philip    Add note about OES_EGL_image_external
+      3     12/11/17  philip    Changed from KHR to EXT.
+      4     12/15/17  philip    Add diffs against the EGL 1.5 specification.
+      5     12/20/17  philip    Add EGL_GL_COLORSPACE_DEFAULT_EXT.
+      6     1/2/18    philip    Updated changes to OES_EGL_image_external.
+      7     1/2/18    philip    Tweaked the changes to OES_EGL_image_external.
+      8     2/2/18    philip    Add value for EGL_GL_COLORSPACE_DEFAULT_EXT.
+      9     2/26/18   krzysio   Update contact information, finalize.
+      9     4/20/18   krzysio   Fix stray reference to KHR.
diff --git a/extensions/EXT/EGL_EXT_image_implicit_sync_control.txt b/extensions/EXT/EGL_EXT_image_implicit_sync_control.txt
new file mode 100644
index 0000000..c362b3d
--- /dev/null
+++ b/extensions/EXT/EGL_EXT_image_implicit_sync_control.txt
@@ -0,0 +1,127 @@
+Name
+
+    EXT_image_implicit_sync_control
+
+Name Strings
+
+    EGL_EXT_image_implicit_sync_control
+
+Contributors
+
+    Daniel Stone, Collabora Ltd.
+
+Contacts
+
+    Daniel Stone (daniels 'at' collabora 'dot' com)
+
+Status
+
+    Complete
+
+Version
+
+    Version 1, May 15, 2017
+
+Number
+
+    EGL Extension #120
+
+Dependencies
+
+    EGL 1.2 is required.
+
+    EGL_KHR_image_base and EGL_EXT_image_dma_buf_import are required.
+
+    The EGL implementation must be running on a Linux kernel supporting implicit
+    synchronization, as the usage is defined in the
+    EGL_ARM_implicit_external_sync extension, but does not require that extension.
+
+    This extension is written against the wording of the EGL 1.2 Specification.
+
+Overview
+
+    This extension allows a client to selectively use implicit or explicit
+    synchronization mechanisms when addressing externally-imported EGLImages.
+    A new token is added to EGLImage creation which allows the client to select
+    whether a platform's implicit synchronization will be in use for a buffer
+    imported into EGLImage.
+
+    Heterogeneous systems (supporting multiple APIs, mixed legacy/updated
+    clients, etc) already supporting implicit synchronization, may not be able
+    to change to explict synchronization in a single switch. This extension
+    allows synchronization to be controlled on a per-buffer basis, so explicit
+    synchronization can be enabled for a complete pipeline which supports it,
+    or implicit synchronization used otherwise.
+
+New Types
+
+    None
+
+New Procedures and Functions
+
+    None
+
+New Tokens
+
+    Accepted as an attribute in the <attrib_list> parameter of
+    eglCreateImageKHR:
+
+	EGL_IMPORT_SYNC_TYPE_EXT           0x3470
+
+    Accepted as the value for the EGL_IMPORT_SYNC_TYPE_EXT attribute:
+
+        EGL_IMPORT_IMPLICIT_SYNC_EXT       0x3471
+        EGL_IMPORT_EXPLICIT_SYNC_EXT       0x3472
+
+New Types
+
+    None.
+
+Additions to Chapter 2 of the EGL 1.2 Specification (EGL Operation)
+
+    Add to section 2.5.1 "EGLImage Specification" (as defined by the
+    EGL_KHR_image_base specification), in the description of
+    eglCreateImageKHR:
+
+    Add the following to Table bbb (Legal attributes for eglCreateImageKHR
+    <attr_list> parameter), Section 2.5.1 (EGLImage Specification)
+
+      +-----------------------------+-------------------------+---------------------------+---------------+
+      | Attribute                   | Description             | Valid <target>s           | Default Value |
+      +-----------------------------+-------------------------+---------------------------+---------------+
+      | EGL_IMPORT_SYNC_TYPE_EXT    | The type of             | EGL_LINUX_DMA_BUF_EXT     | EGL_IMPORT_   |
+      |                             | synchronization to      |                           | IMPLICT_SYNC_ |
+      |                             | apply to previously     |                           | EXT           |
+      |                             | submitted rendering on  |                           |               |
+      |                             | the platform buffer     |                           |               |
+      +-----------------------------+-------------------------+---------------------------+---------------+
+      Table bbb. Legal attributes for eglCreateImageKHR <attrib_list> parameter
+
+    ...
+
+
+    Add to section 2.5.1 "EGLImage Specification" (as defined by the
+    EGL_KHR_image_base specification), in the description of
+    eglCreateImageKHR:
+
+    The behaviour of the imported buffer with regard to commands previously
+    submitted (including via other APIs and from other clients) is controlled
+    by the EGL_IMPORT_SYNC_TYPE_EXT attribute. If the default value of
+    implicit synchronization is used, the platform may synchronize any access
+    to the imported buffer, against accesses previously made (including by
+    other clients or APIs) to that same buffer. If explicit synchronization
+    is specified, the platform will not synchronize access to that buffer
+    against other accesses; the client must use another synchronization
+    mechanism if it wishes to order its accesses with respect to others.
+
+    Add to the list of error conditions for eglCreateImageKHR:
+
+       * If <attrib_list> contains the EGL_IMPORT_SYNC_TYPE_EXT name, but the
+         value is not one of EGL_IMPORT_IMPLICIT_SYNC_EXT or
+	 EGL_IMPORT_EXPLICIT_SYNC_EXT, EGL_BAD_PARAMETER is generated.
+
+
+Revision History
+
+#1 (Daniel Stone, May 15, 2017)
+   - Initial revision.
diff --git a/extensions/EXT/EGL_EXT_surface_CTA861_3_metadata.txt b/extensions/EXT/EGL_EXT_surface_CTA861_3_metadata.txt
new file mode 100644
index 0000000..50764b5
--- /dev/null
+++ b/extensions/EXT/EGL_EXT_surface_CTA861_3_metadata.txt
@@ -0,0 +1,136 @@
+Name
+
+    EXT_surface_CTA861_3_metadata
+
+Name Strings
+
+    EGL_EXT_surface_CTA861_3_metadata
+
+Contact
+
+    Courtney Goeltzenleuchter (courtneygo 'at' google.com)
+
+Contributors
+
+    James Jones
+    Weiwan Liu
+
+IP Status
+
+    No known IP claims.
+
+Status
+
+    Complete
+
+Version
+
+    Version 5 - Nov 29, 2016
+
+Number
+
+    EGL Extension #117
+
+Dependencies
+
+    This extension requires EGL 1.5 and EGL_EXT_surface_SMPTE2086_metadata.
+
+    This extension is written against the wording of the EGL 1.5 specification
+    (August 27, 2014).
+
+Overview
+
+    This extension adds additional EGL surface attributes for the metadata
+    defined by the CTA (Consumer Technology Association) 861.3 standard.
+    This metadata, in addition to the SMPTE 2086 metadata, is used to define the
+    color volume of the mastering display as well as the content (CTA-861.3),
+    The mastering display is the display where creative work is done and creative
+    intent is established. To preserve such creative intent as much as possible
+    and achieve consistent color reproduction on different viewing displays,
+    it is useful for the display pipeline to know the color volume of the
+    original mastering display where content is created or tuned.  This avoids
+    performing unnecessary mapping of colors that are not displayable on the
+    original mastering display.
+
+    This extension adds the ability to pass the CTA-861.3 metadata via EGL,
+    from which the color volume can be derived. While the general purpose of the
+    metadata is to assist in the transformation between different color volumes
+    of different displays and help achieve better color reproduction, it is not
+    in the scope of this extension to define how exactly the metadata should be
+    used in such a process. It is up to the implementation to determine how to
+    make use of the metadata.
+
+New Procedures and Functions
+
+    None.
+
+New Tokens
+
+    Accepted as attribute by eglSurfaceAttrib and eglQuerySurface:
+
+	EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT            0x3360
+	EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT            0x3361
+
+Additions to Chapter "3.5.6 Surface Attributes" of the EGL 1.5 Specification
+
+    Add the following paragraph before the "Errors" section on page 43,
+
+        If attribute is EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT or EGL_CTA861_3_-
+	MAX_FRAME_AVERAGE_LEVEL_EXT, then value indicates the corresponding
+	maximum content light level and maximum frame average level.
+        The unit of value is 1 nit (candela per square meter). The
+        floating-point luminance values should be multiplied by
+        EGL_METADATA_SCALING, a constant scaling factor of 50000, before being
+        passed into eglSurfaceAttrib as integers.
+
+        Exactly how the color volume information is used to assist the color
+	reproduction process is implementation dependant.
+
+        The initial values of EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT and
+	EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT are EGL_DONT_CARE, which causes the
+        hints to be ignored. If value is not in the implementation's supported
+        range for attribute, a EGL_INVALID_VALUE error is generated, and some or
+        all of the metadata fields are ignored.
+
+    Change the original footnote 12 at the end of section "3.5.6 Surface
+    Attributes" on page 45 to,
+
+            [13] EGL_DISPLAY_SCALING (10000) and EGL_METADATA_SCALING_EXT (50000)
+        are used where EGL needs to take or return floating-point attribute
+        values, which would normally be smaller than 1, as integers while still
+        retaining sufficient precision to be meaningful.
+
+    Addition to Table 3.5 "Queryable surface attributes and types",
+
+                      Attribute                   Type
+        ------------------------------------------------
+	EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT     integer
+	EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT     integer
+
+                      Description
+        --------------------------------------------------------------------------------------
+        Maximum content light level in nit multiplied by EGL_METADATA_SCALING_EXT
+        Maximum frame average light level in nit multiplied by EGL_METADATA_SCALING_EXT
+
+    Add the following paragraph at the end of section "3.5.6 Surface Attributes"
+    on page 45,
+
+        Querying EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT EGL_CTA861_3_MAX_-
+	FRAME_AVERAGE_LEVEL_EXT returns respectively the maximum content light level
+	and maximum frame average level respectively. The values returned are
+	in units of 1 nit (candela per square meter), multiplied by the constant
+	value EGL_METADATA_SCALING_EXT (50000). The value of EGL_CTA861_3_MAX_-
+	CONTENT_LIGHT_LEVEL_EXT and EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT can
+	be set via eglSurfaceAttrib as described above.
+
+Errors
+
+    Described in the body text above.
+
+Issues
+
+Revision History
+
+    Version 1, 2017/02/28
+      - Initial draft
+
diff --git a/extensions/EXT/EGL_EXT_surface_SMPTE2086_metadata.txt b/extensions/EXT/EGL_EXT_surface_SMPTE2086_metadata.txt
index ab929a8..2fa0b2e 100644
--- a/extensions/EXT/EGL_EXT_surface_SMPTE2086_metadata.txt
+++ b/extensions/EXT/EGL_EXT_surface_SMPTE2086_metadata.txt
@@ -13,6 +13,7 @@
 Contributors
 
     Tom Cooksey
+    Courtney Goeltzenleuchter
     Mathias Heyer
     Lauri Hyvarinen
     James Jones
@@ -30,7 +31,7 @@
 
 Version
 
-    Version 5 - Nov 29, 2016
+    Version 8 - Oct 16, 2017
 
 Number
 
@@ -96,23 +97,23 @@
         corresponding xy chromaticity coordinate[12] of the mastering display's
         red, green or blue color primary, as configured for the mastering
         process. The floating-point display primary coordinates should be
-        multiplied by EGL_METADATA_SCALING (50000)[13], before being passed into
-        eglSurfaceAttrib as integers.
+        multiplied by EGL_METADATA_SCALING_EXT (50000)[13], before being passed
+        into eglSurfaceAttrib as integers.
 
         If attribute is EGL_SMPTE2086_WHITE_POINT_X_EXT or EGL_SMPTE2086_WHITE_-
         POINT_Y_EXT, then value indicates the corresponding xy chromaticity
         coordinate[12] of the mastering display's white point, as configured for
         the mastering process. The floating-point white point chromaticity
-        coordinates should be multiplied by EGL_METADATA_SCALING (50000), before
-        being passed into eglSurfaceAttrib as integers.
+        coordinates should be multiplied by EGL_METADATA_SCALING_EXT (50000),
+        before being passed into eglSurfaceAttrib as integers.
 
         If attribute is EGL_SMPTE2086_MAX_LUMINANCE_EXT or EGL_SMPTE2086_MIN_-
         LUMINANCE_EXT, then value indicates the maximum or minimum display
         luminance of the mastering display, as configured for the mastering
         process. The unit of value is 1 nit (candela per square meter). The
         floating-point luminance values should be multiplied by
-        EGL_METADATA_SCALING, a constant scaling factor of 50000, before being
-        passed into eglSurfaceAttrib as integers.
+        EGL_METADATA_SCALING_EXT, a constant scaling factor of 50000, before
+        being passed into eglSurfaceAttrib as integers.
 
         By defining the mastering display's color volume through color
         primaries, white point, and luminance range, applications give EGL
@@ -128,7 +129,7 @@
         EXT, EGL_SMPTE2086_WHITE_POINT_Y_EXT, EGL_SMPTE2086_MAX_LUMINANCE_EXT
         and EGL_SMPTE2086_MIN_LUMINANCE_EXT are EGL_DONT_CARE, which causes the
         hints to be ignored. If value is not in the implementation's supported
-        range for attribute, a EGL_INVALID_VALUE error is generated, and some or
+        range for attribute, a EGL_BAD_PARAMETER error is generated, and some or
         all of the metadata fields are ignored.
 
     Add the following footnote at the end of page 43, and increment all the
@@ -141,7 +142,7 @@
     Change the original footnote 12 at the end of section "3.5.6 Surface
     Attributes" on page 45 to,
 
-            [13] EGL_DISPLAY_SCALING (10000) and EGL_METADATA_SCALING (50000)
+            [13] EGL_DISPLAY_SCALING (10000) and EGL_METADATA_SCALING_EXT (50000)
         are used where EGL needs to take or return floating-point attribute
         values, which would normally be smaller than 1, as integers while still
         retaining sufficient precision to be meaningful.
@@ -162,15 +163,17 @@
         EGL_SMPTE2086_MIN_LUMINANCE_EXT          integer
 
                       Description
-        --------------------------------------------------------------------------------------
-        x chromaticity coordinate for red display primary multiplied by EGL_METADATA_SCALING
-        y chromaticity coordinate for red display primary multiplied by EGL_METADATA_SCALING
-        x chromaticity coordinate for green display primary multiplied by EGL_METADATA_SCALING
-        y chromaticity coordinate for green display primary multiplied by EGL_METADATA_SCALING
-        x chromaticity coordinate for blue display primary multiplied by EGL_METADATA_SCALING
-        y chromaticity coordinate for blue display primary multiplied by EGL_METADATA_SCALING
-        Maximum luminance in nit multiplied by EGL_METADATA_SCALING
-        Minimum luminance in nit multiplied by EGL_METADATA_SCALING
+        ------------------------------------------------------------------------------------------
+        x chromaticity coordinate for red display primary multiplied by EGL_METADATA_SCALING_EXT
+        y chromaticity coordinate for red display primary multiplied by EGL_METADATA_SCALING_EXT
+        x chromaticity coordinate for green display primary multiplied by EGL_METADATA_SCALING_EXT
+        y chromaticity coordinate for green display primary multiplied by EGL_METADATA_SCALING_EXT
+        x chromaticity coordinate for blue display primary multiplied by EGL_METADATA_SCALING_EXT
+        y chromaticity coordinate for blue display primary multiplied by EGL_METADATA_SCALING_EXT
+        x chromaticity coordinate for white point multiplied by EGL_METADATA_SCALING_EXT
+        y chromaticity coordinate for white point multiplied by EGL_METADATA_SCALING_EXT
+        Maximum luminance in nit multiplied by EGL_METADATA_SCALING_EXT
+        Minimum luminance in nit multiplied by EGL_METADATA_SCALING_EXT
 
     Add the following paragraph at the end of section "3.5.6 Surface Attributes"
     on page 45,
@@ -180,7 +183,7 @@
         DISPLAY_PRIMARY_GY_EXT, EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT or EGL_-
         SMPTE2086_DISPLAY_PRIMARY_BY_EXT returns respectively the xy
         chromaticity coordinate of the mastering display's red, green or blue
-        color primary, multiplied by the constant value EGL_METADATA_SCALING
+        color primary, multiplied by the constant value EGL_METADATA_SCALING_EXT
         (50000). The display primary coordinates can be set via eglSurfaceAttrib
         as described above.
 
@@ -211,7 +214,7 @@
        what the valid data ranges are for the metadata fields. It is
        implementation dependant, but related standards, such as SMPTE ST 2086,
        can be used as reference. As described in the body, implemetations may
-       generate a EGL_INVALID_VALUE error to notify applications that the input
+       generate a EGL_BAD_PARAMTER error to notify applications that the input
        metadata values are invalid or not supported.
 
 Revision History
@@ -231,3 +234,14 @@
     Version 5, 2016/11/29
       - Add token assigments
 
+    Version 6, 2017/02/28
+      - Add 'EXT' suffix to 'EGL_METADATA_SCALING'
+
+    Version 7, 2017/10/13
+      - Rename EGL_INVALID_VALUE (which doesn't exist) to EGL_FALSE
+
+    Version 8, 2017/10/16
+      - Fix v7 change to use EGL_BAD_PARAMETER as the error code
+	generated vs. EGL_FALSE which is the expected return value of
+	the function.
+
diff --git a/extensions/EXT/EGL_EXT_sync_reuse.txt b/extensions/EXT/EGL_EXT_sync_reuse.txt
new file mode 100644
index 0000000..e20d65a
--- /dev/null
+++ b/extensions/EXT/EGL_EXT_sync_reuse.txt
@@ -0,0 +1,376 @@
+Name

+

+    EXT_sync_reuse

+

+Name Strings

+

+    EGL_EXT_sync_reuse

+

+Contributors

+

+    Daniel Kartch

+    Jeff Vigil

+    Ray Smith

+

+Contacts

+

+    Daniel Kartch, NVIDIA Corporation (dkartch 'at' nvidia.com)

+

+Status

+

+    Complete

+

+Version

+

+    Version 4, May 16, 2018

+

+Number

+

+    EGL Extension #128

+

+Extension type

+

+    EGL display extension

+

+Dependencies

+

+    Requires EGL 1.5 or EGL 1.4 with EGL_KHR_fence_sync

+

+    Interacts with EGL_KHR_reusable_sync 

+    Interacts with EGL_ANDROID_native_fence_sync

+    Interacts with EGL_NV_cuda_event

+

+    This extension is written against the wording of the EGL 1.5

+    Specification.

+

+Overview

+

+    The original EGLSync extensions separated sync objects into two

+    types: fence sync objects signaled by one time events in an

+    API command pipeline; and reusable sync objects signaled by commands

+    which can be issued again and again. However, this conflates

+    reusability of the event triggering a sync object with the EGLSync

+    object itself.

+

+    Although the event associated with a fence sync object will only

+    occur once, there is no reason that it can't be replaced with a new

+    event. Doing so would avoid unnecessary allocation and free

+    operations in an application that repeatedly waits for events. With

+    the current interfaces, such applications must constantly create and

+    destroy new EGLSync objects.

+

+    This extension allows all sync objects to be reusable. When a sync

+    object is in the signaled state, it can be reset back to an

+    unsignaled state, regenerating or reevaluating the events that

+    trigger them. For fence sync objects, this means generating a new

+    fence in the current API. For OpenCL event sync objects, this means

+    waiting for a new OpenCL event handle. This mechanism also allows

+    sync objects to be created in the signaled state with no associated

+    fence/event, and have one applied later. Thus all EGLSyncs required

+    by an application can be allocated up front, before any rendering

+    operations have begun.

+

+New Types

+

+    None

+

+New Tokens

+

+    None

+

+New Procedures and Functions

+

+    EGLBoolean eglUnsignalSyncEXT(

+                    EGLDisplay dpy,

+                    EGLSync sync,

+                    const EGLAttrib *attrib_list);

+

+Replace text of subsections of 3.8.1 through 3.8.1.2 of EGL 1.5

+Specification. Existing tables are preserved.

+

+    3.8.1 Sync Objects

+

+    In addition to the aforementioned synchronization functions, which

+    provide an efficient means of serializing client and native API

+    operations within a thread, <sync objects> are provided to enable

+    synchronization of client API operations between threads and/or

+    between API contexts. Sync objects may be tested or waited upon by

+    application threads.

+

+    Sync objects have a status with two possible states: <signaled> and

+    <unsignaled>, and may initially be in either state. EGL may be asked

+    to wait for a sync object to become signaled, or a sync object’s

+    status may be queried.

+

+    Depending on the type of a sync object, its status may be changed

+    either by an external event, or by explicitly signaling and/or

+    unsignaling the sync. All sync objects are reusable. Once they enter

+    the signaled state, they may be changed back to unsignaled, possibly

+    replacing the associated external event that signals them.

+

+    Sync objects are associated with an EGLDisplay when they are

+    created, and have <attributes> defining additional aspects of the

+    sync object. All sync objects include attributes for their type and

+    their status. Additional attributes are discussed below for

+    different types of sync objects. If a sync object is created in the

+    signaled state, its initial attribute list may be incomplete, with

+    attributes necessary for its type provided when it is changed to

+    unsignaled.

+

+    <Fence sync objects> have an associated fence command in a client

+    API. A new fence command is generated whenever the sync object

+    enters the unsignaled state. When the client API executes the fence

+    command, an event is generated which signals the corresponding fence

+    sync object. Fence sync objects may not be explicitly signaled.

+    Fence sync objects may be used to wait for partial completion of a

+    client API command stream, as a more flexible form of glFinish or

+    vgFinish.

+

+    An <OpenCL event sync object> reflects the status of a corresponding

+    OpenCL event object to which the sync object is linked. This

+    provides another method of coordinating sharing of images between

+    EGL and OpenCL (see Chapter 9 of the OpenCL 1.0 Specification and

+    the cl_khr_egl_image extension). Waiting on such a sync object is

+    equivalent to waiting for completion of the linked OpenCL event

+    object.

+

+    The command

+

+        EGLSync eglCreateSync(EGLDisplay dpy, EGLenum type, const

+            EGLAttrib *attrib_list);

+

+    creates a sync object of the specified <type> associated with the

+    specified display <dpy>, and returns a handle to the new object.

+    <attrib list> is NULL or an attribute-value list specifying other

+    attributes of the sync object, terminated by an attribute entry

+    EGL_NONE. Attributes not specified in the list will be assigned

+    their default values.

+

+    The EGL_SYNC_STATUS attribute is defined for all sync types, but may

+    only be specified explicitly at creation time for some types of sync

+    objects, as discussed below. Other attributes are only allowed as

+    indicated below for the sync type.

+

+    Errors

+

+        eglCreateSync returns EGL_NO_SYNC on failure.

+        If <dpy> is not the name of a valid, initialized EGLDisplay, an

+        EGL_BAD_DISPLAY error is generated.

+        If <attrib_list> contains an attribute name not defined or not

+        allowed for the type of sync object being created, an

+        EGL_BAD_ATTRIBUTE error is generated.

+        If <type> is not a supported type of sync object, an

+        EGL_BAD_PARAMETER error is generated.

+        If <type> is EGL_SYNC_FENCE, the EGL_SYNC_STATUS attribute is

+        set to EGL_UNSIGNALED, and any of the following are true of the

+        current context for the bound API (the context returned by

+        eglGetCurrentContext), an EGL_BAD_MATCH error is generated:

+          * There is no current context (i.e., eglGetCurrentContext

+            returns EGL_NO_CONTEXT).

+          * <dpy> does not match the EGLDisplay of the context (the

+            EGLDisplay returned by eglGetCurrentDisplay).

+          * The context does not support fence commands.

+

+    While in the unsignaled state, the synchronization event associated

+    with a sync object cannot be changed. When the <condition> of a sync

+    object in the unsignaled state is satisfied, the sync is signaled,

+    causing any eglClientWaitSync or eglWaitSync commands (see below)

+    blocking on the sync to unblock.

+

+    Once signaled, a sync object may be reused for a new synchronization

+    event by switching it back to unsignaled. The command

+

+        EGLBoolean eglUnsignalSyncEXT(EGLDisplay dpy, EGLSync sync,

+            const EGLAttrib *attrib_list);

+

+    can be used to change the <sync> associated with display <dpy> from

+    the signaled state to the unsignaled state. The attribute list may

+    be used to provide or replace attributes specific to the sync type

+    as discussed below. The sync object's type and condition may not be

+    changed.

+

+    Errors

+

+        eglUnsignalSyncEXT returns EGL_FALSE on failure, and has no

+        effect on <sync>.

+        If <dpy> is not the name of a valid, initialized EGLDisplay, an

+        EGL_BAD_DISPLAY error is generated.

+        If <sync> is not a valid sync object associated with <dpy>, an

+        EGL_BAD_PARAMETER error is generated.

+        If <attrib_list> contains an attribute name not defined for the

+        type of <sync>, an EGL_BAD_ATTRIBUTE error is generated.

+        If <sync> is already in the unsignaled state, an EGL_BAD_ACCESS

+        error is generated.

+        If <sync>'s type is EGL_SYNC_FENCE and any of the following are

+        true of the current context for the bound API (the context

+        returned by eglGetCurrentContext), an EGL_BAD_MATCH error is

+        generated:

+          * There is no current context (i.e., eglGetCurrentContext

+            returns EGL_NO_CONTEXT).

+          * <dpy> does not match the EGLDisplay of the context (the

+            EGLDisplay returned by eglGetCurrentDisplay).

+          * The context does not support fence commands.

+        If <sync>'s type is EGL_SYNC_CL_EVENT and EGL_CL_EVENT_HANDLE

+        is not specified in <attrib_list>, then an EGL_BAD_ATTRIBUTE

+        error is generated.

+

+    3.8.1.1  Creating and Signaling Fence Sync Objects

+

+    If type is EGL_SYNC_FENCE, a fence sync object is created. The

+    EGL_SYNC_STATUS attribute may be specified as either EGL_UNSIGNALED

+    or EGL_SIGNALED, and will default to EGL_UNSIGNALED. No other

+    attributes may be specified for a fence sync object, either with

+    eglCreateSync or eglUnsignalSyncEXT. Queriable attributes of the

+    fence sync object are set as shown in table 3.7.

+

+    When a fence sync object is created in the unsignaled state, or

+    switched to that state with eglUnsignalSyncEXT, a fence command is

+    inserted into the command stream of the bound client API’s current

+    context (i.e., the context returned by eglGetCurrentContext), and is

+    associated with the sync object.

+

+    The only condition supported for fence sync objects is

+    EGL_SYNC_PRIOR_COMMANDS_COMPLETE, which is satisfied by completion

+    of the fence command corresponding to the sync object, and all

+    preceding commands in the associated client API context’s command

+    stream. The sync object will not be signaled until all effects from

+    these commands on the client API’s internal and framebuffer state

+    are fully realized. No other state is affected by execution of the

+    fence command.

+

+    Generation of fence commands for fence sync objects requires support

+    from the bound client API, and will not succeed unless the client

+    API satisfies one of the following properties. Note that eglWaitSync

+    (see section 3.8.1.3) also requires satisfying these conditions.

+      * client API is OpenGL, and either the OpenGL version is 3.2 or

+        greater, or the GL_ARB_sync extension is supported.

+      * client API is OpenGL ES, and either the OpenGL ES version is 3.0

+        or greater, or the GL_OES_EGL_sync extension is supported.

+      * client API is OpenVG, and the VG_KHR_EGL_sync extension is

+        supported.

+

+    3.8.1.2  Creating and Signaling OpenCL Event Sync Objects

+

+    If type is EGL_SYNC_CL_EVENT, an OpenCL event sync object is

+    created.  The EGL_SYNC_STATUS attribute may not be explicitly

+    specified during creation of this type of sync object. If no

+    EGL_CL_EVENT_HANDLE attribute is specified at creation time, the

+    sync object will be created in the signaled state. Otherwise its

+    status will be determined by the provided OpenCL event, as described

+    below. An EGL_CL_EVENT_HANDLE must always be specified for

+    eglUnsignalSyncEXT.

+

+    To use an OpenCL event sync object, the EGL_SYNC_CL_EVENT attribute

+    must be set to a valid OpenCL <event> handle returned by a call to

+    clEnqueueReleaseGLObjects or clEnqueueReleaseEGLObjects; other types

+    of OpenCL event handles are not supported. Implementations are not

+    required to validate the OpenCL event, and passing an invalid event

+    handle in <attrib_list> may result in undefined behavior up to and

+    including program termination. Note that EGL_CL_EVENT_HANDLE is not

+    a queriable property of a sync object. Queriable attributes of the

+    OpenCL event sync object are set as shown in table 3.8.

+

+    The status of such a sync object depends on <event>. When the status

+    of <event> is CL_QUEUED, CL_SUBMITTED, or CL_RUNNING, the status of

+    the linked sync object will be EGL_UNSIGNALED. When the status of

+    <event> changes to CL_COMPLETE, the status of the linked sync object

+    will become EGL_SIGNALED.

+

+    The only condition supported for OpenCL event sync objects is

+    EGL_SYNC_CL_EVENT_COMPLETE, which is satisfied when the status of

+    the OpenCL event associated with the sync object changes to

+    CL_COMPLETE.

+

+    Associating an OpenCL event handle with a sync object places a

+    reference on the linked OpenCL object. When the sync object is

+    deleted or the event handle is replaced, the reference will be

+    removed from the OpenCL object.

+

+If EGL_KHR_reusable_sync is present, then for sync objects of type

+EGL_SYNC_REUSABLE_KHR, the initial value of EGL_SYNC_STATUS may be

+set to either EGL_UNSIGNALED or EGL_SIGNALED, and will default to

+EGL_UNSIGNALED.

+

+If EGL_ANDROID_native_fence_sync is present, then for native fence sync

+objects, the EGL_SYNC_NATIVE_FENCE_FD_ANDROID attribute may be specified

+in eglUnsignalSyncEXT as well as eglCreateSync. If it is set to anything

+other than EGL_NO_NATIVE_FENCE_FD_ANDROID at creation time, then its

+initial EGL_SYNC_STATUS will reflect the current status of the provided

+fence FD, and it is an error to specifically set the status. If it is

+set to EGL_NO_NATIVE_FENCE_FD_ANDROID, then its EGL_SYNC_STATUS may be

+set to either EGL_UNSIGNALED (the default) or EGL_SIGNALED. If the

+status is signaled, then no native fence will be generated until after

+it is switched to unsignaled. If eglUnsignalSyncEXT is called for a

+native fence sync object with an FD of EGL_NO_NATIVE_FENCE_FD_ANDROID,

+then a new native fence will be generated at the next Flush(), as

+described for eglCreateSync.

+

+If EGL_NV_cuda_event is present, then for CUDA event sync objects, the

+EGL_CUDA_EVENT_HANDLE_NV may be specified in eglUnsignalSyncEXT as well

+as eglCreateSync. The current CUDA event handle is evaluated at the time

+the EGL sync object becomes unsignaled, and subsequent modification of

+the CUDA object with cudaEventRecord has no effect on the sync object

+until it is signaled. Subsequently restoring the sync object to

+unsignaled will cause the CUDA object to be reevaluated.

+

+Issues

+

+    1.  Should a new attribute be required to specify a sync object as

+        reusable?

+

+        RESOLVED: No. The presence of this extension is sufficient to

+        indicate reusability of all sync objects. This will not create

+        any incompatibilities with existing applications that use sync

+        objects only once.

+

+    2.  Can we leverage the existing eglSignalSyncKHR function from

+        EGL_KHR_reusable_sync for this extension?

+

+        RESOLVED: No. Some types of sync objects require attributes

+        which are themselves single-use objects, and must be replaced

+        for the sync object to be reused. Therefore a new function which

+        takes an attribute list is required.

+

+    3.  Should the function for unsignaling be based on eglSignalSyncKHR

+        from the KHR_reusable_sync extension, and take a mode parameter

+        to distinguish signaling/unsignaling?

+

+        RESOLVED: No. While all sync objects will support unsignaling,

+        the reusable sync object is the only known one that supports

+        direct signaling, rather than signaling through some condition

+        being achieved. Therefore it is simplest to have the new

+        function only support unsignaling, and continue to use the old

+        extension for the one case where signaling is required.

+

+    4.  If the initial attribute list is incomplete (e.g. an OpenCL

+        event handle is not provided during creation of an OpenCL event

+        sync object), should the EGL_SYNC_STATUS default to EGL_SIGNALED

+        rather than generating an error if it is left unspecified?

+

+        RESOLVED: Handling of allowed/default values for EGL_SYNC_STATUS

+        is based on the sync type. For fence syncs, either value is

+        allowed, defaulting to EGL_UNSIGNALED. For OpenCL event syncs,

+        the value may not be specified, and instead is determined by

+        whether an OpenCL event is provided at creation time, and if so

+        by the status of that event.

+

+Revision History

+

+    #4  (May 16, 2018) Daniel Kartch

+        - Minor corrections to wording

+

+    #3  (April 20, 2018) Daniel Kartch

+        - Renamed to EXT

+        - Fixed grammatical errors and prepared for publication

+

+    #2  (January 23, 2018) Daniel Kartch

+        - Rewrote some sections for clarity, and fixed typos

+        - Changed default/allowed behavior for signal state at creation

+          time to be determined by the sync type and other attributes.

+        - Simplified interaction with EGL_KHR_reusable_sync.

+        - Refined interaction with EGL_ANDROID_native_fence_sync to

+          clarify allowed initial states for the sync status and fix the

+          description of when new native fences are generated.

+

+    #1  (January 16, 2018) Daniel Kartch

+        - Initial draft as XXX

diff --git a/extensions/EXT/EGL_EXT_yuv_surface.txt b/extensions/EXT/EGL_EXT_yuv_surface.txt
index c928f4e..15b854e 100644
--- a/extensions/EXT/EGL_EXT_yuv_surface.txt
+++ b/extensions/EXT/EGL_EXT_yuv_surface.txt
@@ -14,6 +14,7 @@
     Mohan Maiya
     Amit Bansal
     Tom Longo
+    Eric Engestrom
 
 Contacts
 
@@ -26,11 +27,11 @@
 
 Status
 
-    Draft
+    Complete
 
 Version
 
-    Version 8, October 24th, 2014
+    Version 9, May 4th, 2017
 
 Number
 
@@ -211,8 +212,7 @@
 
         EGL_YUV_PLANE_BPP_EXT describes the bit depth for the different
     planes of a YUV surface. The available options are EGL_YUV_PLANE_BPP_0_-
-    EXT,EGL_YUV_PLANE_BPP_8_EXT and EGL_YUV_PLANE_BPP_10_EXT. By
-    default, a YUV surface will have EGL_YUV_PLANE_BPP_8_EXT. If EGL_YUV_-
+    EXT, EGL_YUV_PLANE_BPP_8_EXT and EGL_YUV_PLANE_BPP_10_EXT. If EGL_YUV_-
     PLANE_BPP_0_EXT is specified, no color buffer will be created for the
     surface.
         EGL_YUV_DEPTH_RANGE_EXT describes the range of the pixel value and is
@@ -224,8 +224,6 @@
         EGL_YUV_PLANE_BPP_8_EXT or   Y: 16 to 235, UV: 16 to 240       Y: 0 to 255,  UV: 0 to 255
         EGL_YUV_PLANE_BPP_10_EXT     Y: 64 to 940, UV: 64 to 960       Y: 0 to 1023, UV: 0 to 1023
 
-    If the EGL_YUV_DEPTH_RANGE_EXT attribute is not specified then the range
-    shall default to EGL_YUV_DEPTH_RANGE_LIMITED_EXT.
         If OpenGL or OpenGL ES rendering is supported for a luminance color
     buffer (as described by the value of the EGL_RENDERABLE_TYPE attribute,
     described below), it is treated as RGB rendering with the value of
@@ -252,8 +250,7 @@
     standard chosen is EGL_YUV_CSC_STANDARD_709_EXT, then the color conversion
     follows the ITU-R BT.709 standard. If EGL_YUV_CSC_STANDARD_EXT is set to
     EGL_YUV_CSC_2020_EXT, then the color conversion will be processed based on
-    ITU-R BT.2020. The default value, EGL_YUV_CSC_STANDARD_601_EXT, will follow
-    the ITU-R BT.601 standard.
+    ITU-R BT.2020.
 
 
 Change option 2 in the section marked as 3.4.1.2 Sorting of EGLConfigs to:
@@ -308,12 +305,12 @@
     Attribute                       Default                           Selection  Sort     Sort
                                                                       Criteria   Order    Priority
     -------------------------       --------------------------------  ---------  -------  --------
-    EGL_YUV_ORDER_EXT               EGL_YUV_ORDER_YUV_EXT             Exact      Special  10
-    EGL_YUV_NUMBER_OF_PLANES_EXT    2                                 Exact      None
-    EGL_YUV_SUBSAMPLE_EXT           EGL_YUV_SUBSAMPLE_4_2_0_EXT       Exact      None
-    EGL_YUV_DEPTH_RANGE_EXT         EGL_YUV_DEPTH_RANGE_LIMITED_EXT   Exact      None
-    EGL_YUV_CSC_STANDARD_EXT        EGL_YUV_CSC_STANDARD_601_EXT      Exact      None
-    EGL_YUV_PLANE_BPP_EXT           EGL_YUV_PLANE_BPP_8_EXT           Exact      None
+    EGL_YUV_ORDER_EXT               EGL_DONT_CARE                     Exact      Special  10
+    EGL_YUV_NUMBER_OF_PLANES_EXT    0                                 At least   None
+    EGL_YUV_SUBSAMPLE_EXT           EGL_DONT_CARE                     Exact      None
+    EGL_YUV_DEPTH_RANGE_EXT         EGL_DONT_CARE                     Exact      None
+    EGL_YUV_CSC_STANDARD_EXT        EGL_DONT_CARE                     Exact      None
+    EGL_YUV_PLANE_BPP_EXT           EGL_DONT_CARE                     Exact      None
 
 Issues
     1.  How will a EGL surface created with a YUV config properly detect that
@@ -344,6 +341,14 @@
         it have to guarantee the pixel data, even with communicating the surface
         to other modules through a post or any other operation EGL performs.
 
+    2.  Should an EGL_COLOR_BUFFER_TYPE = EGL_DONT_CARE request enumerate all
+        YUV configs?
+
+        Resolved: Revision #9 changes the default values and selection criteria
+        to allow for full enumeration of all YUV configs. The default value of
+        EGL_COLOR_BUFFER_TYPE remains EGL_RGB_BUFFER, so this change only
+        affects explicit EGL_DONT_CARE requests.
+
 Example Configuration for NV12:
 
     const EGLint config_attribs[] =
@@ -382,3 +387,7 @@
                            Minor updates made (EXT_yuv_target)
 
 #8  October  24th, 2014    Updated for EXT and token values.
+
+#9  April    26th, 2017    Changed attributes default values and selection
+                           criteria (see issue #2).
+                           Changed status from Draft to Complete.
diff --git a/extensions/KHR/EGL_KHR_display_reference.txt b/extensions/KHR/EGL_KHR_display_reference.txt
new file mode 100644
index 0000000..e432ed9
--- /dev/null
+++ b/extensions/KHR/EGL_KHR_display_reference.txt
@@ -0,0 +1,242 @@
+Name
+
+    KHR_display_reference
+
+Name Strings
+
+    EGL_KHR_display_reference
+
+Contributors
+
+    James Jones
+    Daniel Kartch
+
+Contacts
+
+    James Jones,  NVIDIA  (jajones 'at' nvidia.com)
+
+Status
+
+    Complete
+    Ratified by the Khronos Board of Promoters on March 31, 2017.
+
+Version
+
+    Version 4 - March 15, 2018
+
+Number
+
+    EGL Extension #126
+
+Extension Type
+
+    EGL client extension
+
+Dependencies
+
+    Written based on the wording of the EGL 1.5 specification.
+
+    Requires EGL_EXT_platform_base or EGL 1.5
+
+    Interacts with EGL platform extensions.
+
+    Interacts with the EGL_EXT_device_query extension.
+
+Overview
+
+    The existing semantics of EGLDisplay object lifetimes work well for
+    applications in which one module manages all EGL usage, and in which
+    EGL displays are expected to remain available until application
+    termination once they are instantiated.  However, EGL does not
+    provide reasonable semantics in the case where applications rely on
+    toolkit libraries which use EGL independently from the application
+    itself.
+
+    This issue can be solved by adding a per-EGLDisplay reference
+    counter which is incremented by eglInitialize calls. Resource
+    destruction can then be deferred until a corresponding number of
+    eglTerminate calls is made. However, switching to this behavior
+    universally could cause backwards incompatibility problems with
+    existing applications that assume a single eglTerminate will
+    immediately free resources regardless of how many times the display
+    has been initialized.
+
+    We therefore must support both behaviors. A new attribute specified
+    when the EGLDisplay is obtained will indicate whether or not
+    reference counting is enabled. If an application requests the
+    EGLDisplay multiple times with different values for this attribute,
+    two separate displays will be returned. The one potential drawaback
+    is that these displays will have independent resource spaces, so
+    objects allocated from one cannot be used by the other. However, the
+    goal here is to support modules that access EGL independently. In
+    such a use case, they are not likely to need to share resources with
+    another module, particularly one that uses a different method for
+    accessing the display.
+
+New Types
+
+    None
+
+New Functions
+
+    EGLBoolean eglQueryDisplayAttribKHR(EGLDisplay dpy,
+                                        EGLint name,
+                                        EGLAttrib *value);
+
+New Tokens
+
+    Accepted as an attribute in the <attrib_list> parameter of
+    eglGetPlatformDisplay and the <name> parameter of
+    eglQueryDisplayAttribKHR:
+
+        EGL_TRACK_REFERENCES_KHR                         0x3352
+
+In section "3.2 Initialization":
+
+Remove the sentence in the description of eglGetPlatformDisplay
+indicating no valid attribute names are defined, and add the following:
+
+    The EGL_TRACK_REFERENCES_KHR attribute may be set to EGL_TRUE or
+    EGL_FALSE to indicate whether or not an EGLDisplay that tracks
+    reference counts for eglInitialize and eglTerminate calls (as
+    described below) is desired. If not specified, the default is
+    platform dependent. Implementations are not required to support both
+    EGL_TRUE and EGL_FALSE for this attribute. If separate successful
+    calls are made to eglGetPlatformDisplay requesting default and non-
+    default behavior for reference counting, two independent EGLDisplays
+    will be returned.
+
+Also add to the Errors section:
+
+    An EGL_BAD_ATTRIBUTE error is generated if the requested value for
+    EGL_TRACK_REFERENCES_KHR is not supported.
+
+Replace the first sentence of the second paragraph of the description of
+eglInitialize with:
+
+    When a previously uninitialized display is initialized, its
+    reference count will be set to one. Initializing an already-
+    initialized display is allowed, and will return EGL_TRUE and update
+    the EGL version numbers, but has no other effect except to increment
+    the display's reference count if its EGL_TRACK_REFERENCES_KHR
+    attribute is EGL_TRUE.
+
+Insert after the declaration of eglTerminate:
+
+    If the specified display's EGL_TRACK_REFERENCES_KHR attribute is
+    EGL_FALSE, eglTerminate will immediately set its reference count
+    to zero. Otherwise, its reference count will be decremented if it
+    is above zero. When an initialized display's reference count reaches
+    zero, termination will occur.
+
+Replace the second sentence of the last paragraph with:
+
+    All displays start out uninitialized with a reference count of zero.
+
+Add to the end of section "3.3 EGL Queries".
+
+   To query non-string attributes of an initialized display, use:
+
+        EGLBoolean eglQueryDisplayAttribKHR(EGLDisplay dpy,
+                                            EGLint name,
+                                            EGLAttrib *value);
+
+    On success, EGL_TRUE is returned, and the value of the attribute
+    specified by <name> is returned in the space pointed to by <value>.
+
+    On failure, EGL_FALSE is returned.  An EGL_NOT_INITIALIZED error
+    is generated if EGL is not initialized for <dpy>.  An
+    EGL_BAD_ATTRIBUTE error is generated if <name> is not a valid
+    value. Currently, the only valid attribute name is
+    EGL_TRACK_REFERENCES_KHR.
+
+Interactions with EGL_KHR_platform_android:
+
+    If eglGetPlatformDisplay() is called with <platform> set to
+    EGL_PLATFORM_ANDROID_KHR, the default value of
+    EGL_TRACK_REFERENCES_KHR is EGL_TRUE.
+
+Interactions with EGL_EXT_platform_device, EGL_KHR_platform_gbm,
+EGL_KHR_platform_x11, and EGL_KHR_platform_wayland:
+
+    If eglGetPlatformDisplay() is called with <platform> set to
+    EGL_PLATFORM_DEVICE_EXT, EGL_PLATFORM_GBM_KHR, EGL_PLATFORM_X11_KHR,
+    or EGL_PLATFORM_WAYLAND_KHR, the default value of
+    EGL_TRACK_REFERENCES_KHR is EGL_FALSE.
+
+Interactions with EGL_EXT_device_query:
+
+    The eglQueryDisplayAttribKHR function defined here is equivalent to
+    eglQueryDisplayAttribEXT defined by EGL_EXT_device_query, and the
+    attribute names supported are a superset of those provided by both
+    extensions and any others which rely on them.
+
+Issues
+
+    1.  What is the default value for EGL_TRACK_REFERENCES_KHR?
+
+        RESOLUTION: For backwards compatibility reasons, the default
+        value is platform-specific. The Android platform has
+        historically implemented the behavior of
+        EGL_TRACK_REFERENCES_KHR = EGL_TRUE, while other platforms
+        defaulted to the opposite behavior. Application components
+        capable of supporting either behavior will be able to query
+        the value to determine how to proceed.
+
+    2.  Should the value of EGL_TRACK_REFERENCES_KHR affect whether
+        eglGetPlatformDisplay returns a new display handle or an
+        existing one given otherwise identical parameters?
+
+        RESOLUTION: Yes. For any given combination of platform display
+        handle and other attributes, calling eglGetPlatformDisplay
+        with different values for EGL_TRACK_REFERENCES_KHR will result
+        in two different EGLDisplay handles being returned.
+
+        Resources created with respect to one of these EGLDisplays will
+        not be accessible to the other. This restriction is unlikely to
+        cause issues, because the reference counting is added primarily
+        to support independent toolkits. Application components which
+        independently initialize and terminate the display are not
+        likely to share resources, particularly if they use different
+        methods for that initialization.
+
+    3.  Should the new display attribute be queryable?
+
+        RESOLUTION: Yes. Not all implemenations will support both TRUE
+        and FALSE for this attribute. Application components capable of
+        supporting either value will allow the default to be chosen, and
+        then query the value to determine how to handle termination.
+
+    4.  Should implementations which support this extension be required
+        to support both TRUE and FALSE for the attribute?
+
+        RESOLUTION: No. Lack of refcounting in the core specification is
+        considered by many to be a flaw, and some implementations/platforms
+        will choose to always provide refcounting behavior. This technically
+        makes them non-compliant. The addition of this extension should allow
+        that deviation.
+
+Revision History
+
+    #4 (March 15, 2018) Jon Leech
+
+        - Change extension number from 118 to 126 to avoid an accidental
+          collision.
+
+    #3 (January 12, 2017) Daniel Kartch
+
+        - Change to KHR.
+        - Allocate enum value.
+
+    #2 (November 15, 2016) Daniel Kartch
+
+        - Full termination portion split off into separate extension
+          EGL_XXX_full_termination.
+        - Update reference counting to have separate EGLDisplays for
+          the same native display, one with reference counting and
+          one without.
+        - Add query function to determine attribute value.
+
+    #1 (October 28, 2014) James Jones
+
+        - Initial draft as EGL_XXX_display_reference
diff --git a/extensions/MESA/EGL_MESA_drm_image.txt b/extensions/MESA/EGL_MESA_drm_image.txt
index 4f28d78..0937d6b 100644
--- a/extensions/MESA/EGL_MESA_drm_image.txt
+++ b/extensions/MESA/EGL_MESA_drm_image.txt
@@ -16,7 +16,7 @@
 
 Version
 
-    Version 3, November 29, 2010
+    Version 4, November 23, 2017
 
 Number
 
@@ -24,7 +24,7 @@
 
 Dependencies
 
-    Reguires EGL 1.4 or later.  This extension is written against the
+    Requires EGL 1.4 or later.  This extension is written against the
     wording of the EGL 1.4 specification.
 
     EGL_KHR_base_image is required.
@@ -66,6 +66,7 @@
 
         EGL_DRM_BUFFER_USE_SCANOUT_MESA		0x0001
         EGL_DRM_BUFFER_USE_SHARE_MESA		0x0002
+        EGL_DRM_BUFFER_USE_CURSOR_MESA	0x0004
 
     Accepted in the <target> parameter of eglCreateImageKHR:
 
@@ -89,13 +90,16 @@
     extension is EGL_DRM_BUFFER_FORMAT_ARGB32_MESA, where each pixel
     is a CPU-endian, 32-bit quantity, with alpha in the upper 8 bits,
     then red, then green, then blue.  The bit values accepted by
-    EGL_DRM_BUFFER_USE_MESA are EGL_DRM_BUFFER_USE_SCANOUT_MESA and
-    EGL_DRM_BUFFER_USE_SHARE_MESA.  EGL_DRM_BUFFER_USE_SCANOUT_MESA
-    requests that the created EGLImage should be usable as a scanout
-    buffer with the DRM kernel modesetting API.  The
-    EGL_DRM_BUFFER_USE_SHARE_MESA bit requests that the EGLImage can
-    be shared with other processes by passing the underlying DRM
-    buffer name.
+    EGL_DRM_BUFFER_USE_MESA are EGL_DRM_BUFFER_USE_SCANOUT_MESA,
+    EGL_DRM_BUFFER_USE_SHARE_MESA and EGL_DRM_BUFFER_USE_CURSOR_MESA.
+    EGL_DRM_BUFFER_USE_SCANOUT_MESA requests that the created EGLImage
+    should be usable as a scanout buffer with the DRM kernel
+    modesetting API.  EGL_DRM_BUFFER_USE_SHARE_MESA requests that the
+    EGLImage can be shared with other processes by passing the
+    underlying DRM buffer name.  EGL_DRM_BUFFER_USE_CURSOR_MESA
+    requests that the image must be usable as a cursor with KMS.  When
+    EGL_DRM_BUFFER_USE_CURSOR_MESA is set, width and height must both
+    be 64.
 
     To create a process local handle or a global DRM name for a
     buffer, call
@@ -134,7 +138,7 @@
         RESOLVED: The eglQueryImage function has been proposed often,
         but it goes against the EGLImage design.  EGLImages are opaque
         handles to a 2D array of pixels, which can be passed between
-        client APIs.  By referenceing an EGLImage in a client API, the
+        client APIs.  By referencing an EGLImage in a client API, the
         EGLImage target (a texture, a renderbuffer or such) can be
         used to query the attributes of the EGLImage.  We don't have a
         full client API for creating and querying DRM buffers, though,
@@ -149,3 +153,5 @@
         some of the original discussion in the issues section.
     Version 3, November 29, 2010 (Jon Leech)
         Fix typo.
+    Version 4, November 23, 2017 (Kristian Høgsberg)
+        Fix typos, add EGL_DRM_BUFFER_USE_CURSOR_MESA
diff --git a/extensions/MESA/EGL_MESA_platform_gbm.txt b/extensions/MESA/EGL_MESA_platform_gbm.txt
index c22c7ac..e40a774 100644
--- a/extensions/MESA/EGL_MESA_platform_gbm.txt
+++ b/extensions/MESA/EGL_MESA_platform_gbm.txt
@@ -73,9 +73,8 @@
     To obtain an EGLDisplay from an GBM device, call eglGetPlatformDisplayEXT with
     <platform> set to EGL_PLATFORM_GBM_MESA. The <native_display> parameter
     specifies the GBM device to use and must either point to a `struct
-    gbm_device` or be EGL_DEFAULT_DISPLAY. If <native_display> is
-    EGL_DEFAULT_DISPLAY, then the resultant EGLDisplay will be backed by some
-    implementation-chosen GBM device.
+    gbm_device` or be NULL. If <native_display> is NULL, then the resultant
+    EGLDisplay will be backed by some implementation-chosen GBM device.
 
     For each EGLConfig that belongs to the GBM platform, the
     EGL_NATIVE_VISUAL_ID attribute is a GBM color format, such as
@@ -94,11 +93,10 @@
 
 Issues
 
-    1. Should this extension permit EGL_DEFAULT_DISPLAY as input to
-       eglGetPlatformDisplayEXT?
+    1. Should this extension permit NULL as input to eglGetPlatformDisplayEXT?
 
-       RESOLUTION: Yes. When given EGL_DEFAULT_DISPLAY, eglGetPlatformDisplayEXT
-       returns an EGLDisplay backed by an implementation-chosen GBM device.
+       RESOLUTION: Yes. When given NULL, eglGetPlatformDisplayEXT returns an
+       EGLDisplay backed by an implementation-chosen GBM device.
 
 Example Code
 
@@ -284,6 +282,12 @@
 
 Revision History
 
+    Version 8, 2018-05-25 (Krzysztof Kosiński)
+        - Corrected EGL_DEFAULT_DISPLAY to NULL. The second argument to
+          eglGetPlatformDisplayEXT has type void*, while EGL_DEFAULT_DISPLAY has
+          type EGLNativeDisplayType, which is not guaranteed to be convertible
+          to void* - it could be int, long or intptr_t.
+
     Version 7, 2016-01-04 (Jon Leech)
         - Free config memory allocated in sample code (Public Bug 1445).
 
diff --git a/extensions/MESA/EGL_MESA_query_driver.txt b/extensions/MESA/EGL_MESA_query_driver.txt
new file mode 100644
index 0000000..bf260bd
--- /dev/null
+++ b/extensions/MESA/EGL_MESA_query_driver.txt
@@ -0,0 +1,95 @@
+Name
+
+    MESA_query_driver
+
+Name Strings
+
+    EGL_MESA_query_driver
+
+Contact
+
+    Rob Clark      <robdclark 'at' gmail.com>
+    Nicolai Hähnle <Nicolai.Haehnle 'at' amd.com>
+
+Contibutors
+
+    Veluri Mithun <velurimithun38 'at' gmail.com>
+
+Status
+
+    Complete
+
+Version
+
+    Version 3, 2019-01-24
+
+Number
+
+    EGL Extension 131
+
+Dependencies
+
+    EGL 1.0 is required.
+
+Overview
+
+    When an application has to query the name of a driver and for
+    obtaining driver's option list (UTF-8 encoded XML) of a driver
+    the below functions are useful.
+
+    XML file formally describes all available options and also
+    includes verbal descriptions in multiple languages. Its main purpose
+    is to be automatically processed by configuration GUIs.
+    The XML shall respect the following DTD:
+
+    <!ELEMENT driinfo      (section*)>
+    <!ELEMENT section      (description+, option+)>
+    <!ELEMENT description  (enum*)>
+    <!ATTLIST description  lang CDATA #REQUIRED
+                           text CDATA #REQUIRED>
+    <!ELEMENT option       (description+)>
+    <!ATTLIST option       name CDATA #REQUIRED
+                           type (bool|enum|int|float) #REQUIRED
+                           default CDATA #REQUIRED
+                           valid CDATA #IMPLIED>
+    <!ELEMENT enum         EMPTY>
+    <!ATTLIST enum         value CDATA #REQUIRED
+                           text CDATA #REQUIRED>
+
+New Procedures and Functions
+
+    char* eglGetDisplayDriverConfig(EGLDisplay dpy);
+    const char* eglGetDisplayDriverName(EGLDisplay dpy);
+
+Description
+
+    By passing EGLDisplay as parameter to `eglGetDisplayDriverName` one can retrieve
+    driverName. Similarly passing EGLDisplay to `eglGetDisplayDriverConfig` we can retrieve
+    driverConfig options of the driver in XML format.
+
+    The string returned by `eglGetDisplayDriverConfig` is heap-allocated and caller
+    is responsible for freeing it.
+
+    EGL_BAD_DISPLAY is generated if `disp` is not an EGL display connection.
+
+    EGL_NOT_INITIALIZED is generated if `disp` has not been initialized.
+
+    If the implementation does not have enough resources to allocate the XML then an
+    EGL_BAD_ALLOC error is generated.
+
+New Tokens
+
+    No new tokens
+
+Issues
+
+    None
+
+
+Revision History
+
+    Version 1, 2018-11-05 - First draft (Veluri Mithun)
+    Version 2, 2019-01-23 - Final version (Veluri Mithun)
+    Version 3, 2019-01-24 - Mark as complete, add Khronos extension
+                            number, fix parameter name in prototypes,
+                            write revision history (Eric Engestrom)
diff --git a/extensions/NV/EGL_NV_context_priority_realtime.txt b/extensions/NV/EGL_NV_context_priority_realtime.txt
new file mode 100644
index 0000000..5435c8c
--- /dev/null
+++ b/extensions/NV/EGL_NV_context_priority_realtime.txt
@@ -0,0 +1,195 @@
+Name
+
+    NV_context_priority_realtime
+
+Name Strings
+
+    EGL_NV_context_priority_realtime
+
+Contributors
+
+    Sandeep Shinde
+    Kirill Artamonov
+    Sami Kiminki
+    Donghan Ryu
+    Daniel Koch
+    Mark Kilgard
+
+Contacts
+
+    Sandeep Shinde, NVIDIA (sashinde 'at' nvidia 'dot' com)
+
+Status
+
+    Complete
+
+Version
+
+    Version 4 - November 21, 2017
+
+Number
+
+    EGL Extension #124
+
+Dependencies
+
+    Requires EGL 1.0.
+
+    Requires EGL_IMG_context_priority
+
+    This extension is written against the wording of the EGL 1.5
+    Specification - August 27, 2014 (but may be implemented against earlier
+    versions).
+
+Overview
+
+    This extension allows an EGLContext to be created with one extra
+    priority level in addition to three priority levels that are part of
+    EGL_IMG_context_priority extension.
+
+    This new level has extra privileges that are not available to other three
+    levels. Some of the privileges may include:
+    - Allow realtime priority to only few contexts
+    - Allow realtime priority only to trusted applications
+    - Make sure realtime priority contexts are executed immediately
+    - Preempt any current context running on GPU on submission of
+      commands for realtime context
+
+    The mechanism for determining which EGL context is allowed to use this
+    priority level is platform dependent.
+
+New Types
+
+    None
+
+New Procedures and Functions
+
+    None
+
+New Tokens
+
+    New attribute value accepted for the EGL_CONTEXT_PRIORITY_LEVEL_IMG
+    attribute in the <attrib_list> argument of eglCreateContext:
+
+        EGL_CONTEXT_PRIORITY_REALTIME_NV         0x3357
+
+Additions to Chapter 3 of the EGL 1.5 Specification (EGL Functions and Errors)
+
+    Add a NEW section "3.7.1.7 Context Priority" to specify the context
+    priority attribute for EGL_IMG_context_priority and values:
+
+    "3.7.1.7 Context Priority
+
+    The attribute EGL_CONTEXT_PRIORITY_LEVEL_IMG specifies a context
+    priority hint for a context supporting context priority.  This
+    attribute's value may be one of EGL_CONTEXT_PRIORITY_HIGH_IMG,
+    EGL_CONTEXT_PRIORITY_MEDIUM_IMG, EGL_CONTEXT_PRIORITY_LOW_IMG,
+    or EGL_CONTEXT_PRIORITY_REALTIME_NV.  The default value for
+    EGL_CONTEXT_PRIORITY_LEVEL_IMG is EGL_CONTEXT_PRIORITY_MEDIUM_IMG.
+
+    This attribute is a hint, as an implementation may not support
+    multiple contexts at some priority levels and system policy may limit
+    access to high priority contexts to appropriate system privilege
+    level.
+
+    The value EGL_CONTEXT_PRIORITY_REALTIME_NV requests the created
+    context run at the highest possible priority and be capable of
+    preempting the current executing context when commands are flushed
+    by such a realtime context.
+
+    This attribute is supported only for OpenGL and OpenGL ES contexts."
+
+    Within section 3.7.4 "Context Queries" amend the eglQueryContext
+    discussion as follows:
+
+    Change the sentence describing the attribute parameter to include
+    EGL_CONTEXT_PRIORITY_LEVEL_IMG so it reads:
+
+    "attribute must be set to EGL_CONFIG_ID, EGL_CONTEXT_CLIENT_TYPE,
+    EGL_CONTEXT_CLIENT_VERSION, EGL_RENDER_BUFFER, or
+     EGL_CONTEXT_PRIORITY_LEVEL_IMG."
+
+    After the discussion of "Querying EGL_RENDER_BUFFER", add:
+
+    "Querying EGL_CONTEXT_PRIORITY_LEVEL_IMG returns the priority this
+    context was actually created with. Note: this may not be the same
+    as specified at context creation time, due to implementation limits
+    on the number of contexts that can be created at a specific priority
+    level in the system."
+
+Issues
+
+    1)  The EGL_IMG_context_priority extension is written to amend the EGL
+        1.4 specification.  Should this extension amend EGL 1.5 or 1.4?
+
+        RESOLVED:  EGL 1.5 because it is newer and better organized to
+        extend context attributes.
+
+        EGL 1.5 rewrites 3.7.1 "Creating Rendering Contexts" to have subsections
+        for different context attributes.  This extension adds a new such section
+        that includes the EGL_IMG_context_priority attribute and values too.
+
+    2)  Is context priority hint supported for both OpenGL and OpenGL ES contexts?
+
+        RESOLVED:  Yes.
+
+    3)  What is the intended application of the realtime priority level?
+
+        RESOLVED:  One anticipated application is the system compositor
+        for a Head Mounted Display (HMD) requires realtime recomposition
+        for time-warping.
+
+    4)  What action causes a context with realtime priority to preempt
+        other contexts?
+
+        RESOLVED:  Preemption by a context with realtime priority should
+        occur when there are pending rendering commands and an implicit or
+        explicit flush (i.e. glFlush or glFinish) occurs.
+
+    5)  What does "trusted" or "appropriate system privilege level"
+        mean in practice for a Linux-based operating system such as Android?
+
+        RESOLVED: Trusted means an application that has higher privileges
+        than other apps such as having CAP_SYS_NICE capability. On Android
+        such applications have to be registered in advance with the OS;
+        unpriviledged third party app cannot acquire this capability.
+
+        This restriction exists so arbitrary applications do not starve or
+        otherwise compromise the interactivity of the system overall.
+
+    6)  In practice how many realtime priority contexts can exist in a system to
+        get best performance?
+
+        RESOLVED: Only one realtime priority context should be active at a given
+        moment to get best performance.
+
+    7)  Can a context created with a realtime priority hint that is
+        in fact given a realtime priority, subsequently find that realtime
+        priority revoked and, if revoked, can it be restored?
+
+        RESOLVED: No, once a context is created with specific priority level, the
+        priority will not change for lifetime of the context. This means there will
+        not be revoking or restoring of realtime priority to already created context.
+
+    8)  The attrib_list for eglCreateContext could list the attribute
+        EGL_CONTEXT_PRIORITY_LEVEL_IMG multiple times with different valid values.
+        What happens in this case?
+
+        RESOLVED: Behavior is undefined in this case.
+
+        NVIDIA's EGL implementation handles such case by using the last (valid) attribute
+        value listed in the attrib_list array as the effective attribute value for
+        creating the context.
+
+        The EGL specification is unfortunately silent on this issue.
+
+
+Revision History
+    Version 1,  2016/11/23 (Sandeep Shinde)
+        - Initial version
+    Version 2,  2017/10/13 (Mark Kilgard)
+        - Complete and convert to NV extension
+    Version 3, 2017/10/31 (Sandeep Shinde)
+        - Few minor corrections. Issue 6 resolved.
+    Version 4, 2017/11/21 (Sandeep Shinde)
+        - Update enum value and add extension number
diff --git a/extensions/NV/EGL_NV_cuda_event.txt b/extensions/NV/EGL_NV_cuda_event.txt
index 08154bc..cc54749 100644
--- a/extensions/NV/EGL_NV_cuda_event.txt
+++ b/extensions/NV/EGL_NV_cuda_event.txt
@@ -11,6 +11,7 @@
     Debalina Bhattacharjee
     Michael Chock
     James Jones
+    Daniel Kartch
 
 Contact
 
@@ -22,7 +23,7 @@
 
 Version
 
-    Version 1, June 20, 2014
+    Version 2, June 28, 2018
 
 Number
 
@@ -34,11 +35,15 @@
 
 Dependencies
 
-    This extension is written against the language of EGL 1.5.
+    This extension is written against the language of EGL 1.5 and the
+    EGL_EXT_sync_reuse extension.
 
     Either EGL_KHR_fence_sync and the EGLAttrib type or EGL 1.5 are
     required.
 
+    This extension interacts with, but does not require,
+    EGL_EXT_sync_reuse.
+
     This extension interacts with EGL_NV_device_cuda.
 
 Overview
@@ -77,31 +82,31 @@
 
         EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D
 
-Changes to Chapter 3 of the EGL 1.5 Specification (EGL Functions and
-Errors)
+Add to section 3.8.1 (Sync Objects) of the EGL 1.5 specification, after
+the sixth paragraph:
 
-    In section 3.8.1 (Sync Objects) Replace the sixth paragraph:
+    Likewise, a <CUDA event sync object> reflects the status of a
+    corresponding CUDA object. Waiting on this type of sync object is
+    equivalent to waiting for completion of the corresponding linked
+    CUDA event object.
 
-   "A <OpenCL event sync object> reflects the status of a corresponding
-    OpenCL object to which the sync object is linked. Likewise, a <CUDA
-    event sync object> reflects the status of a corresponding CUDA
-    object. These provide another method of sharing images or compute
-    results between EGL and the CUDA and OpenCL client APIs (see
-    Chapter 9 of the OpenCL Specification and the cl_khr_egl_image
-    extension for a second method of synchronization with OpenCL).
-    Waiting on either type of sync object is equivalent to waiting for
-    completion of the corresponding linked CUDA or OpenCL event object."
+Add a new section following section 3.8.1.2 (Creating and Signaling
+OpenCL Event Sync Objects):
 
-    Add a new section following section 3.8.1.2 (Creating OpenCL Event
-    Sync Objects):
-
-   "Section 3.8.1.X Creating CUDA Event Sync Objects
+    Section 3.8.1.X Creating and Signaling CUDA Event Sync Objects
 
     If <type> is EGL_SYNC_CUDA_EVENT_NV, a CUDA event sync object is
-    created. In this case <attrib_list> must contain the attribute
+    created. The <attrib_list> may contain the attribute
     EGL_CUDA_EVENT_HANDLE_NV, set to a pointer to a cudaEvent_t object.
-    The object must be properly initialized and recorded by the CUDA API
-    (using cudaCreateEvent and cudaEventRecord), and the CUDA device
+    If it does not contain this attribute, the sync object will start in
+    the signaled state, and an event attribute must be provided the
+    first time eglUnsignalSyncEXT is called. Otherwise, a call to
+    eglUnsignalSyncEXT may replace this event attribute or leave it
+    unspecified, causing the previous object to be reused.
+
+    A cudaEvent_t object provided to eglCreateSync or eglUnsignalSyncEXT
+    must be properly initialized and recorded by the CUDA API (using
+    cudaEventCreate and cudaEventRecord), and the CUDA device
     used to create the event must correspond to <dpy>[fn1]. Note that
     EGL_CUDA_EVENT_HANDLE_NV is not a queryable property of a sync
     object.
@@ -119,47 +124,57 @@
         EGL_SYNC_STATUS         Depends on status of <event>
         EGL_SYNC_CONDITION      EGL_SYNC_CUDA_EVENT_COMPLETE_NV
 
-    The status of such a sync object depends on the state of <event> at
-    the time eglCreateSync was called. If all device work preceding the
-    most recent call to cudaEventRecord on the event has not yet
-    completed, the status of the linked sync object will be
-    EGL_UNSIGNALED. If all such work has completed, the status of the
-    linked sync object will be EGL_SIGNALED. Calling cudaEventRecord has
-    no effect on a previously created sync object.
+    If an <event> is linked to the sync object, the status of this type
+    of sync object depends on the state of <event> evaluated at the time
+    of the most recent call to eglCreateSync or eglUnsignalSyncEXT. If
+    all device work preceding the most recent call to cudaEventRecord on
+    the event has not yet completed, the status of the linked sync
+    object will be EGL_UNSIGNALED. If all such work has completed, the
+    status of the linked sync object will be EGL_SIGNALED. Calling
+    cudaEventRecord to modify an event has no effect on the sync object
+    while its status is EGL_UNSIGNALED, but will have an effect if the
+    event is reevaluated at a subsequent eglUnsignalSyncEXT call.
 
     The only condition supported for CUDA event sync objects is
     EGL_SYNC_CUDA_EVENT_COMPLETE_NV. It is satisfied when all device
     work prior to the most recent call to cudaEventRecord at sync
-    creation time has completed."
+    unsignaling time has completed.
 
-    Add to the list of errors following 3.8.1.X:
+If EGL_EXT_sync_reuse is not present, then change the second sentence of
+3.8.1.X above to "The <attrib_list> must contain ..." and omit the
+remaining sentences in the paragraph. Omit all references to
+eglUnsignalSyncEXT.
 
-   "If <type> is EGL_SYNC_CUDA_EVENT_NV and EGL_CUDA_EVENT_HANDLE_NV is
-    not specified in <attrib_list>, then an EGL_BAD_ATTRIBUTE error is
+In 3.8.1 (Sync Objects), if EGL_EXT_sync_reuse is present, then add the
+following to the error list for eglUnsignalSyncEXT. Otherwise add it to
+the error list for eglCreateSync:
+
+    If <type> is EGL_SYNC_CUDA_EVENT_NV and a EGL_CUDA_EVENT_HANDLE_NV
+    is not linked to the sync object, then an EGL_BAD_ATTRIBUTE error is
     generated. If its attribute value is not a valid CUDA event pointer
     or has not been initialized as described above, then
     EGL_BAD_ATTRIBUTE may be generated, but the results are undefined
-    and may include program termination."
+    and may include program termination.
 
-    Modify the third paragraph of section 3.8.1.4 (Querying Sync Object
-    Attributes):
+Modify the third paragraph of section 3.8.1.4 (Querying Sync Object
+Attributes):
 
-   "If any eglClientWaitSync or eglWaitSync commands are blocking on
+    If any eglClientWaitSync or eglWaitSync commands are blocking on
     <sync> when eglDestroySync is called, <sync> is flagged for deletion
     and will be deleted when the associated fence command, OpenCL event
     object, or CUDA event object has completed, and <sync> is no longer
     blocking any such egl*WaitSync command. Otherwise, the sync object
     is destroyed immediately.
 
-    Replace the EGL_SYNC_CONDITION row of table 3.9 with:
+Replace the EGL_SYNC_CONDITION row of table 3.9 with:
 
-   "Attribute              Description                Supported Sync Objects
-    -----------------      -----------------------    ----------------------
-    EGL_SYNC_CONDITION     Signaling condition        EGL_SYNC_FENCE,
-                                                      EGL_SYNC_CL_EVENT, or
-                                                      EGL_SYNC_CUDA_EVENT_NV
+    Attribute           Description              Supported Sync Objects
+    ------------------  -----------------------  ----------------------
+    EGL_SYNC_CONDITION  Signaling condition      EGL_SYNC_FENCE,
+                                                 EGL_SYNC_CL_EVENT, or
+                                                 EGL_SYNC_CUDA_EVENT_NV
 
-    Table 3.9  Attributes Accepted by eglGetSyncAttrib"
+    Table 3.9  Attributes Accepted by eglGetSyncAttrib
 
 
 Interactions with EGL versions prior to 1.5
@@ -181,5 +196,11 @@
 
 Revision History
 
+    Version 2, 2018/06/28 (Daniel Kartch)
+        - Rewritten to clearly define interactions with
+          EGL_EXT_sync_reuse, without requiring it
+        - Fixed incorrect CUDA function name
+        - Fixed table spacing
+
     Version 1, 2014/06/20 (Michael Chock)
         - initial version.
diff --git a/extensions/NV/EGL_NV_stream_consumer_gltexture_yuv.txt b/extensions/NV/EGL_NV_stream_consumer_gltexture_yuv.txt
index 5c0e4b7..4aa0a66 100644
--- a/extensions/NV/EGL_NV_stream_consumer_gltexture_yuv.txt
+++ b/extensions/NV/EGL_NV_stream_consumer_gltexture_yuv.txt
@@ -12,6 +12,7 @@
     Daniel Kartch
     Nikhil Mahale
     Daniel Koch
+    Jeff Gilbert
 
 Contacts
 
@@ -23,7 +24,7 @@
 
 Version
 
-    Version 3 - August 19, 2015
+    Version 4 - November 14, 2017
 
 Number
 
@@ -66,9 +67,9 @@
 New Functions
 
     EGLBoolean eglStreamConsumerGLTextureExternalAttribsNV(
-                    EGLDisplay   dpy,
-                    EGLStreamKHR stream,
-                    EGLAttrib    *attrib_list)
+                    EGLDisplay       dpy,
+                    EGLStreamKHR     stream,
+                    const EGLAttrib *attrib_list)
 
 New Tokens
 
@@ -98,9 +99,9 @@
     Call
 
         EGLBoolean eglStreamConsumerGLTextureExternalAttribsNV(
-                    EGLDisplay    dpy,
-                    EGLStreamKHR  stream,
-                    EGLAttrib    *attrib_list)
+                    EGLDisplay       dpy,
+                    EGLStreamKHR     stream,
+                    const EGLAttrib *attrib_list)
 
     to connect one or more texture objects in the OpenGL or OpenGL ES
     context current to the calling thread as the consumer(s) of
@@ -265,6 +266,9 @@
 
 Revision History
 
+    #4  (November 14, 2017) Mozilla Corporation
+        - Const-qualify attrib_list.
+
     #3  (August 19, 2015) NVIDIA Corporation
         - Added enum values.
         - Cleaned up and added contact info for publication.
diff --git a/extensions/NV/EGL_NV_stream_flush.txt b/extensions/NV/EGL_NV_stream_flush.txt
new file mode 100644
index 0000000..0b26508
--- /dev/null
+++ b/extensions/NV/EGL_NV_stream_flush.txt
@@ -0,0 +1,132 @@
+Name
+
+    NV_stream_flush
+
+Name Strings
+
+    EGL_NV_stream_flush
+
+Contributors
+
+    Santanu Thangaraj
+    Daniel Kartch
+
+Contacts
+
+    Santanu Thangaraj, NVIDIA (sthangaraj 'at' nvidia.com)
+
+Status
+
+    Draft
+
+Version
+
+    Version 3 - April 11, 2018
+
+Number
+
+    127
+
+Extension Type
+
+    EGL display extension
+
+Dependencies
+
+    Requires the EGL_KHR_stream extension.
+
+    Requires either the EGL_KHR_stream_cross_process_fd or 
+    EGL_NV_stream_remote extensions.
+    
+    This extension is written based on the wording of version 27 of 
+    the EGL_KHR_stream extension.
+
+Overview:
+
+    The EGL_KHR_stream_cross_process_fd and EGL_NV_stream_remote 
+    extensions do not guarantee that when the state of the EGLStream
+    object representing one endpoint of the stream changes, 
+    the state of the other endpoint will immediately reflect 
+    that change. Depending on the implementation, there may be some
+    latency in the propagation of state changes.
+
+    This latency will not affect any applications which rely solely
+    on the stream itself for communication. State changes made on 
+    one side will eventually be visible on the other side, 
+    and can then be responded to.
+
+    This only affects applications which use some additional means of 
+    communication outside of the stream itself, which may encounter 
+    race conditions. In particular, if an application inserts a frame
+    into a stream, then sends a message to the other side indicating 
+    that the frame is ready, the other side may encounter an error if
+    it tries to acquire the frame and it is not yet available.
+
+    One solution is to force all operations that change state of one 
+    endpoint to behave synchronously, and not return until the change
+    is reflected on the other endpoint. However this adds undesirable 
+    delays for the majority of applications and operations where such 
+    synchronization is not required. This extension instead provides
+    a means for applications to explicitly invoke such 
+    synchronization only where required.
+
+New types
+
+    None
+
+New Procedures and functions
+
+    EGLBoolean eglStreamFlushNV(
+        EGLDisplay       dpy,
+        EGLStreamKHR     stream); 
+
+New Tokens
+    
+    None
+
+Add a new subsection "3.10.x EGLStream flush" at the end of section 
+"3.10 EGLStreams" in EGL_KHR_stream extension.
+
+    The command
+
+        EGLBoolean eglStreamFlushNV(
+            EGLDisplay       dpy,
+            EGLStreamKHR     stream);
+
+    When called with either producer or consumer endpoint of the 
+    stream, will block until any state changes made to this endpoint 
+    prior to the call are visible on the EGLStream object of the other
+    endpoint.
+
+    On success, EGL_TRUE will be returned. On failure, EGL_FALSE will
+    be returned and an error will be generated.
+
+        - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+          EGLStream.
+
+        - EGL_BAD_STATE_KHR is generated if <stream> is in
+          EGL_STREAM_STATE_DISCONNECTED_KHR state.
+
+        - EGL_BAD_DISPLAY is generated if <dpy> is not a valid
+          EGLDisplay.
+
+        - EGL_NOT_INITIALIZED is generated if <dpy> is not initialized.
+
+Issues
+
+    1.  When both producer and consumer are connected to a single 
+        EGLStream object, what happens when eglStreamFlushNV is called?
+
+        RESOLVED: The function returns without any blocking.
+
+Revision History
+
+    #3  (April 11, 2018) Jon Leech
+        - Add missing NV suffix to eglStreamFlushNV
+
+    #2  (April 2, 2018) Santanu Thangaraj
+        - Update based on comments from Daniel Kartch
+        - General cleanup
+
+    #1  (March 26, 2018) Santanu Thangaraj
+        - Initial draft
diff --git a/index.php b/index.php
index 5a23662..ae6b329 100644
--- a/index.php
+++ b/index.php
@@ -1,18 +1,9 @@
 <?php
 $static_title = 'Khronos EGL Registry';
-$static_breadcrumb = array(
-    '/registry/' => 'Registry',
-    'NOLINK' => 'EGL Registry'
-);
+
 include_once("../../assets/static_pages/khr_page_top.php");
 ?>
 
-<h1 class="pagetitle">Khronos EGL&trade; Registry</h1>
-<div id="mainformat">
-
-
-<h1 style="text-align:center"> Khronos EGL&trade; Registry </h1>
-
 <p> The EGL registry contains specifications of the core API; specifications
     of Khronos- and vendor-approved EGL extensions; header files
     corresponding to the specifications; an enumerant and function registry;
@@ -34,10 +25,10 @@
      (required by the current EGL and OpenGL ES headers). </li>
 </ul>
 
-<h6> Man Pages, Technical Notes and White Papers </h6>
+<h6> Reference Pages, Technical Notes and White Papers </h6>
 
 <ul>
-<li> <a href="sdk/docs/man/"> EGL 1.4 man pages </a>
+<li> <a href="sdk/docs/man/"> EGL 1.5 reference pages </a>
 <li> <a href="specs/EGLTechNote0001.html">EGL Technical Note #1 - EGL 1.4 and
      ancillary buffer preservation </a>
 </ul>
@@ -308,6 +299,37 @@
 </li>
 <li value=116> <a href="extensions/EXT/EGL_EXT_compositor.txt">EGL_EXT_compositor</a>
 </li>
+<li value=117> <a href="extensions/EXT/EGL_EXT_surface_CTA861_3_metadata.txt">EGL_EXT_surface_CTA861_3_metadata</a>
+</li>
+<li value=118> <a href="extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt">EGL_EXT_gl_colorspace_display_p3</a>
+</li>
+<li value=118> <a href="extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt">EGL_EXT_gl_colorspace_display_p3_linear</a>
+</li>
+<li value=119> <a href="extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt">EGL_EXT_gl_colorspace_scrgb (non-linear)</a>
+<li value=120> <a href="extensions/EXT/EGL_EXT_image_implicit_sync_control.txt">EGL_EXT_image_implicit_sync_control</a>
+<li value=121> <a href="extensions/EXT/EGL_EXT_bind_to_front.txt">EGL_EXT_bind_to_front</a>
+</li>
+<li value=122> <a href="extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt">EGL_ANDROID_get_frame_timestamps</a>
+</li>
+<li value=123> <a href="extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt">EGL_ANDROID_get_native_client_buffer</a>
+</li>
+<li value=124> <a href="extensions/NV/EGL_NV_context_priority_realtime.txt">EGL_NV_context_priority_realtime</a>
+</li>
+<li value=125> <a href="extensions/EXT/EGL_EXT_image_gl_colorspace.txt">EGL_EXT_image_gl_colorspace</a>
+</li>
+<li value=126> <a href="extensions/KHR/EGL_KHR_display_reference.txt">EGL_KHR_display_reference</a>
+</li>
+<li value=127> <a href="extensions/NV/EGL_NV_stream_flush.txt">EGL_NV_stream_flush</a>
+</li>
+<li value=128> <a href="extensions/EXT/EGL_EXT_sync_reuse.txt">EGL_EXT_sync_reuse</a>
+</li>
+<li value=129> <a href="extensions/EXT/EGL_EXT_client_sync.txt">EGL_EXT_client_sync</a>
+</li>
+<li value=130> <a href="extensions/EXT/EGL_EXT_gl_colorspace_display_p3_passthrough.txt">EGL_EXT_gl_colorspace_display_p3_passthrough</a>
+</li>
+</li>
+<li value=131> <a href="extensions/MESA/EGL_MESA_query_driver.txt">EGL_MESA_query_driver</a>
+</li>
 </ol>
 
 <h6> Providing Feedback on the Registry </h6>
diff --git a/registry.tcl b/registry.tcl
index 1712398..ec0a982 100644
--- a/registry.tcl
+++ b/registry.tcl
@@ -604,4 +604,79 @@
     flags       public
     filename    extensions/EXT/EGL_EXT_compositor.txt
 }
-# Next free extension number: 117
+extension EGL_EXT_surface_CTA861_3_metadata {
+    number      117
+    flags       public
+    filename    extensions/EXT/EGL_EXT_surface_CTA861_3_metadata.txt
+}
+extension EGL_EXT_gl_colorspace_display_p3 {
+    number      118
+    flags       public
+    filename    extensions/EXT/EGL_EXT_colorspace_display_p3.txt
+}
+extension EGL_EXT_gl_colorspace_scrgb {
+    number      119
+    flags       public
+    filename    extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt
+}
+extension EGL_EXT_image_implicit_sync_control {
+    number      120
+    flags       public
+    filename    extensions/EXT/EGL_EXT_image_implicit_sync_control.txt
+}
+extension EGL_EXT_bind_to_front {
+    number      121
+    flags       public
+    filename    extensions/EXT/EGL_EXT_bind_to_front.txt
+}
+extension EGL_ANDROID_get_frame_timestamps {
+    number      122
+    flags       public
+    filename    extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt
+}
+extension EGL_ANDROID_get_native_client_buffer {
+    number      123
+    flags       public
+    filename    extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt
+}
+extension EGL_NV_context_priority_realtime {
+    number      124
+    flags       public
+    filename    extensions/NV/EGL_NV_context_priority_realtime.txt
+}
+extension EGL_EXT_image_gl_colorspace {
+    number      125
+    flags       public
+    filename    extensions/EXT/EGL_EXT_image_gl_colorspace.txt
+}
+extension EGL_KHR_display_reference {
+    number      126
+    flags       public
+    filename    extensions/KHR/EGL_KHR_display_reference.txt
+}
+extension EGL_NV_stream_flush {
+    number      127
+    flags       public
+    filename    extensions/NV/EGL_NV_stream_flush.txt
+}
+extension EGL_EXT_sync_reuse {
+    number      128
+    flags       public
+    filename    extensions/EXT/EGL_EXT_sync_reuse.txt
+}
+extension EGL_EXT_client_sync {
+    number      129
+    flags       public
+    filename    extensions/EXT/EGL_EXT_client_sync.txt
+}
+extension EGL_EXT_gl_colorspace_display_p3_passthrough {
+    number      130
+    flags       public
+    filename    extensions/EXT/EGL_EXT_gl_colorspace_display_p3_passthrough.txt
+}
+extension EGL_MESA_query_driver {
+    number      131
+    flags       public
+    filename    extensions/MESA/EGL_MESA_query_driver.txt
+}
+# Next free extension number: 132
diff --git a/sdk/docs/man/README b/sdk/docs/man/README
index 1465d75..9355121 100644
--- a/sdk/docs/man/README
+++ b/sdk/docs/man/README
@@ -1 +1 @@
-EGL man pages branched from /repos/ogles/branches/1.X/doc/man/xhtml
+EGL reference pages, branched from /repos/ogles/branches/1.X/doc/man/xhtml
diff --git a/sdk/docs/man/docbook4/eglIntro.xml b/sdk/docs/man/docbook4/eglIntro.xml
index 7117842..d972451 100755
--- a/sdk/docs/man/docbook4/eglIntro.xml
+++ b/sdk/docs/man/docbook4/eglIntro.xml
@@ -144,7 +144,7 @@
 <programlisting>
 #include &lt;stdlib.h&gt;
 #include &lt;unistd.h&gt;
-#include &lt;GLES/egl.h&gt;
+#include &lt;EGL/egl.h&gt;
 #include &lt;GLES/gl.h&gt;
 typedef ... NativeWindowType;
 extern NativeWindowType createNativeWindow(void);
@@ -162,25 +162,35 @@
         EGLSurface surface;
         NativeWindowType native_window;
         EGLint num_config;
+
         /* get an EGL display connection */
         display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+
         /* initialize the EGL display connection */
         eglInitialize(display, NULL, NULL);
+
         /* get an appropriate EGL frame buffer configuration */
         eglChooseConfig(display, attribute_list, &amp;config, 1, &amp;num_config);
+
         /* create an EGL rendering context */
         context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
+
         /* create a native window */
         native_window = createNativeWindow();
+
         /* create an EGL window surface */
         surface = eglCreateWindowSurface(display, config, native_window, NULL);
+
         /* connect the context to the surface */
         eglMakeCurrent(display, surface, surface, context);
+
         /* clear the color buffer */
         glClearColor(1.0, 1.0, 0.0, 1.0);
         glClear(GL_COLOR_BUFFER_BIT);
         glFlush();
+
         eglSwapBuffers(display, surface);
+
         sleep(10);
         return EXIT_SUCCESS;
 }
diff --git a/sdk/docs/man/eglBindAPI.xml b/sdk/docs/man/eglBindAPI.xml
index a92961f..0874cb3 100644
--- a/sdk/docs/man/eglBindAPI.xml
+++ b/sdk/docs/man/eglBindAPI.xml
@@ -1,7 +1,7 @@
 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglBindAPI">
     <info>
          <copyright>
-             <year>2003-2014</year>
+             <year>2003-2018</year>
              <holder>The Khronos Group Inc.</holder>
          </copyright>
     </info>
@@ -48,6 +48,7 @@
             <function>eglGetCurrentDisplay</function>,
             <function>eglGetCurrentSurface</function>,
             <function>eglMakeCurrent</function>,
+            <function>eglSwapInterval</function>,
             <function>eglWaitClient</function>, and
             <function>eglWaitNative</function>.
         </para>
@@ -113,6 +114,7 @@
             <citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglQueryAPI</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglSwapInterval</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>
         </para>
diff --git a/sdk/docs/man/eglChooseConfig.xml b/sdk/docs/man/eglChooseConfig.xml
index 136529d..87c7ce1 100755
--- a/sdk/docs/man/eglChooseConfig.xml
+++ b/sdk/docs/man/eglChooseConfig.xml
@@ -1,7 +1,7 @@
 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglChooseConfig">
     <info>
          <copyright>
-             <year>2003-2014</year>
+             <year>2003-2018</year>
              <holder>The Khronos Group Inc.</holder>
          </copyright>
     </info>
@@ -133,8 +133,7 @@
                     is zero.
                 </para>
                 <para>
-                    The alpha mask buffer is used only by OpenGL and
-                    OpenGL ES client APIs.
+                    The alpha mask buffer is used only by OpenVG.
                 </para>
                 </listitem>
             </varlistentry>
@@ -404,8 +403,9 @@
                     The default value is zero.
                 </para>
                 <para>
-                    Most imlementations do not support overlay or
-                    underlay planes (buffer levels other than zero).
+                    Most platforms do not support buffer levels other than
+                    zero. The behavior of windows placed in overlay and
+                    underlay planes depends on the underlying platform.
                 </para>
                 </listitem>
             </varlistentry>
diff --git a/sdk/docs/man/eglClientWaitSync.xml b/sdk/docs/man/eglClientWaitSync.xml
new file mode 100644
index 0000000..a6b7478
--- /dev/null
+++ b/sdk/docs/man/eglClientWaitSync.xml
@@ -0,0 +1,161 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglClientWaitSync">
+    <info>
+         <copyright>
+             <year>2018</year>
+             <holder>The Khronos Group Inc.</holder>
+         </copyright>
+    </info>
+    <refmeta>
+        <refentrytitle>eglClientWaitSync</refentrytitle>
+        <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+        <refname>eglClientWaitSync</refname>
+        <refpurpose>
+            Wait in the client for a sync object to be signalled
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>C Specification</title>
+        <funcsynopsis>
+            <funcprototype>
+            <funcdef>EGLint <function>eglClientWaitSync</function></funcdef>
+            <paramdef>(EGLDisplay <parameter>display</parameter></paramdef>
+            <paramdef>EGLSync <parameter>sync</parameter></paramdef>
+            <paramdef>EGLint <parameter>flags</parameter></paramdef>
+            <paramdef>EGLTime <parameter>timeout</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+    </refsynopsisdiv>
+    <refsect1 xml:id="parameters"><title>Parameters</title>
+        <variablelist>
+            <varlistentry>
+                <term><parameter>display</parameter></term>
+                <listitem><para>
+                    Specifies the <acronym>EGL</acronym> display connection.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>sync</parameter></term>
+                <listitem><para>
+                    Specifies the sync object to wait on.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>flags</parameter></term>
+                <listitem><para>
+                    Specifies flags controlling wait behavior.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>timeout</parameter></term>
+                <listitem><para>
+                    Specifies wait timeout interval.
+                </para></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 xml:id="description"><title>Description</title>
+        <para>
+            <function>eglClientWaitSync</function> blocks the calling thread
+            until the specified sync object <parameter>sync</parameter> is
+            signaled, or until <parameter>timeout</parameter> nanoseconds
+            have passed.
+        </para>
+        <para>
+            More than one <function>eglClientWaitSync</function> may be
+            outstanding on the same <parameter>sync</parameter> at any given
+            time. When there are multiple threads blocked on the same
+            <parameter>sync</parameter> and the sync object is signaled, all
+            such threads are released, but the order in which they are
+            released is not defined.
+        </para>
+        <para>
+            If the value of <parameter>timeout</parameter> is zero, then
+            <function>eglClientWaitSync</function> simply tests the current
+            status of <parameter>sync</parameter>. If the value of
+            <parameter>timeout</parameter> is the special value
+            <constant>EGL_FOREVER</constant>, then
+            <function>eglClientWaitSync</function> does not time out. For
+            all other values, <parameter>timeout</parameter> is adjusted to
+            the closest value allowed by the implementation-dependent
+            timeout accuracy, which may be substantially longer than one
+            nanosecond.
+        </para>
+        <para>
+            <function>eglClientWaitSync</function> returns one of three
+            status values describing the reason for returning. A return
+            value of <constant>EGL_TIMEOUT_EXPIRED</constant> indicates that
+            the specified timeout period expired before
+            <parameter>sync</parameter> was signaled, or if
+            <parameter>timeout</parameter> is zero, indicates that
+            <parameter>sync</parameter> is not signaled. A return value of
+            <constant>EGL_CONDITION_SATISFIED</constant> indicates that
+            <parameter>sync</parameter> was signaled before the timeout
+            expired, which includes the case when
+            <parameter>sync</parameter> was already signaled when
+            <function>eglClientWaitSync</function> was called. If an error
+            occurs then an error is generated and
+            <constant>EGL_FALSE</constant> is returned.
+        </para>
+        <para>
+            If the sync object being blocked upon will not be signaled in
+            finite time (for example, by an associated fence command issued
+            previously, but not yet flushed to the graphics pipeline), then
+            <function>eglClientWaitSync</function> may wait forever. To help
+            prevent this behavior, if the
+            <constant>EGL_SYNC_FLUSH_COMMANDS_BIT</constant> bit is set in
+            <parameter>flags</parameter>, and <parameter>sync</parameter> is
+            unsignaled when <function>eglClientWaitSync</function> is
+            called, then the equivalent of Flush() will be performed for the
+            current API context (i.e., the context returned by
+            <function>eglGetCurrentContext</function>) before blocking on
+            <parameter>sync</parameter>. If no context is current for the
+            bound API, the <constant>EGL_SYNC_FLUSH_COMMANDS_BIT</constant>
+            bit is ignored.
+        </para>
+        <para>
+            Note: the simple Flush behavior defined by
+            <constant>EGL_SYNC_FLUSH_COMMANDS_BIT</constant> will not help
+            when waiting for a fence command issued in a different context's
+            command stream. Applications which block on a fence sync object
+            must take additional steps to ensure that the context from which
+            the associated fence command was issued has flushed that command
+            to the graphics pipeline.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="errors"><title>Errors</title>
+        <para>
+            <function>eglClientWaitSync</function> returns
+            <constant>EGL_FALSE</constant> on failure.
+        </para>
+        <para>
+            If <parameter>sync</parameter> is not a valid sync object for
+            <parameter>display</parameter>, an
+            <constant>EGL_BAD_PARAMETER</constant> error is generated.
+        </para>
+        <para>
+            If <parameter>display</parameter> does not match the
+            <type>EGLDisplay</type> passed to
+            <function>eglCreateSync</function> when
+            <parameter>sync</parameter> was created, the behaviour is
+            undefined.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="notes"><title>Notes</title>
+        <para>
+            <function>eglClientWaitSync</function> is available only if the
+            EGL version is 1.5 or greater.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="seealso"><title>See Also</title>
+        <para>
+            <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglWaitSync</refentrytitle></citerefentry>,
+            <function>glFinish</function>,
+            <function>vgFinish</function>
+        </para>
+    </refsect1>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/sdk/docs/man/eglCreateContext.xml b/sdk/docs/man/eglCreateContext.xml
index 1231373..73c54b6 100755
--- a/sdk/docs/man/eglCreateContext.xml
+++ b/sdk/docs/man/eglCreateContext.xml
@@ -1,7 +1,7 @@
 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreateContext">
     <info>
          <copyright>
-             <year>2003-2014</year>
+             <year>2003-2018</year>
              <holder>The Khronos Group Inc.</holder>
          </copyright>
     </info>
@@ -101,111 +101,112 @@
         </para>
         <variablelist>
             <varlistentry>
-                <term><constant>EGL_CONTEXT_CLIENT_VERSION</constant></term>
+                <term><constant>EGL_CONTEXT_MAJOR_VERSION</constant></term>
                 <listitem><para>
-                    Must be followed by an integer that determines which
-                    version of an OpenGL ES context to create. A value
-                    of 1 specifies creation of an OpenGL ES 1.x context.
-                    An attribute value of 2 specifies creation of an
-                    OpenGL ES 2.x context. The default value is 1. This
-                    attribute can only be specified when creating a
-                    OpenGL ES context (e.g. when the current rendering
-                    API is <constant>EGL_OPENGL_ES_API</constant>).
+                    Must be followed by an integer specifying the requested
+                    major version of an OpenGL or OpenGL ES context. The
+                    default value is 1. This attribute is an alias of the
+                    older <constant>EGL_CONTEXT_CLIENT_VERSION</constant>,
+                    and the tokens may be used interchangeably.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_CONTEXT_MINOR_VERSION</constant></term>
+                <listitem><para>
+                    Must be followed by an integer specifying the requested
+                    minor version of an OpenGL or OpenGL ES context. The
+                    default value is 0.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_CONTEXT_OPENGL_PROFILE_MASK</constant></term>
+                <listitem><para>
+                    Must be followed by an integer bitmask specifying the
+                    <firstterm>profile</firstterm> of an OpenGL context.
+                    Bits which may be set include
+                    <constant>EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT</constant>
+                    for a core profile and
+                    <constant>EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT</constant>
+                    for a compatibility profile. The default value is
+                    <constant>EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT</constant>.
+                    All OpenGL 3.2 and later implementations are required to
+                    implement the core profile, but implementation of the
+                    compatibility profile is optional.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_CONTEXT_OPENGL_DEBUG</constant></term>
+                <listitem><para>
+                    Must be followed by <constant>EGL_TRUE</constant>,
+                    specifying that an OpenGL or OpenGL ES <firstterm>debug
+                    context</firstterm> should be created, or
+                    <constant>EGL_FALSE</constant>, if a non-debug context
+                    should be created. The default value is
+                    <constant>EGL_FALSE</constant>.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE</constant></term>
+                <listitem><para>
+                    Must be followed by <constant>EGL_TRUE</constant>,
+                    specifying that a
+                    <firstterm>forward-compatible</firstterm> OpenGL context
+                    should be created, or <constant>EGL_FALSE</constant>, if
+                    a non-forward-compatible context should be created. The
+                    default value is <constant>EGL_FALSE</constant>.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_CONTEXT_OPENGL_ROBUST_ACCESS</constant></term>
+                <listitem><para>
+                    Must be followed by <constant>EGL_TRUE</constant>,
+                    specifying that an OpenGL or OpenGL ES context
+                    supporting <firstterm>robust buffer access</firstterm>
+                    should be created, or <constant>EGL_FALSE</constant>, if
+                    a non-robust context should be created. The default
+                    value is <constant>EGL_FALSE</constant>.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY</constant></term>
+                <listitem><para>
+                    Must be followed by
+                    <constant>EGL_LOSE_CONTEXT_ON_RESET</constant>,
+                    specifying that an OpenGL or OpenGL ES context with
+                    reset notification behavior
+                    <constant>GL_LOSE_CONTEXT_ON_RESET_ARB</constant> should
+                    be created, or
+                    <constant>EGL_NO_RESET_NOTIFICATION</constant>,
+                    specifying that an OpenGL or OpenGL ES context with
+                    reset notification behavior
+                    <constant>GL_NO_RESET_NOTIFICATION_ARB</constant> should
+                    be created, as described by the
+                    <constant>GL_ARB_robustness</constant> extension.
+                </para><para>
+                    If the
+                    <constant>EGL_CONTEXT_OPENGL_ROBUST_ACCESS</constant>
+                    attribute is not set to <constant>EGL_TRUE</constant>,
+                    context creation will not fail, but the resulting
+                    context may not support robust buffer access, and
+                    therefore may not support the requested reset
+                    notification strategy The default value for
+                    <constant>EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY</constant>
+                    is <constant>EGL_NO_RESET_NOTIFICATION</constant> .
                 </para></listitem>
             </varlistentry>
         </variablelist>
-    </refsect1>
-    <refsect1 xml:id="notes"><title>Notes</title>
         <para>
-            The current rendering API is only respected if the EGL
-            version is 1.2 or greater. Otherwise, an OpenGL ES context
-            will always be created.
-        </para>
-        <para>
-            The <constant>EGL_CONTEXT_CLIENT_VERSION</constant>
-            attribute is only supported if the EGL version is 1.3 or
-            greater.
-        </para>
-        <para>
-            A <firstterm>process</firstterm> is a single execution environment,
-            implemented in a single address space, consisting of one or more threads.
-        </para>
-        <para>
-            A <firstterm>thread</firstterm> is one of a set of subprocesses that
-            share a single address space, but maintain separate program counters,
-            stack spaces, and other related global data.
-            A thread is the only member of its subprocess group is equivalent to a
-            process.
+            There are many possible interactions between requested OpenGL
+            and OpenGL ES context creation attributes, depending on the API
+            versions and extensions supported by the implementation. These
+            interactions are described in detail in the EGL 1.5
+            Specification, but are not listed here for compactness. The
+            requested attributes may not be able to be satisfied, but
+            context creation may still succeed. Applications should ensure
+            that the OpenGL or OpenGL ES contexts supports needed features
+            before using them, by determining the actual context version,
+            supported extensions, and supported context flags using runtime
+            queries.
         </para>
     </refsect1>
-    <refsect1 xml:id="errors"><title>Errors</title>
-        <para>
-            <constant>EGL_NO_CONTEXT</constant> is returned if creation of
-            the context fails.
-        </para>
-        <para>
-            <constant>EGL_BAD_MATCH</constant> is generated if the
-            current rendering API is <constant>EGL_NONE</constant> (this
-            can only arise in an EGL implementation which does not
-            support OpenGL ES, prior to the first call to
-            <function>eglBindAPI</function>).
-        </para>
-        <para>
-            <constant>EGL_BAD_MATCH</constant> is generated if the
-            server context state for
-            <parameter>share_context</parameter> exists in an address
-            space which cannot be shared with the newly created context,
-            if <parameter>share_context</parameter> was created on a
-            different display than the one referenced by
-            <parameter>config</parameter>, or if the contexts are
-            otherwise incompatible.
-        </para>
-        <para>
-            <constant>EGL_BAD_DISPLAY</constant> is generated if
-            <parameter>display</parameter> is not an EGL display connection.
-        </para>
-        <para>
-            <constant>EGL_NOT_INITIALIZED</constant> is generated if
-            <parameter>display</parameter> has not been initialized.
-        </para>
-        <para>
-            <constant>EGL_BAD_CONFIG</constant> is generated if
-            <parameter>config</parameter> is not an EGL frame buffer
-            configuration, or does not support the current rendering
-            API. This includes requesting creation of an OpenGL ES 1.x
-            context when the <constant>EGL_RENDERABLE_TYPE</constant>
-            attribute of <parameter>config</parameter> does not contain
-            <constant>EGL_OPENGL_ES_BIT</constant>, or creation of an
-            OpenGL ES 2.x context when the attribute does not contain
-            <constant>EGL_OPENGL_ES2_BIT</constant>.
-        </para>
-        <para>
-            <constant>EGL_BAD_CONTEXT</constant> is generated if
-            <parameter>share_context</parameter> is not an EGL rendering
-            context of the same client API type as the newly created
-            context and is not <constant>EGL_NO_CONTEXT</constant>.
-        </para>
-        <para>
-            <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
-            <parameter>attrib_list</parameter> contains an invalid
-            context attribute or if an attribute is not recognized or
-            out of range. Note that attribute
-            <constant>EGL_CONTEXT_CLIENT_VERSION</constant> is
-            only valid when the current rendering API is
-            <constant>EGL_OPENGL_ES_API</constant>.
-        </para>
-        <para>
-            <constant>EGL_BAD_ALLOC</constant> is generated if there are not
-            enough resources to allocate the new context.
-        </para>
-    </refsect1>
-    <refsect1 xml:id="seealso"><title>See Also</title>
-        <para>
-            <citerefentry><refentrytitle>eglDestroyContext</refentrytitle></citerefentry>,
-            <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
-            <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
-            <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
-        </para>
-    </refsect1>
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
 </refentry>
diff --git a/sdk/docs/man/eglCreateImage.xml b/sdk/docs/man/eglCreateImage.xml
new file mode 100644
index 0000000..8072ec3
--- /dev/null
+++ b/sdk/docs/man/eglCreateImage.xml
@@ -0,0 +1,624 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreateImage">
+    <info>
+         <copyright>
+             <year>2018</year>
+             <holder>The Khronos Group Inc.</holder>
+         </copyright>
+    </info>
+    <refmeta>
+        <refentrytitle>eglCreateImage</refentrytitle>
+        <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+        <refname>eglCreateImage</refname>
+        <refpurpose>
+            Create a new <type>EGLImage</type> object
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>C Specification</title>
+        <funcsynopsis>
+            <funcprototype>
+            <funcdef>EGLImage <function>eglCreateImage</function></funcdef>
+            <paramdef>(EGLDisplay <parameter>display</parameter></paramdef>
+            <paramdef>EGLContext <parameter>context</parameter></paramdef>
+            <paramdef>EGLenum <parameter>target</parameter></paramdef>
+            <paramdef>EGLClientBuffer <parameter>buffer</parameter></paramdef>
+            <paramdef>const EGLAttrib *<parameter>attrib_list</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+    </refsynopsisdiv>
+    <refsect1 xml:id="parameters"><title>Parameters</title>
+        <variablelist>
+            <varlistentry>
+                <term><parameter>display</parameter></term>
+                <listitem><para>
+                    Specifies the <acronym>EGL</acronym> display connection.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>context</parameter></term>
+                <listitem><para>
+                    Specifies the client API context for which the image is
+                    created.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>target</parameter></term>
+                <listitem><para>
+                    Specifies the type of resource used as the image source.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>buffer</parameter></term>
+                <listitem><para>
+                    Specifies the resource to be used as the image source.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>attrib_list</parameter></term>
+                <listitem><para>
+                    Specifies attributes used to select sub-sections of the
+                    resource to be used as the image source.
+                </para></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 xml:id="description"><title>Description</title>
+        <para>
+            <function>eglCreateImage</function> is used to create an
+            <type>EGLImage</type> object from an existing image resource
+            <parameter>buffer</parameter>. <parameter>display</parameter>
+            specifies the EGL display used for this operation.
+            <parameter>context</parameter> specifies the EGL client API
+            context used for this operation, or
+            <constant>EGL_NO_CONTEXT</constant> if a client API context is
+            not required. <parameter>target</parameter> specifies the type
+            of resource being used as the <type>EGLImage</type> source
+            (examples include two-dimensional textures in OpenGL ES contexts
+            and <type>VGImage</type> objects in OpenVG contexts).
+            <parameter>buffer</parameter> is the name (or handle) of a
+            resource to be used as the <type>EGLImage</type> source, cast
+            into the type <type>EGLClientBuffer</type>.
+            <parameter>attrib_list</parameter> is a list of attribute-value
+            pairs which is used to select sub-sections of
+            <parameter>buffer</parameter> for use as the
+            <type>EGLImage</type> source, such as mipmap levels for OpenGL
+            ES texture map resources, as well as behavioral options, such as
+            whether to preserve pixel data during creation. If
+            <parameter>attrib_list</parameter> is
+            non-<constant>NULL</constant>, the last attribute specified in
+            the list must be <constant>EGL_NONE</constant>.
+        </para>
+        <para>
+            The resource specified by <parameter>display</parameter>,
+            <parameter>context</parameter>, <parameter>target</parameter>,
+            <parameter>buffer</parameter>, and
+            <parameter>attrib_list</parameter> must not itself be an
+            <type>EGLImage</type> sibling, or bound to a pbuffer
+            <type>EGLSurface</type> resource
+            (<function>eglBindTexImage</function>,
+            <function>eglCreatePbufferFromClientBuffer</function>).
+        </para>
+        <para>
+            Values accepted for <parameter>target</parameter> are shown in
+            table <xref linkend="tab-imagetarget"/>.
+        </para>
+        <table frame="all" xml:id="tab-imagetarget">
+            <title>
+                Legal values for <function>eglCreateImage</function> <parameter>target</parameter>
+            </title>
+            <tgroup cols="2" align="left" colsep="1" rowsep="1">
+                <thead>
+                    <row>
+                        <entry><parameter>target</parameter></entry>
+                        <entry>Notes</entry>
+                    </row>
+                </thead>
+                <tbody>
+                    <row>
+                        <entry><constant>EGL_GL_TEXTURE_2D</constant></entry>
+                        <entry>Used for GL 2D texture images</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant></entry>
+                        <entry>Used for the +X face of GL cubemap texture images</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant></entry>
+                        <entry>Used for the -X face of GL cubemap texture images</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant></entry>
+                        <entry>Used for the +Y face of GL cubemap texture images</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant></entry>
+                        <entry>Used for the -Y face of GL cubemap texture images</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant></entry>
+                        <entry>Used for the +Z face of GL cubemap texture images</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant></entry>
+                        <entry>Used for the -Z face of GL cubemap texture images</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_GL_TEXTURE_3D</constant></entry>
+                        <entry>Used for OpenGL and OpenGL ES 3D texture images</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_GL_RENDERBUFFER</constant></entry>
+                        <entry>Used for OpenGL and OpenGL ES renderbuffer images</entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </table>
+        <para>
+            Attribute names accepted in <parameter>attrib_list</parameter>
+            are shown in table <xref linkend="tab-imageattr"/>, together
+            with the <parameter>target</parameter> for which each attribute
+            name is valid, and the default value used for each attribute if
+            it is not included in <parameter>attrib_list</parameter>.
+        </para>
+        <table frame="all" xml:id="tab-imageattr">
+            <title>
+                Legal attributes for <function>eglCreateImage</function>
+                <parameter>attrib_list</parameter> parameter
+            </title>
+            <tgroup cols="4" align="left" colsep="1" rowsep="1">
+                <thead>
+                    <row>
+                        <entry><parameter>target</parameter></entry>
+                        <entry>Notes</entry>
+                    </row>
+                </thead>
+                <tbody>
+                    <row>
+                        <entry>Attribute</entry>
+                        <entry>Description</entry>
+                        <entry>Valid <parameter>target</parameter>s</entry>
+                        <entry>Default Value</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_NONE</constant></entry>
+                        <entry>Marks the end of the attribute-value list</entry>
+                        <entry>All</entry>
+                        <entry>N/A</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_GL_TEXTURE_LEVEL</constant></entry>
+                        <entry>
+                            Specifies the mipmap level used as the
+                            <type>EGLImage</type> source. Must be part of
+                            the complete texture object
+                            <parameter>buffer</parameter>
+                        </entry>
+                        <entry>
+                            <constant>EGL_GL_TEXTURE_2D</constant>,
+                            <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>, or
+                            <constant>EGL_GL_TEXTURE_3D</constant>
+                        </entry>
+                        <entry>0</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_GL_TEXTURE_ZOFFSET</constant></entry>
+                        <entry>
+                            Specifies the depth offset of the image to use
+                            as the <type>EGLImage</type> source. Must be
+                            part of the complete texture object
+                            <parameter>buffer</parameter>
+                        </entry>
+                        <entry><constant>EGL_GL_TEXTURE_3D</constant></entry>
+                        <entry>0</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_IMAGE_PRESERVED</constant></entry>
+                        <entry>Whether to preserve pixel data</entry>
+                        <entry>All</entry>
+                        <entry><constant>EGL_FALSE</constant></entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </table>
+        <para>
+            <function>eglCreateImage</function> returns an
+            <type>EGLImage</type> object corresponding to the image data
+            specified by <parameter>display</parameter>,
+            <parameter>context</parameter>, <parameter>target</parameter>,
+            <parameter>buffer</parameter> and
+            <parameter>attrib_list</parameter> which may be referenced by
+            client API operations.
+        </para>
+        <para>
+            If <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_2D</constant>,
+            <constant>EGL_GL_TEXTURE_3D</constant>,
+            <constant>EGL_GL_RENDERBUFFER</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>,
+            <parameter>display</parameter> must be a valid
+            <type>EGLDisplay</type>, and <parameter>context</parameter> must
+            be a valid OpenGL or OpenGL ES API context on that display.
+        </para>
+        <para>
+            If <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_2D</constant>,
+            <parameter>buffer</parameter> must be the name of a nonzero,
+            <constant>GL_TEXTURE_2D</constant> target texture object, cast
+            into the type <type>EGLClientBuffer</type>.
+        </para>
+        <para>
+            If <parameter>target</parameter> is one of the
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant> enumerants,
+            <parameter>buffer</parameter> must be the name of a nonzero,
+            <constant>GL_TEXTURE_CUBE_MAP</constant> (or equivalent in GL
+            extensions) target texture object, cast into the type
+            <type>EGLClientBuffer</type>.
+        </para>
+        <para>
+            If <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_3D</constant>,
+            <parameter>buffer</parameter> must be the name of a nonzero,
+            <constant>GL_TEXTURE_3D</constant> (or equivalent in GL
+            extensions) target texture object, cast into the type
+            <type>EGLClientBuffer</type>.
+        </para>
+        <para>
+            <parameter>attrib_list</parameter> should specify the mipmap
+            level (<constant>EGL_GL_TEXTURE_LEVEL</constant>) and, where
+            applicable, z-offset
+            (<constant>EGL_GL_TEXTURE_ZOFFSET</constant>) which will be used
+            as the <type>EGLImage</type> source; If not specified, the
+            default values listed in table <xref linkend="tab-imageattr"/>
+            will be used instead. Additional values specified in are
+            ignored.
+        </para>
+        <para>
+            There must exist some levels <emphasis>x</emphasis> and
+            <emphasis>y</emphasis> such that the mipmap level requested lies
+            between <emphasis>x</emphasis> and <emphasis>y</emphasis>
+            (inclusive), the texture would be mipmap complete were
+            <emphasis>x</emphasis> substituted for the base level and
+            <emphasis>y</emphasis> substituted for the max level, and all
+            levels less than <emphasis>x</emphasis> or greater than
+            <emphasis>y</emphasis> are unspecified. For cubemaps a single
+            pair <emphasis>x</emphasis> and <emphasis>y</emphasis> must
+            apply to all faces. For three-dimensional textures, the
+            specified z-offset must be smaller than the depth of the
+            specified mipmap level.
+        </para>
+        <para>
+            If <parameter>target</parameter> is
+            <constant>EGL_GL_RENDERBUFFER</constant>,
+            <parameter>buffer</parameter> must be the name of a complete,
+            nonzero, non-multisampled <constant>GL_RENDERBUFFER</constant>
+            (or equivalent in extensions) target object, cast into the type
+            <type>EGLClientBuffer</type>. Values specified in
+            <parameter>attrib_list</parameter> are ignored.
+        </para>
+        <para>
+            If the value of attribute
+            <constant>EGL_IMAGE_PRESERVED</constant> is
+            <constant>EGL_FALSE</constant> (the default), then all pixel
+            data values associated with <parameter>buffer</parameter> will
+            be undefined after <function>eglCreateImage</function> returns.
+        </para>
+        <para>
+            If the value of attribute
+            <constant>EGL_IMAGE_PRESERVED</constant> is
+            <constant>EGL_TRUE</constant>, then all pixel data values
+            associated with <parameter>buffer</parameter> are preserved.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="errors"><title>Errors</title>
+        <para>
+            <function>eglCreateImage</function> returns
+            <constant>EGL_NO_IMAGE</constant> on failure. The contents of
+            <parameter>buffer</parameter> will be unaffected.
+        </para>
+        <para>
+            If <parameter>display</parameter> is not the handle of a valid
+            <type>EGLDisplay</type> object, the error
+            <constant>EGL_BAD_DISPLAY</constant> is generated.
+        </para>
+        <para>
+            If <parameter>context</parameter> is neither the handle of a
+            valid <type>EGLContext</type> object on
+            <parameter>display</parameter> nor
+            <constant>EGL_NO_CONTEXT</constant>, the error
+            <constant>EGL_BAD_CONTEXT</constant> is generated.
+        </para>
+        <para>
+            If <parameter>target</parameter> is not one of the values in
+            table <xref linkend="tab-imagetarget"/>, the error
+            <constant>EGL_BAD_PARAMETER</constant> is generated.
+        </para>
+        <para>
+            If <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_2D</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>,
+            <constant>EGL_GL_RENDERBUFFER</constant> or
+            <constant>EGL_GL_TEXTURE_3D</constant>, and
+            <parameter>display</parameter> is not a valid
+            <type>EGLDisplay</type>, the error
+            <constant>EGL_BAD_DISPLAY</constant> is generated.
+        </para>
+        <para>
+            If <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_2D</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>,
+            <constant>EGL_GL_RENDERBUFFER</constant> or
+            <constant>EGL_GL_TEXTURE_3D</constant>, and
+            <parameter>context</parameter> is not a valid
+            <type>EGLContext</type>, the error
+            <constant>EGL_BAD_CONTEXT</constant> is generated.
+        </para>
+        <para>
+            If <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_2D</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>,
+            <constant>EGL_GL_RENDERBUFFER</constant> or
+            <constant>EGL_GL_TEXTURE_3D</constant>, and
+            <parameter>context</parameter> is not a valid GL context, or
+            does not match the <parameter>display</parameter>, the error
+            <constant>EGL_BAD_MATCH</constant> is generated.
+        </para>
+        <para>
+            If <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_2D</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant> or
+            <constant>EGL_GL_TEXTURE_3D</constant> and
+            <parameter>buffer</parameter> is not the name of a texture
+            object of type <parameter>target</parameter>, the error
+            <constant>EGL_BAD_PARAMETER</constant> is generated.
+        </para>
+        <para>
+            If <parameter>target</parameter> is
+            <constant>EGL_GL_RENDERBUFFER</constant> and
+            <parameter>buffer</parameter> is not the name of a renderbuffer
+            object, or if <parameter>buffer</parameter> is the name of a
+            multisampled renderbuffer object, the error
+            <constant>EGL_BAD_PARAMETER</constant> is generated.
+        </para>
+        <para>
+            If <constant>EGL_GL_TEXTURE_LEVEL</constant> is nonzero,
+            <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_2D</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant> or
+            <constant>EGL_GL_TEXTURE_3D</constant>, and
+            <parameter>buffer</parameter> is not the name of a complete GL
+            texture object, the error <constant>EGL_BAD_PARAMETER</constant>
+            is generated.
+        </para>
+        <para>
+            If <constant>EGL_GL_TEXTURE_LEVEL</constant> is 0,
+            <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_2D</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant> or
+            <constant>EGL_GL_TEXTURE_3D</constant>,
+            <parameter>buffer</parameter> is the name of an incomplete GL
+            texture object, and any mipmap levels other than mipmap level 0
+            are specified, the error <constant>EGL_BAD_PARAMETER</constant>
+            is generated.
+        </para>
+        <para>
+            If <constant>EGL_GL_TEXTURE_LEVEL</constant> is 0,
+            <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_2D</constant> or
+            <constant>EGL_GL_TEXTURE_3D</constant>,
+            <parameter>buffer</parameter> is not the name of a complete GL
+            texture object, and mipmap level 0 is not specified, the error
+            <constant>EGL_BAD_PARAMETER</constant> is generated.
+        </para>
+        <para>
+            If <constant>EGL_GL_TEXTURE_LEVEL</constant> is 0,
+            <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>,
+            <parameter>buffer</parameter> is not the name of a complete GL
+            texture object, and one or more faces do not have mipmap level 0
+            specified, the error <constant>EGL_BAD_PARAMETER</constant> is
+            generated.
+        </para>
+        <para>
+            If <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_2D</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>,
+            <constant>EGL_GL_RENDERBUFFER</constant> or
+            <constant>EGL_GL_TEXTURE_3D</constant> and
+            <parameter>buffer</parameter> refers to the default GL texture
+            object (0) for the corresponding GL target, the error
+            <constant>EGL_BAD_PARAMETER</constant> is generated.
+        </para>
+        <para>
+            If <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_2D</constant>,
+            <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>, or
+            <constant>EGL_GL_TEXTURE_3D</constant>, and the value specified
+            in <parameter>attrib_list</parameter> for
+            <constant>EGL_GL_TEXTURE_LEVEL</constant> is not a valid mipmap
+            level for the specified GL texture object
+            <parameter>buffer</parameter>, the error
+            <constant>EGL_BAD_MATCH</constant> is generated.
+        </para>
+        <para>
+            If <parameter>target</parameter> is
+            <constant>EGL_GL_TEXTURE_3D</constant>, and the value specified
+            in <parameter>attrib_list</parameter> for
+            <constant>EGL_GL_TEXTURE_ZOFFSET</constant> exceeds the depth of
+            the specified mipmap level-of-detail in
+            <parameter>buffer</parameter>, the error
+            <constant>EGL_BAD_PARAMETER</constant> is generated.
+        </para>
+        <para>
+            If an attribute specified in <parameter>attrib_list</parameter>
+            is not one of the attributes shown in table <xref
+            linkend="tab-imageattr"/>, the error
+            <constant>EGL_BAD_PARAMETER</constant> is generated.
+        </para>
+        <para>
+            If an attribute specified in <parameter>attrib_list</parameter>
+            is not a valid attribute for <parameter>target</parameter>, as
+            shown in table <xref linkend="tab-imageattr"/>, the error
+            <constant>EGL_BAD_MATCH</constant> is generated.
+        </para>
+        <para>
+            If the resource specified by <parameter>display</parameter>,
+            <parameter>context</parameter>, <parameter>target</parameter>,
+            <parameter>buffer</parameter> and
+            <parameter>attrib_list</parameter> has an off-screen buffer
+            bound to it (e.g., by a previous call to
+            <function>eglBindTexImage</function>), the error
+            <constant>EGL_BAD_ACCESS</constant> is generated.
+        </para>
+        <para>
+            If the resource specified by <parameter>display</parameter>,
+            <parameter>context</parameter>, <parameter>target</parameter>,
+            <parameter>buffer</parameter> and
+            <parameter>attrib_list</parameter> is bound to an off-screen
+            buffer (e.g., by a previous call to
+            <function>eglCreatePbufferFromClientBuffer</function>), the
+            error <constant>EGL_BAD_ACCESS</constant> is generated.
+        </para>
+        <para>
+            If the resource specified by <parameter>display</parameter>,
+            <parameter>context</parameter>, <parameter>target</parameter>,
+            <parameter>buffer</parameter> and
+            <parameter>attrib_list</parameter> is itself an
+            <type>EGLImage</type> sibling, the error
+            <constant>EGL_BAD_ACCESS</constant> is generated.
+        </para>
+        <para>
+            If insufficient memory is available to complete the specified
+            operation, the error <constant>EGL_BAD_ALLOC</constant> is
+            generated.
+        </para>
+        <para>
+            If the value specified in <parameter>attrib_list</parameter> for
+            <constant>EGL_IMAGE_PRESERVED</constant> is
+            <constant>EGL_TRUE</constant>, and an <type>EGLImage</type>
+            handle cannot be created from the specified resource such that
+            the pixel data values in <parameter>buffer</parameter> are
+            preserved, the error <constant>EGL_BAD_ACCESS</constant> is
+            generated.
+        </para>
+        <para>
+            Note that the success or failure of
+            <function>eglCreateImage</function> should not affect the
+            ability to use <parameter>buffer</parameter> in its original API
+            context (or context share group) (although the pixel data values
+            will be undefined if the command succeeds and the value of
+            <constant>EGL_IMAGE_PRESERVED</constant> is not
+            <constant>EGL_TRUE</constant>).
+        </para>
+    </refsect1>
+    <refsect1 xml:id="lifetime"><title>Lifetime and Usage of <type>EGLImage</type>s</title>
+        <para>
+            Once an <type>EGLImage</type> is created from an
+            <type>EGLImage</type> source, the memory associated with the
+            <type>EGLImage</type> source will remain allocated (and all
+            <type>EGLImage</type> siblings in all client API contexts will
+            be useable) as long as either of the following conditions is
+            true:
+        </para>
+        <para>
+            <itemizedlist>
+            <listitem>
+                <para>
+                     Any <type>EGLImage</type> siblings exist in any client
+                     API context
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    The <type>EGLImage</type> object exists inside EGL
+                </para>
+            </listitem>
+            </itemizedlist>
+        </para>
+        <para>
+            The semantics for specifying, deleting and using
+            <type>EGLImage</type> siblings are client API-specific, and are
+            described in the appropriate API specifications.
+        </para>
+        <para>
+            If an application specifies an <type>EGLImage</type> sibling as
+            the destination for rendering and/or pixel download operations
+            (e.g., as an OpenGL or OpenGL ES framebuffer object,
+            <function>glTexSubImage2D</function>, etc.), the modified image
+            results will be observed by all <type>EGLImage</type> siblings
+            in all client API contexts. If multiple client API contexts
+            access <type>EGLImage</type> sibling resources simultaneously,
+            with one or more context modifying the image data, rendering
+            results in all contexts accessing <type>EGLImage</type> siblings
+            are undefined.
+        </para>
+        <para>
+            Respecification and/or deletion of any <type>EGLImage</type>
+            sibling (i.e., both <type>EGLImage</type> source and
+            <type>EGLImage</type> target resources) inside a client API
+            context (by issuing a subsequent call to commands such as
+            <function>glTexImage*</function> or
+            <function>glDeleteTextures</function>, with the
+            <type>EGLImage</type> sibling resource as the target of the
+            operation) affects only that client API context and other
+            contexts within its share group. For an OpenGL or OpenGL ES
+            context, respecification always results in
+            <firstterm>orphaning</firstterm> of the <type>EGLImage</type>,
+            and may also include allocation of additional memory for the
+            respecified resource and/or copying of the <type>EGLImage</type>
+            pixel data.
+        </para>
+        <para>
+            Note: Behavior of other types of client APIs generally follows
+            the OpenGL and OpenGL ES behavior described here, although this
+            is not mandated yet.
+        </para>
+        <para>
+            Operations inside EGL or any client API context which may affect
+            the lifetime of an <type>EGLImage</type> (or the memory
+            allocated for the <type>EGLImage</type>), such as respecifying
+            and/or deleting an <type>EGLImage</type> sibling inside a client
+            API context, must be atomic.
+        </para>
+        <para>
+            Applications may create client API resources from an
+            <type>EGLImage</type> using client API extensions outside the
+            scope of this document (such as
+            <constant>GL_OES_EGL_image</constant>, which creates OpenGL ES
+            texture and renderbuffer objects). If the <type>EGLImage</type>
+            used to create the client resource was created with the
+            <constant>EGL_IMAGE_PRESERVED</constant> attribute set to
+            <constant>EGL_TRUE</constant>, then the pixel data values
+            associated with the image will be preserved after creating the
+            client resource; otherwise, the pixel data values will be
+            undefined. If the <type>EGLImage</type> was created with the
+            <constant>EGL_IMAGE_PRESERVED</constant> attribute set to
+            <constant>EGL_TRUE</constant>, and EGL is unable to create the
+            client resource without modifying the pixel values, then
+            creation will fail and the pixel data values will be preserved.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="notes"><title>Notes</title>
+        <para>
+            <function>eglCreateImage</function> is available only if the EGL
+            version is 1.5 or greater.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="seealso"><title>See Also</title>
+        <para>
+            <citerefentry><refentrytitle>eglBindTexImage</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglCreatePbufferFromClientBuffer</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglDestroyImage</refentrytitle></citerefentry>,
+            <function>glDeleteTextures</function>,
+            <function>glTexImage*</function>,
+            <function>glTexSubImage2D</function>
+        </para>
+    </refsect1>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/sdk/docs/man/eglCreatePbufferFromClientBuffer.xml b/sdk/docs/man/eglCreatePbufferFromClientBuffer.xml
index 3cdda30..5c60017 100644
--- a/sdk/docs/man/eglCreatePbufferFromClientBuffer.xml
+++ b/sdk/docs/man/eglCreatePbufferFromClientBuffer.xml
@@ -298,6 +298,11 @@
             section above.
         </para>
         <para>
+            <constant>EGL_BAD_ACCESS</constant> is generated if the buffers
+            contained in <parameter>buffer</parameter> consist of any
+            <type>EGLImage</type> siblings.
+        </para>
+        <para>
             <constant>EGL_BAD_ALLOC</constant> is generated if there are not
             enough resources to allocate the new surface.
         </para>
@@ -322,8 +327,9 @@
         </para>
         <para>
             <constant>EGL_BAD_MATCH</constant> is generated if
-            <parameter>config</parameter> does not support rendering to pixel buffers
-            (the <constant>EGL_SURFACE_TYPE</constant> attribute does not contain
+            <parameter>config</parameter> does not support rendering to
+            pixel buffers (the <constant>EGL_SURFACE_TYPE</constant>
+            attribute does not contain
             <constant>EGL_PBUFFER_BIT</constant>).
         </para>
         <para>
diff --git a/sdk/docs/man/eglCreatePbufferSurface.xml b/sdk/docs/man/eglCreatePbufferSurface.xml
index 893c92b..e4f183d 100755
--- a/sdk/docs/man/eglCreatePbufferSurface.xml
+++ b/sdk/docs/man/eglCreatePbufferSurface.xml
@@ -65,6 +65,34 @@
         </para>
         <variablelist>
             <varlistentry>
+                <term><constant>EGL_GL_COLORSPACE</constant></term>
+                <listitem>
+                <para>
+                    Specifies the color space used by OpenGL and OpenGL ES
+                    when rendering to the surface. If its value is
+                    <constant>EGL_GL_COLORSPACE_SRGB</constant>, then a
+                    non-linear, perceptually uniform color space is assumed,
+                    with a corresponding
+                    <constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
+                    value of <constant>GL_SRGB</constant>. If its value is
+                    <constant>EGL_GL_COLORSPACE_LINEAR</constant>, then a
+                    linear color space is assumed, with a corresponding
+                    <constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
+                    value of <constant>GL_LINEAR</constant>. The default
+                    value of <constant>EGL_GL_COLORSPACE</constant> is
+                    <constant>EGL_GL_COLORSPACE_SRGB</constant>.
+                </para>
+                <para>
+                    Note that the <constant>EGL_GL_COLORSPACE</constant>
+                    attribute is used only by OpenGL and OpenGL ES contexts
+                    supporting sRGB framebuffers. EGL itself does not
+                    distinguish multiple colorspace models. Refer to the
+                    ``sRGB Conversion'' sections of the OpenGL 4.6 and
+                    OpenGL ES 3.2 Specifications for more information.
+                </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
                 <term><constant>EGL_HEIGHT</constant></term>
                 <listitem>
                 <para>
@@ -194,6 +222,12 @@
     </refsect1>
     <refsect1 xml:id="notes"><title>Notes</title>
         <para>
+            Attribute <constant>EGL_GL_COLORSPACE</constant>, and the
+            <constant>EGL_OPENGL_ES3_BIT</constant> bit value for attribute
+            <constant>EGL_RENDERABLE_TYPE</constant>, are supported only if
+            the EGL version is 1.5 or greater.
+        </para>
+        <para>
             Attributes
             <constant>EGL_RENDERABLE_TYPE</constant>,
             <constant>EGL_VG_ALPHA_FORMAT</constant>, and
@@ -261,8 +295,9 @@
             rendering (e.g. the EGL version is 1.2 or later, and the
             <constant>EGL_RENDERABLE_TYPE</constant> attribute of
             <parameter>config</parameter> does not include at least one
-            of <constant>EGL_OPENGL_ES_BIT</constant> or
-            <constant>EGL_OPENGL_ES2_BIT</constant>).
+            of <constant>EGL_OPENGL_ES_BIT</constant>,
+            <constant>EGL_OPENGL_ES2_BIT</constant>), or
+            <constant>EGL_OPENGL_ES3_BIT</constant>),
         </para>
         <para>
             <constant>EGL_BAD_ALLOC</constant> is generated if there are not
diff --git a/sdk/docs/man/eglCreatePixmapSurface.xml b/sdk/docs/man/eglCreatePixmapSurface.xml
index a92f379..1e2f9c4 100755
--- a/sdk/docs/man/eglCreatePixmapSurface.xml
+++ b/sdk/docs/man/eglCreatePixmapSurface.xml
@@ -1,7 +1,7 @@
 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreatePixmapSurface">
     <info>
          <copyright>
-             <year>2003-2014</year>
+             <year>2003-2018</year>
              <holder>The Khronos Group Inc.</holder>
          </copyright>
     </info>
@@ -12,7 +12,7 @@
     <refnamediv>
         <refname>eglCreatePixmapSurface</refname>
         <refpurpose>
-            create a new <acronym>EGL</acronym> pixmap surface
+            create a new <acronym>EGL</acronym> offscreen surface
         </refpurpose>
     </refnamediv>
     <refsynopsisdiv>
@@ -56,157 +56,26 @@
     </refsect1>
     <refsect1 xml:id="description"><title>Description</title>
         <para>
-            <function>eglCreatePixmapSurface</function> creates an
-            off-screen <acronym>EGL</acronym> pixmap surface and returns
-            its handle. If <function>eglCreatePixmapSurface</function>
-            fails to create a pixmap surface,
-            <constant>EGL_NO_SURFACE</constant> is returned.
-        </para>
-        <para>
-            Surface attributes are specified as a list of
-            attribute-value pairs, terminated with
-            <constant>EGL_NONE</constant>. Accepted attributes
-            are:
-        </para>
-        <variablelist>
-            <varlistentry>
-                <term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
-                <listitem>
-                <para>
-                    Specifies how alpha values are interpreted by OpenVG
-                    when rendering to the surface. If its value is
-                    <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>,
-                    then alpha values are not premultipled. If its value
-                    is <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>,
-                    then alpha values are premultiplied. The default
-                    value of <constant>EGL_VG_ALPHA_FORMAT</constant> is
-                    <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>.
-                </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term><constant>EGL_VG_COLORSPACE</constant></term>
-                <listitem>
-                <para>
-                    Specifies the color space used by OpenVG when
-                    rendering to the surface. If its value is
-                    <constant>EGL_VG_COLORSPACE_sRGB</constant>, then a
-                    non-linear, perceptually uniform color space is
-                    assumed, with a corresponding
-                    <type>VGImageFormat</type> of form
-                    <constant>VG_s*</constant>. If its value is
-                    <constant>EGL_VG_COLORSPACE_LINEAR</constant>, then
-                    a linear color space is assumed, with a
-                    corresponding <type>VGImageFormat</type> of form
-                    <constant>VG_l*</constant>. The default value of
-                    <constant>EGL_VG_COLORSPACE</constant> is
-                    <constant>EGL_VG_COLORSPACE_sRGB</constant>.
-                </para>
-                </listitem>
-            </varlistentry>
-        </variablelist>
-        <para>
-            Any EGL rendering context that was created with respect to
-            <parameter>config</parameter> can be used to render into the
-            surface. Use
-            <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
-            to attach an EGL rendering context to the surface.
-        </para>
-        <para>
-            Use
-            <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
-            to retrieve the ID of <parameter>config</parameter>.
-        </para>
-        <para>
-            Use <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
-            to destroy the surface.
-        </para>
-    </refsect1>
-    <refsect1 xml:id="notes"><title>Notes</title>
-        <para>
-            The <constant>EGL_MATCH_NATIVE_PIXMAP</constant> attribute
+            <function>eglCreatePixmapSurface</function> creates an on-screen
+            EGL window surface and returns a handle to it. The behavior of
+            <function>eglCreatePixmapSurface</function> is identical to that
             of
-            <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>
-            can be used to select a frame buffer configuration matching
-            a specified native pixmap.
-        </para>
-        <para>
-            Attributes
-            <constant>EGL_VG_ALPHA_FORMAT</constant> and
-            <constant>EGL_VG_COLORSPACE</constant>, and the
-            corresponding attribute values, are supported only if the
-            EGL version is 1.2 or greater.
-        </para>
-        <!-- Might want to mention aliasing of EGL_VG_* -> EGL_* that occurred in EGL 1.3 -->
-        <para>
-            The <constant>EGL_VG_ALPHA_FORMAT</constant> and
-            <constant>EGL_VG_COLORSPACE</constant> attributes are used
-            only by OpenVG. EGL itself, and other client APIs such as
-            OpenGL and OpenGL ES , do not distinguish multiple
-            colorspace models. Refer to section 11.2 of the OpenVG 1.0
-            specification for more information. The native window
-            system's use and interpretation of alpha values is outside
-            the scope of EGL, although the preferred behavior is for the
-            window system to ignore the value of
-            <constant>EGL_VG_ALPHA_FORMAT</constant>.
+            <citerefentry><refentrytitle>eglCreatePlatformPixmapSurface</refentrytitle></citerefentry>
+            except that the set of platforms to which
+            <parameter>display</parameter> is permitted to belong, as well
+            as the actual type of <parameter>native_pixmap</parameter>, are
+            implementation specific.
         </para>
     </refsect1>
     <refsect1 xml:id="errors"><title>Errors</title>
         <para>
-            <constant>EGL_NO_SURFACE</constant> is returned if creation of
-            the context fails.
-        </para>
-        <para>
-            <constant>EGL_BAD_DISPLAY</constant> is generated if
-            <parameter>display</parameter> is not an EGL display connection.
-        </para>
-        <para>
-            <constant>EGL_NOT_INITIALIZED</constant> is generated if
-            <parameter>display</parameter> has not been initialized.
-        </para>
-        <para>
-            <constant>EGL_BAD_CONFIG</constant> is generated if
-            <parameter>config</parameter> is not an EGL config.
-        </para>
-        <para>
-            <constant>EGL_BAD_NATIVE_PIXMAP</constant> may be generated if
-            <parameter>native_pixmap</parameter> is not a valid native pixmap.
-        </para>
-        <para>
-            <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
-            <parameter>attrib_list</parameter> contains an invalid pixmap attribute
-            or if an attribute value is not recognized or out of range.
-        </para>
-        <para>
-            <constant>EGL_BAD_ALLOC</constant> is generated if there are not
-            enough resources to allocate the new surface.
-        </para>
-        <para>
-            <constant>EGL_BAD_MATCH</constant> is generated if the attributes of
-            <parameter>native_pixmap</parameter> do not correspond to
-            <parameter>config</parameter> or if
-            <parameter>config</parameter> does not support rendering to pixmaps
-            (the <constant>EGL_SURFACE_TYPE</constant> attribute does not contain
-            <constant>EGL_PIXMAP_BIT</constant>).
-        </para>
-        <para>
-            <constant>EGL_BAD_MATCH</constant> is generated if
-            <parameter>config</parameter> does not support the specified
-            OpenVG alpha format attribute (the value of
-            <constant>EGL_VG_ALPHA_FORMAT</constant> is
-            <constant>EGL_VG_ALPHA_FORMAT_PRE</constant> and the
-            <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> is not set
-            in the <constant>EGL_SURFACE_TYPE</constant> attribute of
-            <parameter>config</parameter>) or colorspace attribute (the
-            value of <constant>EGL_VG_COLORSPACE</constant> is
-            <constant>EGL_VG_COLORSPACE_LINEAR</constant> and the
-            <constant>EGL_VG_COLORSPACE_LINEAR_IT</constant> is not set
-            in the <constant>EGL_SURFACE_TYPE</constant> attribute of
-            <parameter>config</parameter>).
+            See errors for
+            <citerefentry><refentrytitle>eglCreatePlatformPixmapSurface</refentrytitle></citerefentry>.
         </para>
     </refsect1>
     <refsect1 xml:id="seealso"><title>See Also</title>
         <para>
+            <citerefentry><refentrytitle>eglCreatePlatformPixmapSurface</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
diff --git a/sdk/docs/man/eglCreatePlatformPixmapSurface.xml b/sdk/docs/man/eglCreatePlatformPixmapSurface.xml
new file mode 100644
index 0000000..66de1c7
--- /dev/null
+++ b/sdk/docs/man/eglCreatePlatformPixmapSurface.xml
@@ -0,0 +1,270 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreatePlatformPixmapSurface">
+    <info>
+         <copyright>
+             <year>2003-2018</year>
+             <holder>The Khronos Group Inc.</holder>
+         </copyright>
+    </info>
+    <refmeta>
+        <refentrytitle>eglCreatePlatformPixmapSurface</refentrytitle>
+        <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+        <refname>eglCreatePlatformPixmapSurface</refname>
+        <refpurpose>
+            create a new <acronym>EGL</acronym> offscreen surface
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>C Specification</title>
+        <funcsynopsis>
+            <funcprototype>
+                <funcdef>EGLSurface <function>eglCreatePlatformPixmapSurface</function></funcdef>
+                <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+                <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+                <paramdef>void * <parameter>native_pixmap</parameter></paramdef>
+                <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+    </refsynopsisdiv>
+    <refsect1 xml:id="parameters"><title>Parameters</title>
+        <variablelist>
+            <varlistentry>
+                <term><parameter>display</parameter></term>
+                <listitem><para>Specifies the EGL display connection.</para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>config</parameter></term>
+                <listitem><para>
+                    Specifies the EGL frame buffer configuration that defines the
+                    frame buffer resource available to the surface.</para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>native_pixmap</parameter></term>
+                <listitem><para>Specifies the native pixmap.</para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>attrib_list</parameter></term>
+                <listitem><para>
+                    Specifies pixmap surface attributes.
+                    May be <constant>NULL</constant> or empty
+                    (first attribute is <constant>EGL_NONE</constant>).
+                </para></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 xml:id="description"><title>Description</title>
+        <para>
+            <function>eglCreatePlatformPixmapSurface</function> creates an
+            off-screen <acronym>EGL</acronym> pixmap surface and returns
+            a handle to it.
+        </para>
+        <para>
+            If <function>eglCreatePlatformPixmapSurface</function> fails to
+            create a pixmap surface, <constant>EGL_NO_SURFACE</constant> is
+            returned.
+        </para>
+        <para>
+            <parameter>native_pixmap</parameter> must belong to the same
+            platform as <parameter>display</parameter>, and EGL considers
+            the returned <type>EGLSurface</type> as belonging to that same
+            platform. The EGL extension that defines the platform to which
+            <parameter>display</parameter> belongs also defines the
+            requirements for the <parameter>native_pixmap</parameter>
+            parameter.
+        </para>
+        <para>
+            Surface attributes are specified as a list of
+            attribute-value pairs, terminated with
+            <constant>EGL_NONE</constant>. Accepted attributes
+            are:
+        </para>
+        <variablelist>
+            <varlistentry>
+                <term><constant>EGL_GL_COLORSPACE</constant></term>
+                <listitem>
+                <para>
+                    Specifies the color space used by OpenGL and OpenGL ES
+                    when rendering to the surface. If its value is
+                    <constant>EGL_GL_COLORSPACE_SRGB</constant>, then a
+                    non-linear, perceptually uniform color space is assumed,
+                    with a corresponding
+                    <constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
+                    value of <constant>GL_SRGB</constant>. If its value is
+                    <constant>EGL_GL_COLORSPACE_LINEAR</constant>, then a
+                    linear color space is assumed, with a corresponding
+                    <constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
+                    value of <constant>GL_LINEAR</constant>. The default
+                    value of <constant>EGL_GL_COLORSPACE</constant> is
+                    <constant>EGL_GL_COLORSPACE_SRGB</constant>.
+                </para>
+                <para>
+                    Note that the <constant>EGL_GL_COLORSPACE</constant>
+                    attribute is used only by OpenGL and OpenGL ES contexts
+                    supporting sRGB framebuffers. EGL itself does not
+                    distinguish multiple colorspace models. Refer to the
+                    ``sRGB Conversion'' sections of the OpenGL 4.6 and
+                    OpenGL ES 3.2 Specifications for more information.
+                </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
+                <listitem>
+                <para>
+                    Specifies how alpha values are interpreted by OpenVG
+                    when rendering to the surface. If its value is
+                    <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>,
+                    then alpha values are not premultipled. If its value
+                    is <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>,
+                    then alpha values are premultiplied. The default
+                    value of <constant>EGL_VG_ALPHA_FORMAT</constant> is
+                    <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>.
+                </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_VG_COLORSPACE</constant></term>
+                <listitem>
+                <para>
+                    Specifies the color space used by OpenVG when
+                    rendering to the surface. If its value is
+                    <constant>EGL_VG_COLORSPACE_sRGB</constant>, then a
+                    non-linear, perceptually uniform color space is
+                    assumed, with a corresponding
+                    <type>VGImageFormat</type> of form
+                    <constant>VG_s*</constant>. If its value is
+                    <constant>EGL_VG_COLORSPACE_LINEAR</constant>, then
+                    a linear color space is assumed, with a
+                    corresponding <type>VGImageFormat</type> of form
+                    <constant>VG_l*</constant>. The default value of
+                    <constant>EGL_VG_COLORSPACE</constant> is
+                    <constant>EGL_VG_COLORSPACE_sRGB</constant>.
+                </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+        <para>
+            Any EGL rendering context that was created with respect to
+            <parameter>config</parameter> can be used to render into the
+            surface. Use
+            <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+            to attach an EGL rendering context to the surface.
+        </para>
+        <para>
+            Use
+            <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+            to retrieve the ID of <parameter>config</parameter>.
+        </para>
+        <para>
+            Use <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+            to destroy the surface.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="notes"><title>Notes</title>
+        <para>
+            The <constant>EGL_MATCH_NATIVE_PIXMAP</constant> attribute
+            of
+            <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>
+            can be used to select a frame buffer configuration matching
+            a specified native pixmap.
+        </para>
+        <para>
+            Attribute <constant>EGL_GL_COLORSPACE</constant> is supported
+            only if the EGL version is 1.5 or greater.
+        </para>
+        <para>
+            Attributes
+            <constant>EGL_VG_ALPHA_FORMAT</constant> and
+            <constant>EGL_VG_COLORSPACE</constant>, and the
+            corresponding attribute values, are supported only if the
+            EGL version is 1.2 or greater.
+        </para>
+        <!-- Might want to mention aliasing of EGL_VG_* -> EGL_* that occurred in EGL 1.3 -->
+        <para>
+            The <constant>EGL_VG_ALPHA_FORMAT</constant> and
+            <constant>EGL_VG_COLORSPACE</constant> attributes are used only
+            by OpenVG and EGL itself. Refer to section 11.2 of the OpenVG
+            1.0 specification for more information. The platform's use and
+            interpretation of alpha values is outside the scope of EGL.
+            However, the preferred behavior is for the window system to
+            ignore the value of <constant>EGL_VG_ALPHA_FORMAT</constant>.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="errors"><title>Errors</title>
+        <para>
+            If <parameter>display</parameter> and
+            <parameter>native_pixmap</parameter> do not belong to the same
+            platform, then undefined behavior occurs.
+        </para>
+        <para>
+            <constant>EGL_NO_SURFACE</constant> is returned if creation of
+            the surface fails.
+        </para>
+        <para>
+            <constant>EGL_BAD_DISPLAY</constant> is generated if
+            <parameter>display</parameter> is not an EGL display connection.
+        </para>
+        <para>
+            <constant>EGL_NOT_INITIALIZED</constant> is generated if
+            <parameter>display</parameter> has not been initialized.
+        </para>
+        <para>
+            <constant>EGL_BAD_CONFIG</constant> is generated if
+            <parameter>config</parameter> is not an EGL config.
+        </para>
+        <para>
+            <constant>EGL_BAD_NATIVE_PIXMAP</constant> may be generated if
+            <parameter>native_pixmap</parameter> is not a valid native pixmap.
+        </para>
+        <para>
+            <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+            <parameter>attrib_list</parameter> contains an invalid pixmap attribute
+            or if an attribute value is not recognized or out of range.
+        </para>
+        <para>
+            <constant>EGL_BAD_ALLOC</constant> is generated if there is
+            already an <type>EGLSurface</type> associated with
+            <parameter>native_pixmap</parameter> (as a result of a previous
+            <function>eglCreatePlatformPixmapSurface</function> call).
+        </para>
+        <para>
+            <constant>EGL_BAD_ALLOC</constant> is generated if the
+            implementation cannot allocate resources for the new EGL window.
+        </para>
+        <para>
+            <constant>EGL_BAD_MATCH</constant> is generated if the attributes of
+            <parameter>native_pixmap</parameter> do not correspond to
+            <parameter>config</parameter> or if
+            <parameter>config</parameter> does not support rendering to pixmaps
+            (the <constant>EGL_SURFACE_TYPE</constant> attribute does not contain
+            <constant>EGL_PIXMAP_BIT</constant>).
+        </para>
+        <para>
+            <constant>EGL_BAD_MATCH</constant> is generated if
+            <parameter>config</parameter> does not support the specified
+            OpenVG alpha format attribute (the value of
+            <constant>EGL_VG_ALPHA_FORMAT</constant> is
+            <constant>EGL_VG_ALPHA_FORMAT_PRE</constant> and the
+            <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> is not set
+            in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+            <parameter>config</parameter>) or colorspace attribute (the
+            value of <constant>EGL_VG_COLORSPACE</constant> is
+            <constant>EGL_VG_COLORSPACE_LINEAR</constant> and the
+            <constant>EGL_VG_COLORSPACE_LINEAR_IT</constant> is not set
+            in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+            <parameter>config</parameter>).
+        </para>
+    </refsect1>
+    <refsect1 xml:id="seealso"><title>See Also</title>
+        <para>
+            <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+        </para>
+    </refsect1>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/sdk/docs/man/eglCreatePlatformWindowSurface.xml b/sdk/docs/man/eglCreatePlatformWindowSurface.xml
new file mode 100644
index 0000000..7f9794f
--- /dev/null
+++ b/sdk/docs/man/eglCreatePlatformWindowSurface.xml
@@ -0,0 +1,296 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreatePlatformWindowSurface">
+    <info>
+         <copyright>
+             <year>2003-2018</year>
+             <holder>The Khronos Group Inc.</holder>
+         </copyright>
+    </info>
+    <refmeta>
+        <refentrytitle>eglCreatePlatformWindowSurface</refentrytitle>
+        <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+        <refname>eglCreatePlatformWindowSurface</refname>
+        <refpurpose>
+            create a new <acronym>EGL</acronym> on-screen rendering surface
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>C Specification</title>
+        <funcsynopsis>
+            <funcprototype>
+                <funcdef>EGLSurface <function>eglCreatePlatformWindowSurface</function></funcdef>
+                <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+                <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+                <paramdef>void * <parameter>native_window</parameter></paramdef>
+                <paramdef>EGLAttrib const * <parameter>attrib_list</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+    </refsynopsisdiv>
+    <refsect1 xml:id="parameters"><title>Parameters</title>
+        <variablelist>
+            <varlistentry>
+                <term><parameter>display</parameter></term>
+                <listitem><para>Specifies the EGL display connection.</para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>config</parameter></term>
+                <listitem>
+                    <para>Specifies the EGL frame buffer configuration that defines the
+                    frame buffer resource available to the surface.</para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>native_window</parameter></term>
+                <listitem><para>Specifies the native window.</para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>attrib_list</parameter></term>
+                <listitem><para>
+                    Specifies a list of attributes for the window surface.
+                    May be <constant>NULL</constant> or empty
+                    (first attribute is <constant>EGL_NONE</constant>).
+                </para></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 xml:id="description"><title>Description</title>
+        <para>
+            <function>eglCreatePlatformWindowSurface</function> creates an
+            on-screen EGL window surface and returns a handle to it. Any EGL
+            context created with a compatible <type>EGLConfig</type> can be
+            used to render into this surface.
+        </para>
+        <para>
+            If <function>eglCreatePlatformWindowSurface</function> fails to
+            create a window surface, <constant>EGL_NO_SURFACE</constant> is
+            returned.
+        </para>
+        <para>
+            <parameter>native_window</parameter> must belong to the same
+            platform as <parameter>display</parameter>, and EGL considers
+            the returned <type>EGLSurface</type> as belonging to that same
+            platform. The EGL extension that defines the platform to which
+            <parameter>display</parameter> belongs also defines the
+            requirements for the <parameter>native_window</parameter>
+            parameter.
+        </para>
+        <para>
+            Surface attributes are specified as a list of
+            attribute-value pairs, terminated with
+            <constant>EGL_NONE</constant>. Accepted attributes
+            are:
+        </para>
+        <variablelist>
+            <varlistentry>
+                <term><constant>EGL_GL_COLORSPACE</constant></term>
+                <listitem>
+                <para>
+                    Specifies the color space used by OpenGL and OpenGL ES
+                    when rendering to the surface. If its value is
+                    <constant>EGL_GL_COLORSPACE_SRGB</constant>, then a
+                    non-linear, perceptually uniform color space is assumed,
+                    with a corresponding
+                    <constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
+                    value of <constant>GL_SRGB</constant>. If its value is
+                    <constant>EGL_GL_COLORSPACE_LINEAR</constant>, then a
+                    linear color space is assumed, with a corresponding
+                    <constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
+                    value of <constant>GL_LINEAR</constant>. The default
+                    value of <constant>EGL_GL_COLORSPACE</constant> is
+                    <constant>EGL_GL_COLORSPACE_SRGB</constant>.
+                </para>
+                <para>
+                    Note that the <constant>EGL_GL_COLORSPACE</constant>
+                    attribute is used only by OpenGL and OpenGL ES contexts
+                    supporting sRGB framebuffers. EGL itself does not
+                    distinguish multiple colorspace models. Refer to the
+                    ``sRGB Conversion'' sections of the OpenGL 4.6 and
+                    OpenGL ES 3.2 Specifications for more information.
+                </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_RENDER_BUFFER</constant></term>
+                <listitem>
+                <para>
+                    Specifies which buffer should be used for client API
+                    rendering to the window. If its value is
+                    <constant>EGL_SINGLE_BUFFER</constant>, then client
+                    APIs should render directly into the visible window.
+                    If its value is
+                    <constant>EGL_BACK_BUFFER</constant>, then client
+                    APIs should render into the back buffer. The default
+                    value of <constant>EGL_RENDER_BUFFER</constant> is
+                    <constant>EGL_BACK_BUFFER</constant>.
+                </para>
+                <para>
+                    Client APIs may not be able to respect the requested
+                    rendering buffer. To determine the actual buffer
+                    being rendered to by a context, call
+                    <citerefentry><refentrytitle>eglQueryContext</refentrytitle></citerefentry>.
+                </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
+                <listitem>
+                <para>
+                    Specifies how alpha values are interpreted by OpenVG
+                    when rendering to the surface. If its value is
+                    <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>,
+                    then alpha values are not premultipled. If its value
+                    is <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>,
+                    then alpha values are premultiplied. The default
+                    value of <constant>EGL_VG_ALPHA_FORMAT</constant> is
+                    <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>.
+                </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_VG_COLORSPACE</constant></term>
+                <listitem>
+                <para>
+                    Specifies the color space used by OpenVG when
+                    rendering to the surface. If its value is
+                    <constant>EGL_VG_COLORSPACE_sRGB</constant>, then a
+                    non-linear, perceptually uniform color space is
+                    assumed, with a corresponding
+                    <type>VGImageFormat</type> of form
+                    <constant>VG_s*</constant>. If its value is
+                    <constant>EGL_VG_COLORSPACE_LINEAR</constant>, then
+                    a linear color space is assumed, with a
+                    corresponding <type>VGImageFormat</type> of form
+                    <constant>VG_l*</constant>. The default value of
+                    <constant>EGL_VG_COLORSPACE</constant> is
+                    <constant>EGL_VG_COLORSPACE_sRGB</constant>.
+                </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+        <para>
+            Any EGL rendering context that was created with respect to
+            <parameter>config</parameter> can be used to render into the
+            surface. Use
+            <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+            to attach an EGL rendering context to the surface.
+        </para>
+        <para>
+            Use
+            <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+            to retrieve the ID of <parameter>config</parameter>.
+        </para>
+        <para>
+            Use
+            <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+            to destroy the surface.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="notes"><title>Notes</title>
+        <para>
+            Attribute <constant>EGL_GL_COLORSPACE</constant> is supported
+            only if the EGL version is 1.5 or greater.
+        </para>
+        <para>
+            Attributes <constant>EGL_RENDER_BUFFER</constant>,
+            <constant>EGL_VG_ALPHA_FORMAT</constant>, and
+            <constant>EGL_VG_COLORSPACE</constant>, and the
+            corresponding attribute values, are supported only if the
+            EGL version is 1.2 or greater.
+        </para>
+        <!-- Might want to mention aliasing of EGL_VG_* -> EGL_* that occurred in EGL 1.3 -->
+        <para>
+            The <constant>EGL_VG_ALPHA_FORMAT</constant> and
+            <constant>EGL_VG_COLORSPACE</constant> attributes are used only
+            by OpenVG and EGL itself. Refer to section 11.2 of the OpenVG
+            1.0 specification for more information. The platform's use and
+            interpretation of alpha values is outside the scope of EGL.
+            However, the preferred behavior is for platforms to ignore the
+            value of <constant>EGL_VG_ALPHA_FORMAT</constant> when
+            compositing window surfaces.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="errors"><title>Errors</title>
+        <para>
+            If <parameter>display</parameter> and
+            <parameter>native_window</parameter> do not belong to the same
+            platform, then undefined behavior occurs.
+        </para>
+        <para>
+            <constant>EGL_NO_SURFACE</constant> is returned if creation of
+            the surface fails.
+        </para>
+        <para>
+            <constant>EGL_BAD_DISPLAY</constant> is generated if
+            <parameter>display</parameter> is not an EGL display connection.
+        </para>
+        <para>
+            <constant>EGL_NOT_INITIALIZED</constant> is generated if
+            <parameter>display</parameter> has not been initialized.
+        </para>
+        <para>
+            <constant>EGL_BAD_CONFIG</constant> is generated if
+            <parameter>config</parameter> is not a valid EGL frame buffer
+            configuration.
+        </para>
+        <para>
+            <constant>EGL_BAD_NATIVE_WINDOW</constant> may be generated if
+            <parameter>native_window</parameter> is not a valid native
+            window for the same platform as <parameter>display</parameter>.
+        </para>
+        <para>
+            <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+            <parameter>attrib_list</parameter> contains an invalid window attribute
+            or if an attribute value is not recognized or is out of range.
+        </para>
+        <para>
+            <constant>EGL_BAD_ALLOC</constant> is generated if there is
+            already an <type>EGLSurface</type> associated with
+            <parameter>native_window</parameter> (as a result of a previous
+            <function>eglCreatePlatformWindowSurface</function> call).
+        </para>
+        <para>
+            <constant>EGL_BAD_ALLOC</constant> is generated if the
+            implementation cannot allocate resources for the new EGL window.
+        </para>
+        <para>
+            <constant>EGL_BAD_MATCH</constant> is generated if the pixel
+            format of <parameter>native_window</parameter> does not
+            correspond to the format, type, and size of the color buffers
+            required by <parameter>config</parameter>.
+            <constant>EGL_BAD_MATCH</constant> is generated if the pixel
+        </para>
+        <para>
+            <constant>EGL_BAD_MATCH</constant> is generated if
+            <parameter>config</parameter> does not support rendering to
+            windows (the <constant>EGL_SURFACE_TYPE</constant> attribute
+            does not contain <constant>EGL_WINDOW_BIT</constant>).
+        </para>
+        <para>
+            <constant>EGL_BAD_MATCH</constant> is generated if
+            <parameter>config</parameter> does not support the specified
+            OpenVG alpha format attribute (the value of
+            <constant>EGL_VG_ALPHA_FORMAT</constant> is
+            <constant>EGL_VG_ALPHA_FORMAT_PRE</constant> and the
+            <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> is not set
+            in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+            <parameter>config</parameter>) or colorspace attribute (the
+            value of <constant>EGL_VG_COLORSPACE</constant> is
+            <constant>EGL_VG_COLORSPACE_LINEAR</constant> and the
+            <constant>EGL_VG_COLORSPACE_LINEAR_IT</constant> is not set
+            in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+            <parameter>config</parameter>).
+        </para>
+    </refsect1>
+    <refsect1 xml:id="seealso"><title>See Also</title>
+        <para>
+            <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+        </para>
+    </refsect1>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/sdk/docs/man/eglCreateSync.xml b/sdk/docs/man/eglCreateSync.xml
new file mode 100644
index 0000000..551d2a4
--- /dev/null
+++ b/sdk/docs/man/eglCreateSync.xml
@@ -0,0 +1,311 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreateSync">
+    <info>
+         <copyright>
+             <year>2018</year>
+             <holder>The Khronos Group Inc.</holder>
+         </copyright>
+    </info>
+    <refmeta>
+        <refentrytitle>eglCreateSync</refentrytitle>
+        <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+        <refname>eglCreateSync</refname>
+        <refpurpose>
+            create a new <acronym>EGL</acronym> sync object
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>C Specification</title>
+        <funcsynopsis>
+            <funcprototype>
+                <funcdef>EGLSync <function>eglCreateSync</function></funcdef>
+                <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+                <paramdef>EGLEnum <parameter>type</parameter></paramdef>
+                <paramdef>EGLAttrib const * <parameter>attrib_list</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+    </refsynopsisdiv>
+    <refsect1 xml:id="parameters"><title>Parameters</title>
+        <variablelist>
+            <varlistentry>
+                <term><parameter>display</parameter></term>
+                <listitem><para>
+                    Specifies the <acronym>EGL</acronym> display connection.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>type</parameter></term>
+                <listitem><para>
+                    Specifies the type of sync object to create.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>attrib_list</parameter></term>
+                <listitem><para>
+                    Specifies attributes and attribute values for the sync
+                    object being created.
+                </para></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 xml:id="description"><title>Description</title>
+        <para>
+            <firstterm>sync objects</firstterm> are provided to enable
+            synchronization of client API operations between threads and/or
+            between API contexts. Sync objects may be tested or waited upon
+            by application threads.
+        </para>
+        <para>
+            Sync objects have a status with two possible states:
+            <firstterm>signaled</firstterm> and
+            <firstterm>unsignaled</firstterm>. Initially, sync objects are
+            unsignaled. EGL may be asked to wait for a sync object to become
+            signaled, or a sync object's status may be queried.
+        </para>
+        <para>
+            Depending on the type of a sync object, its status may be
+            changed either by an external event, or by explicitly signaling
+            and unsignaling the sync.
+        </para>
+        <para>
+            <function>eglCreateSync</function> creates a sync object of the specified
+            <parameter>type</parameter> associated with the specified display
+            <parameter>display</parameter>, and returns a handle to the new object.
+            <parameter>attrib_list</parameter> is an attribute-value list specifying
+            other attributes of the sync object, terminated by an attribute entry
+            <constant>EGL_NONE</constant>. Attributes not specified in the list will be
+            assigned their default values.
+        </para>
+        <para>
+            Once the <firstterm>condition</firstterm> of the sync object is satisfied,
+            the sync is signaled, causing any <function>eglClientWaitSync</function> or
+            <function>eglWaitSync</function> commands blocking on
+            <parameter>sync</parameter> to unblock.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="fencesync"><title>Creating Fence Sync Objects</title>
+        <para>
+            If <parameter>type</parameter> is
+            <constant>EGL_SYNC_FENCE</constant>, a fence sync object is
+            created. In this case <parameter>attrib_list</parameter> must be
+            <constant>NULL</constant> or empty (containing only
+            <constant>EGL_NONE</constant>). Attributes of the fence sync
+            object, and their initial values, are:
+        </para>
+        <variablelist>
+            <varlistentry>
+                <term><constant>EGL_SYNC_TYPE</constant></term>
+                <listitem>
+                    <para>
+                        <constant>EGL_SYNC_FENCE</constant>
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_SYNC_STATUS</constant></term>
+                <listitem>
+                    <para>
+                        <constant>EGL_UNSIGNALED</constant>
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_SYNC_CONDITION</constant></term>
+                <listitem>
+                    <para>
+                        <constant>EGL_SYNC_PRIOR_COMMANDS_COMPLETE</constant>
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+        <para>
+            When a fence sync object is created, <function>eglCreateSync</function> also inserts a
+            fence command into the command stream of the bound client API's current
+            context (i.e., the context returned by <function>eglGetCurrentContext</function>), and
+            associates it with the newly created sync object.
+        </para>
+        <para>
+            The only condition supported for fence sync objects is
+            <constant>EGL_SYNC_PRIOR_COMMANDS_COMPLETE</constant>, which is satisfied by completion of
+            the fence command corresponding to the sync object, and all preceding
+            commands in the associated client API context's command stream. The sync
+            object will not be signaled until all effects from these commands on the
+            client API's internal and framebuffer state are fully realized. No other
+            state is affected by execution of the fence command.
+        </para>
+        <para>
+            Creation of fence sync objects requires support from the bound
+            client API, and will not succeed unless the client API satisfies
+            one of the following properties. Note that
+            <function>eglWaitSync</function> also requires satisfying these
+            conditions.
+        </para>
+        <para>
+            <itemizedlist>
+            <listitem>
+                <para>
+                    client API is OpenGL, and either the OpenGL version is
+                    3.2 or greater, or the <constant>GL_ARB_sync</constant>
+                    extension is supported.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    client API is OpenGL ES, and either the OpenGL ES
+                    version is 3.0 or greater, or the
+                    <constant>GL_OES_EGL_sync</constant> extension is
+                    supported.
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    client API is OpenVG, and the
+                    <constant>VG_KHR_EGL_sync</constant> extension is
+                    supported.
+                </para>
+            </listitem>
+            </itemizedlist>
+        </para>
+    </refsect1>
+    <refsect1 xml:id="openclsync"><title>Creating OpenCL Event Sync Objects</title>
+        <para>
+            If <parameter>type</parameter> is
+            <constant>EGL_SYNC_CL_EVENT</constant>, an OpenCL event sync
+            object is created. In this case
+            <parameter>attrib_list</parameter> must contain the attribute
+            <constant>EGL_CL_EVENT_HANDLE</constant>, set to a valid OpenCL
+            event handle returned by a call to
+            <function>clEnqueueReleaseGLObjects</function> or
+            <function>clEnqueueReleaseEGLObjects</function>; other types of
+            OpenCL event handles are not supported. Note that
+            <constant>EGL_CL_EVENT_HANDLE</constant> is not a queriable
+            property of a sync object. Attributes of the OpenCL event sync
+            object, and their initial values, are:
+        </para>
+        <variablelist>
+            <varlistentry>
+                <term><constant>EGL_SYNC_TYPE</constant></term>
+                <listitem>
+                    <para>
+                        <constant>EGL_SYNC_CL_EVENT</constant>
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_SYNC_STATUS</constant></term>
+                <listitem>
+                    <para>
+                        Depends on status of <parameter>event</parameter>
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_SYNC_CONDITION</constant></term>
+                <listitem>
+                    <para>
+                        <constant>EGL_SYNC_CL_EVENT_COMPLETE</constant>
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+        <para>
+            The status of such a sync object depends on
+            <parameter>event</parameter>. When the status of
+            <parameter>event</parameter> is <constant>CL_QUEUED</constant>,
+            <constant>CL_SUBMITTED</constant>, or
+            <constant>CL_RUNNING</constant>, the status of the linked sync
+            object will be <constant>EGL_UNSIGNALED</constant>. When the
+            status of <parameter>event</parameter> changes to
+            <constant>CL_COMPLETE</constant>, the status of the linked sync
+            object will become <constant>EGL_SIGNALED</constant>.
+        </para>
+        <para>
+            The only condition supported for OpenCL event sync objects is
+            <constant>EGL_SYNC_CL_EVENT_COMPLETE</constant>, which is
+            satisfied when the status of the OpenCL event associated with
+            the sync object changes to <constant>CL_COMPLETE</constant>.
+        </para>
+        <para>
+            Creating a linked sync object places a reference on the linked
+            OpenCL event object. When the sync object is deleted, the
+            reference will be removed from the event object.
+        </para>
+        <para>
+            However, implementations are not required to validate the OpenCL
+            event, and passing an invalid event handle in
+            <parameter>attrib_list</parameter> may result in undefined
+            behavior up to and including program termination.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="notes"><title>Notes</title>
+        <para>
+            <function>eglCreateSync</function> is supported only if the EGL
+            version is 1.5 or greater.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="errors"><title>Errors</title>
+        <para>
+            <function>eglCreateSync</function> returns
+            <constant>EGL_NO_SYNC</constant> on failure.
+        </para>
+        <para>
+            If <parameter>display</parameter> is not the name of a valid,
+            initialized <type>EGLDisplay</type>, an
+            <constant>EGL_BAD_DISPLAY</constant> error is generated.
+        </para>
+        <para>
+            If <parameter>attrib_list</parameter> contains an attribute name
+            not defined for the type of sync object being created, an
+            <constant>EGL_BAD_ATTRIBUTE</constant> error is generated.
+        </para>
+        <para>
+            If <parameter>type</parameter> is not a supported type of sync
+            object, an <constant>EGL_BAD_PARAMETER</constant> error is
+            generated.
+        </para>
+        <para>
+            If <parameter>type</parameter> is
+            <constant>EGL_SYNC_FENCE</constant> and no context is current
+            for the bound API (i.e.,
+            <function>eglGetCurrentContext</function> returns
+            <constant>EGL_NO_CONTEXT</constant>), an
+            <constant>EGL_BAD_MATCH</constant> error is generated.
+        </para>
+        <para>
+            If <parameter>type</parameter> is
+            <constant>EGL_SYNC_FENCE</constant> and
+            <parameter>display</parameter> does not match the
+            <type>EGLDisplay</type> of the currently bound context for the
+            currently bound client API (the <type>EGLDisplay</type> returned
+            by <function>eglGetCurrentDisplay</function>), an
+            <constant>EGL_BAD_MATCH</constant> error is generated.
+        </para>
+        <para>
+            If <parameter>type</parameter> is
+            <constant>EGL_SYNC_FENCE</constant> and the current context for
+            the currently bound client API does not support fence commands,
+            an <constant>EGL_BAD_MATCH</constant> error is generated.
+        </para>
+        <para>
+            If <parameter>type</parameter> is
+            <constant>EGL_SYNC_CL_EVENT</constant> and
+            <constant>EGL_CL_EVENT_HANDLE</constant> is not specified in
+            <parameter>attrib_list</parameter>, or its attribute value is
+            not a valid OpenCL event handle as described above, then an
+            <constant>EGL_BAD_ATTRIBUTE</constant> error is generated.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="seealso"><title>See Also</title>
+        <para>
+            <function>clEnqueueReleaseGLObjects</function>,
+            <function>clEnqueueReleaseEGLObjects</function>,
+            <citerefentry><refentrytitle>eglClientWaitSync</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglWaitSync</refentrytitle></citerefentry>
+        </para>
+    </refsect1>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/sdk/docs/man/eglCreateWindowSurface.xml b/sdk/docs/man/eglCreateWindowSurface.xml
index ca1337b..b098a4b 100755
--- a/sdk/docs/man/eglCreateWindowSurface.xml
+++ b/sdk/docs/man/eglCreateWindowSurface.xml
@@ -1,7 +1,7 @@
 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreateWindowSurface">
     <info>
          <copyright>
-             <year>2003-2014</year>
+             <year>2003-2018</year>
              <holder>The Khronos Group Inc.</holder>
          </copyright>
     </info>
@@ -56,174 +56,26 @@
     </refsect1>
     <refsect1 xml:id="description"><title>Description</title>
         <para>
-            <function>eglCreateWindowSurface</function> creates an EGL
-            window surface and returns its handle. If
-            <function>eglCreateWindowSurface</function> fails to create
-            a window surface, <constant>EGL_NO_SURFACE</constant> is
-            returned.
-        </para>
-        <para>
-            Surface attributes are specified as a list of
-            attribute-value pairs, terminated with
-            <constant>EGL_NONE</constant>. Accepted attributes
-            are:
-        </para>
-        <variablelist>
-            <varlistentry>
-                <term><constant>EGL_RENDER_BUFFER</constant></term>
-                <listitem>
-                <para>
-                    Specifies which buffer should be used for client API
-                    rendering to the window. If its value is
-                    <constant>EGL_SINGLE_BUFFER</constant>, then client
-                    APIs should render directly into the visible window.
-                    If its value is
-                    <constant>EGL_BACK_BUFFER</constant>, then client
-                    APIs should render into the back buffer. The default
-                    value of <constant>EGL_RENDER_BUFFER</constant> is
-                    <constant>EGL_BACK_BUFFER</constant>.
-                </para>
-                <para>
-                    Client APIs may not be able to respect the requested
-                    rendering buffer. To determine the actual buffer
-                    being rendered to by a context, call
-                    <citerefentry><refentrytitle>eglQueryContext</refentrytitle></citerefentry>.
-                </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
-                <listitem>
-                <para>
-                    Specifies how alpha values are interpreted by OpenVG
-                    when rendering to the surface. If its value is
-                    <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>,
-                    then alpha values are not premultipled. If its value
-                    is <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>,
-                    then alpha values are premultiplied. The default
-                    value of <constant>EGL_VG_ALPHA_FORMAT</constant> is
-                    <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>.
-                </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term><constant>EGL_VG_COLORSPACE</constant></term>
-                <listitem>
-                <para>
-                    Specifies the color space used by OpenVG when
-                    rendering to the surface. If its value is
-                    <constant>EGL_VG_COLORSPACE_sRGB</constant>, then a
-                    non-linear, perceptually uniform color space is
-                    assumed, with a corresponding
-                    <type>VGImageFormat</type> of form
-                    <constant>VG_s*</constant>. If its value is
-                    <constant>EGL_VG_COLORSPACE_LINEAR</constant>, then
-                    a linear color space is assumed, with a
-                    corresponding <type>VGImageFormat</type> of form
-                    <constant>VG_l*</constant>. The default value of
-                    <constant>EGL_VG_COLORSPACE</constant> is
-                    <constant>EGL_VG_COLORSPACE_sRGB</constant>.
-                </para>
-                </listitem>
-            </varlistentry>
-        </variablelist>
-        <para>
-            Any EGL rendering context that was created with respect to
-            <parameter>config</parameter> can be used to render into the
-            surface. Use
-            <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
-            to attach an EGL rendering context to the surface.
-        </para>
-        <para>
-            Use
-            <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
-            to retrieve the ID of <parameter>config</parameter>.
-        </para>
-        <para>
-            Use
-            <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
-            to destroy the surface.
-        </para>
-    </refsect1>
-    <refsect1 xml:id="notes"><title>Notes</title>
-        <para>
-            Attributes <constant>EGL_RENDER_BUFFER</constant>,
-            <constant>EGL_VG_ALPHA_FORMAT</constant>, and
-            <constant>EGL_VG_COLORSPACE</constant>, and the
-            corresponding attribute values, are supported only if the
-            EGL version is 1.2 or greater.
-        </para>
-        <!-- Might want to mention aliasing of EGL_VG_* -> EGL_* that occurred in EGL 1.3 -->
-        <para>
-            The <constant>EGL_VG_ALPHA_FORMAT</constant> and
-            <constant>EGL_VG_COLORSPACE</constant> attributes are used
-            only by OpenVG. EGL itself, and other client APIs such as
-            OpenGL and OpenGL ES , do not distinguish multiple
-            colorspace models. Refer to section 11.2 of the OpenVG 1.0
-            specification for more information. The native window
-            system's use and interpretation of alpha values is outside
-            the scope of EGL, although the preferred behavior is for the
-            window system to ignore the value of
-            <constant>EGL_VG_ALPHA_FORMAT</constant> when compositing
-            window surfaces.
+            <function>eglCreateWindowSurface</function> creates an on-screen
+            EGL window surface and returns a handle to it. The behavior of
+            <function>eglCreateWindowSurface</function> is identical to that
+            of
+            <citerefentry><refentrytitle>eglCreatePlatformWindowSurface</refentrytitle></citerefentry>
+            except that the set of platforms to which
+            <parameter>display</parameter> is permitted to belong, as well
+            as the actual type of <parameter>native_window</parameter>, are
+            implementation specific.
         </para>
     </refsect1>
     <refsect1 xml:id="errors"><title>Errors</title>
         <para>
-            <constant>EGL_NO_SURFACE</constant> is returned if creation of
-            the context fails.
-        </para>
-        <para>
-            <constant>EGL_BAD_DISPLAY</constant> is generated if
-            <parameter>display</parameter> is not an EGL display connection.
-        </para>
-        <para>
-            <constant>EGL_NOT_INITIALIZED</constant> is generated if
-            <parameter>display</parameter> has not been initialized.
-        </para>
-        <para>
-            <constant>EGL_BAD_CONFIG</constant> is generated if
-            <parameter>config</parameter> is not an EGL frame buffer configuration.
-        </para>
-        <para>
-            <constant>EGL_BAD_NATIVE_WINDOW</constant> may be generated if
-            <parameter>native_window</parameter> is not a valid native window.
-        </para>
-        <para>
-            <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
-            <parameter>attrib_list</parameter> contains an invalid window attribute
-            or if an attribute value is not recognized or is out of range.
-        </para>
-        <para>
-            <constant>EGL_BAD_ALLOC</constant> is generated if there are not
-            enough resources to allocate the new surface.
-        </para>
-        <para>
-            <constant>EGL_BAD_MATCH</constant> is generated if the attributes of
-            <parameter>native_window</parameter> do not correspond to
-            <parameter>config</parameter> or if
-            <parameter>config</parameter> does not support rendering to windows
-            (the <constant>EGL_SURFACE_TYPE</constant> attribute does not contain
-            <constant>EGL_WINDOW_BIT</constant>).
-        </para>
-        <para>
-            <constant>EGL_BAD_MATCH</constant> is generated if
-            <parameter>config</parameter> does not support the specified
-            OpenVG alpha format attribute (the value of
-            <constant>EGL_VG_ALPHA_FORMAT</constant> is
-            <constant>EGL_VG_ALPHA_FORMAT_PRE</constant> and the
-            <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> is not set
-            in the <constant>EGL_SURFACE_TYPE</constant> attribute of
-            <parameter>config</parameter>) or colorspace attribute (the
-            value of <constant>EGL_VG_COLORSPACE</constant> is
-            <constant>EGL_VG_COLORSPACE_LINEAR</constant> and the
-            <constant>EGL_VG_COLORSPACE_LINEAR_IT</constant> is not set
-            in the <constant>EGL_SURFACE_TYPE</constant> attribute of
-            <parameter>config</parameter>).
+            See errors for
+            <citerefentry><refentrytitle>eglCreatePlatformWindowSurface</refentrytitle></citerefentry>.
         </para>
     </refsect1>
     <refsect1 xml:id="seealso"><title>See Also</title>
         <para>
+            <citerefentry><refentrytitle>eglCreatePlatformWindowSurface</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
diff --git a/sdk/docs/man/eglDestroyImage.xml b/sdk/docs/man/eglDestroyImage.xml
new file mode 100644
index 0000000..96bb8bd
--- /dev/null
+++ b/sdk/docs/man/eglDestroyImage.xml
@@ -0,0 +1,85 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglDestroyImage">
+    <info>
+         <copyright>
+             <year>2018</year>
+             <holder>The Khronos Group Inc.</holder>
+         </copyright>
+    </info>
+    <refmeta>
+        <refentrytitle>eglDestroyImage</refentrytitle>
+        <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+        <refname>eglDestroyImage</refname>
+        <refpurpose>
+            Destroy an <type>EGLImage</type> object
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>C Specification</title>
+        <funcsynopsis>
+            <funcprototype>
+            <funcdef>EGLBoolean <function>eglDestroyImage</function></funcdef>
+            <paramdef>(EGLDisplay <parameter>display</parameter></paramdef>
+            <paramdef>EGLImage <parameter>image</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+    </refsynopsisdiv>
+    <refsect1 xml:id="parameters"><title>Parameters</title>
+        <variablelist>
+            <varlistentry>
+                <term><parameter>display</parameter></term>
+                <listitem><para>
+                    Specifies the <acronym>EGL</acronym> display connection.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>image</parameter></term>
+                <listitem><para>
+                    Specifies the image to destroy.
+                </para></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 xml:id="description"><title>Description</title>
+        <para>
+            <function>eglDestroyImage</function> is used to destroy the
+            specified <type>EGLImage</type> object
+            <parameter>image</parameter>. Once destroyed,
+            <parameter>image</parameter> may not be used to create any
+            additional <type>EGLImage</type> target resources within any
+            client API contexts, although existing <type>EGLImage</type>
+            siblings may continue to be used. <constant>EGL_TRUE</constant>
+            is returned on success.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="errors"><title>Errors</title>
+        <para>
+            On failure, <function>eglDestroyImage</function> returns
+            <constant>EGL_FALSE</constant>
+        </para>
+        <para>
+            If <parameter>display</parameter> is not the handle of a valid
+            <type>EGLDisplay</type> object, the error
+            <constant>EGL_BAD_DISPLAY</constant> is generated.
+        </para>
+        <para>
+            If <parameter>image</parameter> is not a valid
+            <type>EGLImage</type> object created with respect to
+            <parameter>display</parameter>, the error
+            <constant>EGL_BAD_PARAMETER</constant> is generated.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="notes"><title>Notes</title>
+        <para>
+            <function>eglDestroyImage</function> is available only if the
+            EGL version is 1.5 or greater.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="seealso"><title>See Also</title>
+        <para>
+            <citerefentry><refentrytitle>eglCreateImage</refentrytitle></citerefentry>
+        </para>
+    </refsect1>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/sdk/docs/man/eglDestroySync.xml b/sdk/docs/man/eglDestroySync.xml
new file mode 100644
index 0000000..d871c2c
--- /dev/null
+++ b/sdk/docs/man/eglDestroySync.xml
@@ -0,0 +1,98 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglDestroySync">
+    <info>
+         <copyright>
+             <year>2018</year>
+             <holder>The Khronos Group Inc.</holder>
+         </copyright>
+    </info>
+    <refmeta>
+        <refentrytitle>eglDestroySync</refentrytitle>
+        <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+        <refname>eglDestroySync</refname>
+        <refpurpose>
+            Destroy a sync object
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>C Specification</title>
+        <funcsynopsis>
+            <funcprototype>
+            <funcdef>EGLBoolean <function>eglDestroySync</function></funcdef>
+            <paramdef>(EGLDisplay <parameter>display</parameter></paramdef>
+            <paramdef>EGLSync <parameter>sync</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+    </refsynopsisdiv>
+    <refsect1 xml:id="parameters"><title>Parameters</title>
+        <variablelist>
+            <varlistentry>
+                <term><parameter>display</parameter></term>
+                <listitem><para>
+                    Specifies the <acronym>EGL</acronym> display connection.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>sync</parameter></term>
+                <listitem><para>
+                    Specifies the sync object to destroy.
+                </para></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 xml:id="description"><title>Description</title>
+        <para>
+            <function>eglDestroySync</function> is used to destroy an
+            existing sync object.
+        </para>
+        <para>
+            If any <function>eglClientWaitSync</function> or
+            <function>eglWaitSync</function> commands are blocking on
+            <parameter>sync</parameter> when
+            <function>eglDestroySync</function> is called,
+            <parameter>sync</parameter> is flagged for deletion and will be
+            deleted when the associated fence command or OpenCL event object
+            has completed, and <parameter>sync</parameter> is no longer
+            blocking any such <function>egl*WaitSync</function> command.
+            Otherwise, the sync object is destroyed immediately.
+        </para>
+        <para>
+            If no errors are generated, <constant>EGL_TRUE</constant> is
+            returned, and <parameter>sync</parameter> will no longer be the
+            handle of a valid sync object.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="errors"><title>Errors</title>
+        <para>
+            On failure, <function>eglDestroySync</function> returns
+            <constant>EGL_FALSE</constant>.
+        </para>
+        <para>
+            If <parameter>sync</parameter> is not a valid sync object for
+            <parameter>display</parameter>, <constant>EGL_FALSE</constant>
+            is returned and an <constant>EGL_BAD_PARAMETER</constant> error
+            is generated.
+        </para>
+        <para>
+            If <parameter>display</parameter> does not match the display
+            passed to <function>eglCreateSync</function> when
+            <parameter>sync</parameter> was created, the behaviour is
+            undefined.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="notes"><title>Notes</title>
+        <para>
+            <function>eglDestroySync</function> is available only if the EGL
+            version is 1.5 or greater.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="seealso"><title>See Also</title>
+        <para>
+            <citerefentry><refentrytitle>eglClientWaitSync</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglWaitSync</refentrytitle></citerefentry>
+        </para>
+    </refsect1>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/sdk/docs/man/eglGetCurrentDisplay.xml b/sdk/docs/man/eglGetCurrentDisplay.xml
index 7399a36..a860304 100755
--- a/sdk/docs/man/eglGetCurrentDisplay.xml
+++ b/sdk/docs/man/eglGetCurrentDisplay.xml
@@ -1,7 +1,7 @@
 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetCurrentDisplay">
     <info>
          <copyright>
-             <year>2003-2014</year>
+             <year>2003-2018</year>
              <holder>The Khronos Group Inc.</holder>
          </copyright>
     </info>
@@ -33,6 +33,20 @@
             If no context is current, <constant>EGL_NO_DISPLAY</constant> is returned.
         </para>
     </refsect1>
+    <refsect1 xml:id="errors"><title>Errors</title>
+        <para>
+            Passing <constant>EGL_NO_DISPLAY</constant> to any command
+            taking an <type>EGLDisplay</type> parameter will generate either
+            an <constant>EGL_BAD_DISPLAY</constant> error if the EGL
+            implementation validates <type>EGLDisplay</type> handles, or
+            undefined behavior as described at the end of section 3.1 of the
+            EGL 1.5 Specification. The only exception to this rule is that
+            <function>eglQueryString</function> will accept an
+            <type>EGLDisplay</type> parameter of
+            <constant>EGL_NO_DISPLAY</constant> when querying the client
+            extension string (see section 3.3 of the EGL 1.5 Specification).
+        </para>
+    </refsect1>
     <refsect1 xml:id="seealso"><title>See Also</title>
         <para>
             <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
diff --git a/sdk/docs/man/eglGetCurrentSurface.xml b/sdk/docs/man/eglGetCurrentSurface.xml
index cc60e50..1299718 100755
--- a/sdk/docs/man/eglGetCurrentSurface.xml
+++ b/sdk/docs/man/eglGetCurrentSurface.xml
@@ -30,8 +30,9 @@
                 <term><parameter>readdraw</parameter></term>
                 <listitem>
                     <para>
-                        Specifies whether the <acronym>EGL</acronym> read or draw surface
-                        is to be returned.
+                        Specifies whether to return the read surface
+                        (<constant>EGL_READ</constant>) or the draw surface
+                        (<constant>EGL_DRAW</constant>).
                     </para>
                 </listitem>
             </varlistentry>
diff --git a/sdk/docs/man/eglGetDisplay.xml b/sdk/docs/man/eglGetDisplay.xml
index 495f3b0..a694edf 100755
--- a/sdk/docs/man/eglGetDisplay.xml
+++ b/sdk/docs/man/eglGetDisplay.xml
@@ -1,7 +1,7 @@
 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetDisplay">
     <info>
          <copyright>
-             <year>2003-2014</year>
+             <year>2003-2018</year>
              <holder>The Khronos Group Inc.</holder>
          </copyright>
     </info>
@@ -44,6 +44,26 @@
             display <parameter>native_display</parameter>.
         </para>
         <para>
+            The behavior of <function>eglGetDisplay</function> is similar to
+            that of
+            <citerefentry><refentrytitle>eglGetPlatformDisplay</refentrytitle></citerefentry>,
+            but is specified in terms of implementation-specific behavior
+            rather than platform-specific extensions. As for
+            <citerefentry><refentrytitle>eglGetPlatformDisplay</refentrytitle></citerefentry>,
+            EGL considers the returned <type>EGLDisplay</type> as belonging
+            to the same platform as <parameter>display_id</parameter>.
+            However, the set of platforms to which
+            <parameter>display_id</parameter> is permitted to belong, as
+            well as the actual type of <parameter>display_id</parameter>,
+            are implementation-specific. If
+            <parameter>display_id</parameter> is
+            <constant>EGL_DEFAULT_DISPLAY</constant>, a <firstterm>default
+            display</firstterm> is returned. Multiple calls made to
+            <function>eglGetDisplay</function> with the same
+            <parameter>display_id</parameter> will return the same
+            <type>EGLDisplay</type> handle.
+        </para>
+        <para>
             If <parameter>display_id</parameter> is
             <constant>EGL_DEFAULT_DISPLAY</constant>, a default display connection is returned.
         </para>
@@ -59,7 +79,8 @@
     </refsect1>
     <refsect1 xml:id="seealso"><title>See Also</title>
         <para>
-            <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+            <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglGetPlatformDisplay</refentrytitle></citerefentry>
         </para>
     </refsect1>
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
diff --git a/sdk/docs/man/eglGetError.xml b/sdk/docs/man/eglGetError.xml
index a0b7f41..3e1fd71 100755
--- a/sdk/docs/man/eglGetError.xml
+++ b/sdk/docs/man/eglGetError.xml
@@ -31,6 +31,13 @@
             Initially, the error is set to <constant>EGL_SUCCESS</constant>.
         </para>
         <para>
+            When an EGL function could potentially generate several
+            different errors (for example, when passed both a bad attribute
+            name, and a bad attribute value for a legal attribute name), the
+            implementation may choose to generate any one of the applicable
+            errors.
+        </para>
+        <para>
             The following errors are currently defined:
         </para>
         <variablelist>
diff --git a/sdk/docs/man/eglGetPlatformDisplay.xml b/sdk/docs/man/eglGetPlatformDisplay.xml
new file mode 100644
index 0000000..f2f9108
--- /dev/null
+++ b/sdk/docs/man/eglGetPlatformDisplay.xml
@@ -0,0 +1,122 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetPlatformDisplay">
+    <info>
+         <copyright>
+             <year>2018</year>
+             <holder>The Khronos Group Inc.</holder>
+         </copyright>
+    </info>
+    <refmeta>
+        <refentrytitle>eglGetPlatformDisplay</refentrytitle>
+        <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+        <refname>eglGetPlatformDisplay</refname>
+        <refpurpose>
+            return an <acronym>EGL</acronym> display connection
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>C Specification</title>
+        <funcsynopsis>
+            <funcprototype>
+                <funcdef>EGLDisplay <function>eglGetPlatformDisplay</function></funcdef>
+                <paramdef>EGLenum <parameter>platform</parameter></paramdef>
+                <paramdef>void * <parameter>native_display</parameter></paramdef>
+                <paramdef>const EGLAttrib * <parameter>attrib_list</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+    </refsynopsisdiv>
+    <refsect1 xml:id="parameters"><title>Parameters</title>
+        <variablelist>
+            <varlistentry>
+                <term><parameter>platform</parameter></term>
+                <listitem>
+                    <para>
+                        Specifies the native platform to obtain a display for.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>native_display</parameter></term>
+                <listitem>
+                    <para>
+                        Specifies the native display to connect to.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>attrib_list</parameter></term>
+                <listitem>
+                    <para>
+                        Specifies attributes of the display being obtained.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 xml:id="description"><title>Description</title>
+        <para>
+            <function>eglGetPlatformDisplay</function> obtains an
+            <acronym>EGL</acronym> display connection for the specified
+            <parameter>platform</parameter> and
+            <parameter>native_display</parameter>.
+        </para>
+        <para>
+            Valid values for <parameter>platform</parameter> are defined by
+            EGL extensions, as are requirements for
+            <parameter>native_display</parameter>.
+            For example, an extension specification that defines support for
+            the X11 platform may require that
+            <parameter>native_display</parameter> be a pointer to an X11
+            Display, and an extension specification that defines support for
+            the Microsoft Windows platform may require that
+            <parameter>native_display</parameter> be a pointer to a Windows
+            Device Context.
+        </para>
+        <para>
+            Valid attributes are defined by EGL extensions.
+            All attributes in <parameter>attrib_list</parameter>,
+            including boolean attributes, are immediately followed by
+            the corresponding desired value.
+            The list is terminated with <constant>EGL_NONE</constant>.
+            If an attribute is not specified in
+            <parameter>attrib_list</parameter> but is required for the
+            specified <parameter>platform</parameter>, then a default value
+            is used (and the attribute is said to be specified implicitly).
+        </para>
+        <para>
+            Multiple calls made to
+            <function>eglGetPlatformDisplay</function> with the same
+            parameters will return the same <type>EGLDisplay</type> handle.
+        </para>
+        <para>
+            If <parameter>platform</parameter> is valid but no display
+            matching <parameter>native_display</parameter> is available,
+            then <constant>EGL_NO_DISPLAY</constant> is returned; no error
+            condition is raised in this case.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="notes"><title>Notes</title>
+        <para>
+            <function>eglGetPlatformDisplay</function> is supported only if
+            the EGL version is 1.5 or greater.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="errors"><title>Errors</title>
+        <para>
+            <function>eglGetPlatformDisplay</function> returns
+            <constant>EGL_NO_DISPLAY</constant> on failure.
+        </para>
+        <para>
+            An <constant>EGL_BAD_PARAMETER</constant> error is generated if
+            <parameter>platform</parameter> has an invalid value.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="seealso"><title>See Also</title>
+        <para>
+            <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>
+        </para>
+    </refsect1>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/sdk/docs/man/eglGetProcAddress.xml b/sdk/docs/man/eglGetProcAddress.xml
index 2b25de8..a3d20b0 100755
--- a/sdk/docs/man/eglGetProcAddress.xml
+++ b/sdk/docs/man/eglGetProcAddress.xml
@@ -1,7 +1,7 @@
 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetProcAddress">
     <info>
          <copyright>
-             <year>2003-2014</year>
+             <year>2003-2018</year>
              <holder>The Khronos Group Inc.</holder>
          </copyright>
     </info>
@@ -20,8 +20,8 @@
         <title>C Specification</title>
         <funcsynopsis>
             <funcprototype>
-                <funcdef>void (* <function>eglGetProcAddress</function>)()</funcdef>
-                <paramdef>char const * <parameter>procname</parameter></paramdef>
+                <funcdef>void (* <function>eglGetProcAddress</function></funcdef>
+                <paramdef>char const * <parameter>procname</parameter>))(void</paramdef>
             </funcprototype>
         </funcsynopsis>
     </refsynopsisdiv>
@@ -40,38 +40,59 @@
     <refsect1 xml:id="description"><title>Description</title>
         <para>
             <function>eglGetProcAddress</function> returns the address of
-            the extension function named by <parameter>procname</parameter>.
-            <parameter>procname</parameter>
-            must be a null-terminated string. The pointer returned
-            should be cast to a function pointer type matching the extension
-            function's definition in that extension specification. A return value
+            the client API or EGL function named by
+            <parameter>procname</parameter>. <parameter>procname</parameter>
+            must be a null-terminated string. The pointer returned should be
+            cast to a function pointer matching the function's definition in
+            the corresponding API or extension specification. A return value
             of <constant>NULL</constant> indicates that the specific
-            function does not exist for the <acronym>EGL</acronym> implementation.
+            function does not exist for the implementation.
         </para>
         <para>
             A non-<constant>NULL</constant> return value does not guarantee
-            that an extension function is actually supported at runtime. The client
-            must also query
-            <citerefentry><refentrytitle>glGetString</refentrytitle></citerefentry>(<constant>GL_EXTENSIONS</constant>) or
-            <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>(<parameter>display</parameter>,
-            <constant>EGL_EXTENSIONS</constant>) to determine if an
-            extension is supported by a particular context or display.
+            that an extension function is actually supported at runtime. The
+            client must also make a corresponding query, such as
+            <function>glGetString</function>(<constant>GL_EXTENSIONS</constant>)
+            for OpenGL and OpenGL ES extensions;
+            <function>vgGetString</function>(<constant>VG_EXTENSIONS</constant>)
+            for OpenVG extensions;
+            <function>eglQueryString</function>(<parameter>display</parameter>,
+            <constant>EGL_EXTENSIONS</constant>); or query the EGL or client
+            API version for non-extension functions, to determine if a
+            function is supported by EGL or a specific client API context.
         </para>
         <para>
-            Function pointers returned by
+            Client API function pointers returned by
             <function>eglGetProcAddress</function> are independent of the
-            display and the currently bound context and may be used by any context
-            which supports the extension.
+            display and the currently bound client API context, and may be
+            used by any client API context which supports the function.
         </para>
         <para>
             <function>eglGetProcAddress</function> may be queried for all
-            <acronym>GL</acronym> and <acronym>EGL</acronym> extension functions.
+            EGL and client API functions supported by the implementation
+            (whether those functions are extensions or not, and whether they
+            are supported by the current client API context or not).
+        </para>
+        <para>
+            For functions that are queryable with
+            <function>eglGetProcAddress</function>, implementations may
+            choose to also export those functions statically from the object
+            libraries implementing those functions. However, portable
+            clients cannot rely on this behavior.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="notes"><title>Notes</title>
+        <para>
+            If the EGL version is not 1.5 or greater, only queries of EGL
+            and client API <emphasis>extension</emphasis> functions will
+            succeed.
         </para>
     </refsect1>
     <refsect1 xml:id="seealso"><title>See Also</title>
         <para>
-            <citerefentry><refentrytitle>glGetString</refentrytitle></citerefentry>,
+            <function>glGetString</function>
             <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>    </para>
+            <function>vgGetString</function>
     </refsect1>
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
 </refentry>
diff --git a/sdk/docs/man/eglGetSyncAttrib.xml b/sdk/docs/man/eglGetSyncAttrib.xml
new file mode 100644
index 0000000..c3f0197
--- /dev/null
+++ b/sdk/docs/man/eglGetSyncAttrib.xml
@@ -0,0 +1,148 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetSyncAttrib">
+    <info>
+         <copyright>
+             <year>2018</year>
+             <holder>The Khronos Group Inc.</holder>
+         </copyright>
+    </info>
+    <refmeta>
+        <refentrytitle>eglGetSyncAttrib</refentrytitle>
+        <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+        <refname>eglGetSyncAttrib</refname>
+        <refpurpose>
+            Return an attribute of a sync object
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>C Specification</title>
+        <funcsynopsis>
+            <funcprototype>
+            <funcdef>EGLBoolean <function>eglGetSyncAttrib</function></funcdef>
+            <paramdef>(EGLDisplay <parameter>display</parameter></paramdef>
+            <paramdef>EGLSync <parameter>sync</parameter></paramdef>
+            <paramdef>EGLint <parameter>attribute</parameter></paramdef>
+            <paramdef>EGLAttrib *<parameter>value</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+    </refsynopsisdiv>
+    <refsect1 xml:id="parameters"><title>Parameters</title>
+        <variablelist>
+            <varlistentry>
+                <term><parameter>display</parameter></term>
+                <listitem><para>
+                    Specifies the <acronym>EGL</acronym> display connection.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>sync</parameter></term>
+                <listitem><para>
+                    Specifies the sync object to query.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>attribute</parameter></term>
+                <listitem><para>
+                    Specifies the EGL sync object attribute to query.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>value</parameter></term>
+                <listitem><para>
+                    Returns the requested attribute value.
+                </para></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 xml:id="description"><title>Description</title>
+        <para>
+            <function>eglGetSyncAttrib</function> is used to query
+            attributes of the sync object <parameter>sync</parameter>. Legal
+            values for <parameter>attribute</parameter> depend on the type
+            of sync object, as shown in table
+            <xref linkend="tab-syncattr"/>. Assuming no errors are
+            generated, <constant>EGL_TRUE</constant> is returned and the
+            value of the queried attribute is returned in
+            *<parameter>value</parameter>.
+        </para>
+        <table frame="all" xml:id="tab-syncattr">
+            <title>
+                Attributes accepted by <function>eglGetSyncAttrib</function>
+            </title>
+            <tgroup cols="3" align="left" colsep="1" rowsep="1">
+                <thead>
+                    <row>
+                        <entry>Attribute</entry>
+                        <entry>Description</entry>
+                        <entry>Supported Sync Objects</entry>
+                    </row>
+                </thead>
+                <tbody>
+                    <row>
+                        <entry>Attribute</entry>
+                        <entry>Description</entry>
+                        <entry>Supported Sync Objects</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_SYNC_TYPE</constant></entry>
+                        <entry>Type of the sync object</entry>
+                        <entry>All</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_SYNC_STATUS</constant></entry>
+                        <entry>Status of the sync object</entry>
+                        <entry>All</entry>
+                    </row>
+                    <row>
+                        <entry><constant>EGL_SYNC_CONDITION</constant></entry>
+                        <entry>Signaling condition</entry>
+                        <entry>
+                            <constant>EGL_SYNC_FENCE</constant> or
+                            <constant>EGL_SYNC_CL_EVENT</constant>
+                        </entry>
+                    </row>
+                </tbody>
+            </tgroup>
+        </table>
+    </refsect1>
+    <refsect1 xml:id="errors"><title>Errors</title>
+        <para>
+            On failure, <function>eglGetSyncAttrib</function> returns
+            <constant>EGL_FALSE</constant> and *<parameter>value</parameter>
+            is not modified.
+        </para>
+        <para>
+            If <parameter>sync</parameter> is not a valid sync object for
+            <parameter>display</parameter>, an
+            <constant>EGL_BAD_PARAMETER</constant> error is generated.
+        </para>
+        <para>
+            If <parameter>attribute</parameter> is not one of the attributes
+            in table <xref linkend="tab-syncattr"/>, an
+            <constant>EGL_BAD_ATTRIBUTE</constant> error is generated.
+        </para>
+        <para>
+            If <parameter>attribute</parameter> is not supported for the
+            type of sync object passed in <parameter>sync</parameter>, an
+            <constant>EGL_BAD_MATCH</constant> error is generated.
+        </para>
+        <para>
+            If <parameter>display</parameter> does not match the display
+            passed to <function>eglCreateSync</function> when
+            <parameter>sync</parameter> was created, behaviour is undefined.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="notes"><title>Notes</title>
+        <para>
+            <function>eglGetSyncAttrib</function> is available only if the
+            EGL version is 1.5 or greater.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="seealso"><title>See Also</title>
+        <para>
+            <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>
+        </para>
+    </refsect1>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/sdk/docs/man/eglIntro.xml b/sdk/docs/man/eglIntro.xml
index 23b2fab..0cdd0a1 100755
--- a/sdk/docs/man/eglIntro.xml
+++ b/sdk/docs/man/eglIntro.xml
@@ -1,7 +1,7 @@
 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglIntro">
     <info>
          <copyright>
-             <year>2003-2014</year>
+             <year>2003-2018</year>
              <holder>The Khronos Group Inc.</holder>
          </copyright>
     </info>
@@ -23,28 +23,39 @@
             using a <firstterm>client API</firstterm> such as OpenGL ES
             (a 3D renderer for embedded systems), OpenGL (a functional
             superset of OpenGL ES for desktop systems), and OpenVG (a 2D
-            vector graphics renderer) together with a native window
-            system, such as Microsoft Windows or the X Window System.
+            vector graphics renderer) together with a
+            <firstterm>platform</firstterm>, such as Microsoft Windows or
+            the X Window System.
         </para>
         <para>
             Depending on its implementation EGL might be more or less
-            tightly integrated into the native window system. Most EGL
+            tightly integrated into the platform. Most EGL
             functions require an EGL display connection, which can be
             obtained by calling
-            <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>
-            and passing in a native display handle or
-            <constant>EGL_DEFAULT_DISPLAY</constant>. To initialize and
+            <citerefentry><refentrytitle>eglGetPlatformDisplay</refentrytitle></citerefentry>
+            or
+            <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>.
+            To initialize and
             query what EGL version is supported on the display
             connection, call
             <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>.
         </para>
         <para>
-            Native window systems supporting EGL make a subset of their
+            The EGL specification does not define the set of platforms that
+            may be supported by an EGL implementation, nor does it specify
+            behavior specific to any platform. The set of supported
+            platforms and their behavior is defined by platform-specific
+            extensions. To detect if a particular platform is supported,
+            clients should query the <constant>EGL_EXTENSIONS</constant>
+            string of <constant>EGL_NO_DISPLAY</constant> using
+            <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>.
+        </para>
+        <para>
+            Platforms supporting EGL make a subset of their
             visuals (which may also referred to as pixel formats, frame
             buffer configurations, or other similar terms) available for
             client API rendering. Windows and pixmaps created with these
-            visuals may also be rendered into using the native window
-            system API.
+            visuals may also be rendered into using the platform APIs.
         </para>
         <para>
             An EGL <firstterm>surface</firstterm> extends a native
@@ -58,9 +69,9 @@
             EGL supports rendering into three types of surfaces:
             windows, pixmaps and pixel buffers (pbuffers). EGL window
             and pixmap surfaces are associated with corresponding
-            resources of the native window system. EGL pixel buffers are
-            EGL only resources, and do not accept rendering through the
-            native window system.
+            resources of the platform. EGL pixel buffers are
+            EGL-only resources, and do not accept rendering through the
+            platform APIs.
         </para>
         <para>
             To render using a client API into an EGL surface, you must
@@ -122,13 +133,13 @@
             is called with different arguments.
         </para>
         <para>
-            Both native and client API commands may be used to operate
-            on certain surfaces, however, the two command streams are
+            Both platform and client API commands may be used to operate
+            on certain surfaces. However, the two command streams are
             not synchronized. Synchronization can be explicitly
             specified using by calling
-            <citerefentry><refentrytitle>eglWaitCLient</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>,
-            and possibly by calling other native window system commands.
+            and possibly by calling other platform APIs.
         </para>
     </refsect1>
     <refsect1 xml:id="examples"><title>Examples</title>
@@ -141,7 +152,7 @@
 <programlisting>
 #include &lt;stdlib.h&gt;
 #include &lt;unistd.h&gt;
-#include &lt;GLES/egl.h&gt;
+#include &lt;EGL/egl.h&gt;
 #include &lt;GLES/gl.h&gt;
 typedef ... NativeWindowType;
 extern NativeWindowType createNativeWindow(void);
@@ -159,34 +170,52 @@
         EGLSurface surface;
         NativeWindowType native_window;
         EGLint num_config;
+
         /* get an EGL display connection */
         display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+
         /* initialize the EGL display connection */
         eglInitialize(display, NULL, NULL);
+
         /* get an appropriate EGL frame buffer configuration */
         eglChooseConfig(display, attribute_list, &amp;config, 1, &amp;num_config);
+
         /* create an EGL rendering context */
         context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
+
         /* create a native window */
         native_window = createNativeWindow();
+
         /* create an EGL window surface */
         surface = eglCreateWindowSurface(display, config, native_window, NULL);
+
         /* connect the context to the surface */
         eglMakeCurrent(display, surface, surface, context);
+
         /* clear the color buffer */
         glClearColor(1.0, 1.0, 0.0, 1.0);
         glClear(GL_COLOR_BUFFER_BIT);
         glFlush();
+
         eglSwapBuffers(display, surface);
+
         sleep(10);
         return EXIT_SUCCESS;
 }
 </programlisting>
     </refsect1>
+    <refsect1 xml:id="notes"><title>Notes</title>
+        <para>
+            Prior to EGL 1.5, platforms were referred to as the
+            <firstterm>native window system</firstterm>, and
+            platform-specific queries and APIs were not available. Only a
+            single native window system was supported.
+        </para>
+    </refsect1>
     <refsect1 xml:id="usingeglextensions"><title>Using EGL Extensions</title>
         <para>
             All supported EGL extensions will have a corresponding definition in
-            <filename>egl.h</filename> and a token in the extensions string returned
+            <filename>egl.h</filename> and a token in the extension strings returned
             by
             <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>.
         </para>
@@ -232,6 +261,7 @@
             <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglGetPlatformDisplay</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>,
diff --git a/sdk/docs/man/eglMakeCurrent.xml b/sdk/docs/man/eglMakeCurrent.xml
index 930eed3..3464640 100755
--- a/sdk/docs/man/eglMakeCurrent.xml
+++ b/sdk/docs/man/eglMakeCurrent.xml
@@ -1,7 +1,7 @@
 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglMakeCurrent">
     <info>
          <copyright>
-             <year>2003-2014</year>
+             <year>2003-2018</year>
              <holder>The Khronos Group Inc.</holder>
          </copyright>
     </info>
@@ -61,31 +61,113 @@
         <para>
             <function>eglMakeCurrent</function> binds <parameter>context</parameter>
             to the current rendering thread and to the <parameter>draw</parameter>
-            and <parameter>read</parameter> surfaces. <parameter>draw</parameter>
-            is used for all GL operations except for any pixel data read back
+            and <parameter>read</parameter> surfaces.
+        </para>
+        <para>
+            For an OpenGL or OpenGL ES context, <parameter>draw</parameter>
+            is used for all operations except for any pixel data read back or copied
             (<citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>,
             <citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>, and
             <citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>),
             which is taken from the frame buffer values of
+            <parameter>read</parameter>. Note that the same
+            <type>EGLSurface</type> may be specified for both draw and read.
+        </para>
+        <para>
+            For an OpenVG context, the same <type>EGLSurface</type> must be
+            specified for both <parameter>draw</parameter> and
             <parameter>read</parameter>.
         </para>
         <para>
-            If the calling thread has already a current rendering context, that
-            context is flushed and marked as no longer current.
+            If the calling thread has already a current rendering context of
+            the same client API type as <parameter>context</parameter>, then
+            that context is flushed and marked as no longer current.
+            <parameter>context</parameter> is then made the current context
+            for the calling thread. For purposes of
+            <function>eglMakeCurrent</function>, the client API type of all
+            OpenGL ES and OpenGL contexts is considered the same. In other
+            words, if any OpenGL ES context is currently bound and
+            <parameter>context</parameter> is an OpenGL context, or if any
+            OpenGL context is currently bound and
+            <parameter>context</parameter> is an OpenGL ES context, the
+            currently bound context will be made no longer current and
+            <parameter>context</parameter> will be made current.
         </para>
         <para>
-            The first time that <parameter>context</parameter> is made current,
-            the viewport and scissor dimensions are set to the size of the
-            <parameter>draw</parameter> surface. The viewport and
-            scissor are not modified when <parameter>context</parameter> is
-            subsequently made current.
+            OpenGL and OpenGL ES buffer mappings created by e.g.
+            <function>glMapBuffer</function> are not affected by
+            <function>eglMakeCurrent</function>; they persist whether the
+            context owning the buffer is current or not.
         </para>
         <para>
-            To release the current context without assigning a new one, call
-            <function>eglMakeCurrent</function> with <parameter>draw</parameter>
-            and <parameter>read</parameter> set to
-            <constant>EGL_NO_SURFACE</constant> and <parameter>context</parameter>
-            set to <constant>EGL_NO_CONTEXT</constant>.
+            If <parameter>draw</parameter> is destroyed after
+            <function>eglMakeCurrent</function> is called, then subsequent
+            rendering commands will be processed and the context state will
+            be updated, but the surface contents become undefined. If
+            <parameter>read</parameter> is destroyed after
+            <function>eglMakeCurrent</function> then pixel values
+            <parameter>read</parameter> from the framebuffer (e.g., as
+            result of calling glReadPixels) are undefined. If a native
+            window or pixmap underlying the <parameter>draw</parameter> or
+            <parameter>read</parameter> surfaces is destroyed, rendering and
+            <parameter>read</parameter>back are handled as above.
+        </para>
+        <para>
+            To release the current context without assigning a new one, set
+            <parameter>context</parameter> to
+            <constant>EGL_NO_CONTEXT</constant> and set
+            <parameter>draw</parameter> and <parameter>read</parameter> to
+            <constant>EGL_NO_SURFACE</constant> . The currently bound
+            context for the client API specified by the current rendering
+            API is flushed and marked as no longer current, and there will
+            be no current context for that client API after
+            <function>eglMakeCurrent</function> returns. This is the only
+            case in which <function>eglMakeCurrent</function> respects the
+            current rendering API. In all other cases, the client API
+            affected is determined by <parameter>context</parameter>. This
+            is the only case where an uninitialized display may be passed to
+            <function>eglMakeCurrent</function>.
+        </para>
+        <para>
+            If ctx is not <constant>EGL_NO_CONTEXT</constant>, then both
+            <parameter>draw</parameter> and <parameter>read</parameter> must
+            not be <constant>EGL_NO_SURFACE</constant> unless
+            <parameter>context</parameter> is a context which supports being
+            bound without read and draw surfaces. In this case the context
+            is made current without a default framebuffer. The meaning of
+            this is defined by the client API of the supporting context (see
+            chapter 4 of the OpenGL 3.0 Specification, and the
+            <constant>GL_OES_surfaceless_context</constant> OpenGL ES
+            extension.).
+        </para>
+        <para>
+            The first time a OpenGL or OpenGL ES context is made current the
+            viewport and scissor dimensions are set to the size of the
+            <parameter>draw</parameter> surface (as though
+            <function>glViewport</function>(0,0,w,h) and
+            <function>glScissor</function>(0,0,<parameter>w</parameter>,<parameter>h</parameter>)
+            were called, where <parameter>w</parameter> and
+            <parameter>h</parameter> are the width and height of the
+            surface, respectively). However, the viewport and scissor
+            dimensions are not modified when <parameter>context</parameter>
+            is subsequently made current. The client is responsible for
+            resetting the viewport and scissor in this case.
+        </para>
+        <para>
+            The first time <parameter>context</parameter> is made current,
+            if it is without a default framebuffer (e.g. both
+            <parameter>draw</parameter> and <parameter>read</parameter> are
+            <constant>EGL_NO_SURFACE</constant> ), then the viewport and
+            scissor regions are set as though
+            <function>glViewport</function>(0,0,0,0) and
+            <function>glScissor</function>(0,0,0,0) were called.
+        </para>
+        <para>
+            Implementations may delay allocation of auxiliary buffers for a
+            surface until they are required by a context (which may result
+            in the <constant>EGL_BAD_ALLOC</constant> error described
+            above). Once allocated, however, auxiliary buffers and their
+            contents persist until a surface is deleted.
         </para>
         <para>
             Use
@@ -97,81 +179,126 @@
     </refsect1>
     <refsect1 xml:id="errors"><title>Errors</title>
         <para>
-            <constant>EGL_FALSE</constant> is returned on failure,
-            <constant>EGL_TRUE</constant> otherwise. If <constant>EGL_FALSE</constant>
-            is returned, the previously current rendering context and
-            surfaces (if any) remain unchanged.
+            If <parameter>draw</parameter> or <parameter>read</parameter>
+            are not compatible with <parameter>context</parameter>, then an
+            <constant>EGL_BAD_MATCH</constant> error is generated.
         </para>
         <para>
-            <constant>EGL_BAD_DISPLAY</constant> is generated if
-            <parameter>display</parameter> is not an EGL display connection.
+            If <parameter>context</parameter> is current to some other
+            thread, or if either <parameter>draw</parameter> or
+            <parameter>read</parameter> are bound to contexts in another
+            thread, an <constant>EGL_BAD_ACCESS</constant> error is
+            generated.
         </para>
         <para>
-            <constant>EGL_NOT_INITIALIZED</constant> is generated if
-            <parameter>display</parameter> has not been initialized.
+            If binding <parameter>context</parameter> would exceed the
+            number of current contexts of that client API type supported by
+            the implementation, an <constant>EGL_BAD_ACCESS</constant> error
+            is generated.
         </para>
         <para>
-            <constant>EGL_BAD_SURFACE</constant> is generated if
-            <parameter>draw</parameter> or <parameter>read</parameter> is not an
-            EGL surface.
+            If either <parameter>draw</parameter> or
+            <parameter>read</parameter> are pbuffers created with
+            <function>eglCreatePbufferFromClientBuffer</function>, and the
+            underlying bound client API buffers are in use by the client API
+            that created them, an <constant>EGL_BAD_ACCESS</constant> error
+            is generated.
         </para>
         <para>
-            <constant>EGL_BAD_CONTEXT</constant> is generated if
-            <parameter>context</parameter> is not an EGL rendering context.
+            If <parameter>context</parameter> is not a valid context and is
+            not <constant>EGL_NO_CONTEXT</constant>, an
+            <constant>EGL_BAD_CONTEXT</constant> error is generated.
         </para>
         <para>
-            <constant>EGL_BAD_MATCH</constant> is generated if
-            <parameter>draw</parameter> or
-            <parameter>read</parameter>
-            are not compatible with
-            <parameter>context</parameter>, or if
-            <parameter>context</parameter> is set to
-            <constant>EGL_NO_CONTEXT</constant> and
-            <parameter>draw</parameter> or
-            <parameter>read</parameter>
-            are not set to
-            <constant>EGL_NO_SURFACE</constant>, or if
-            <parameter>draw</parameter> or
-            <parameter>read</parameter> are set to
-            <constant>EGL_NO_SURFACE</constant> and
-            <parameter>context</parameter> is not set to
-            <constant>EGL_NO_CONTEXT</constant>.
+            If either <parameter>draw</parameter> or
+            <parameter>read</parameter> are not valid EGL surfaces and are
+            not <constant>EGL_NO_SURFACE</constant>, an
+            <constant>EGL_BAD_SURFACE</constant> error is generated.
         </para>
         <para>
-            <constant>EGL_BAD_ACCESS</constant> is generated if
-            <parameter>context</parameter>
-            is current to some other thread.
+            If <parameter>context</parameter> is
+            <constant>EGL_NO_CONTEXT</constant> and either
+            <parameter>draw</parameter> or <parameter>read</parameter> are
+            not <constant>EGL_NO_SURFACE</constant>, an
+            <constant>EGL_BAD_MATCH</constant> error is generated.
         </para>
         <para>
-            <constant>EGL_BAD_NATIVE_PIXMAP</constant> may be generated if
-            a native pixmap underlying either
-            <parameter>draw</parameter> or
-            <parameter>read</parameter>
-            is no longer valid.
+            If either of <parameter>draw</parameter> or
+            <parameter>read</parameter> is a valid surface and the other is
+            <constant>EGL_NO_SURFACE</constant>, an
+            <constant>EGL_BAD_MATCH</constant> error is generated.
         </para>
         <para>
-            <constant>EGL_BAD_NATIVE_WINDOW</constant> may be generated if
-            a native window underlying either
-            <parameter>draw</parameter> or
-            <parameter>read</parameter>
-            is no longer valid.
+            If <parameter>context</parameter> does not support being bound
+            without <parameter>read</parameter> and
+            <parameter>draw</parameter> surfaces, and both
+            <parameter>draw</parameter> and <parameter>read</parameter> are
+            <constant>EGL_NO_SURFACE</constant>, an
+            <constant>EGL_BAD_MATCH</constant> error is generated.
         </para>
         <para>
-            <constant>EGL_BAD_CURRENT_SURFACE</constant> is generated if
-            the previous context has unflushed commands and the previous surface
-            is no longer valid.
+            If a native window underlying either <parameter>draw</parameter>
+            or <parameter>read</parameter> is no longer valid, an
+            <constant>EGL_BAD_NATIVE_WINDOW</constant> error is generated.
         </para>
         <para>
-            <constant>EGL_BAD_ALLOC</constant> may be generated if
-            allocation of ancillary buffers for <parameter>draw</parameter> or
-            <parameter>read</parameter> were delayed until
-            <function>eglMakeCurrent</function> is called, and there are not
-            enough resources to allocate them.
+            If <parameter>draw</parameter> and <parameter>read</parameter>
+            cannot fit into graphics memory simultaneously, an
+            <constant>EGL_BAD_MATCH</constant> error is generated.
         </para>
         <para>
-            <constant>EGL_CONTEXT_LOST</constant> is generated if a power management
-            event has occurred. The application must destroy all contexts and
-            reinitialise OpenGL ES state and objects to continue rendering.
+            If the previous context of the calling thread has unflushed
+            commands, and the previous surface is no longer valid, an
+            <constant>EGL_BAD_CURRENT_SURFACE</constant> error is generated.
+        </para>
+        <para>
+            If the ancillary buffers for <parameter>draw</parameter> and
+            <parameter>read</parameter> cannot be allocated, an
+            <constant>EGL_BAD_ALLOC</constant> error is generated.
+        </para>
+        <para>
+            If a power management event has occurred, an
+            <constant>EGL_CONTEXT_LOST</constant> error is generated.
+        </para>
+        <para>
+            If any of the following are true:
+
+            <itemizedlist>
+            <listitem>
+                <para>
+                    <parameter>context</parameter> is not
+                    <constant>EGL_NO_CONTEXT</constant>
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <parameter>read</parameter> is not
+                    <constant>EGL_NO_SURFACE</constant>
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    <parameter>draw</parameter> is not
+                    <constant>EGL_NO_SURFACE</constant>
+                </para>
+            </listitem>
+            </itemizedlist>
+
+            then an <constant>EGL_NOT_INITIALIZED</constant> error is
+            generated if <parameter>display</parameter> is a valid but
+            uninitialized display.
+        </para>
+        <para>
+            As with other commands taking <type>EGLDisplay</type>
+            parameters, if <parameter>display</parameter> is not a valid
+            <type>EGLDisplay</type> handle, an
+            <constant>EGL_BAD_DISPLAY</constant> error is generated. (Some
+            implementations have chosen to allow
+            <constant>EGL_NO_DISPLAY</constant> as a valid
+            <parameter>display</parameter> parameter for
+            <function>eglMakeCurrent</function>. This behavior is not
+            portable to all EGL implementations, and should be considered as
+            an undocumented vendor extension).
         </para>
     </refsect1>
     <refsect1 xml:id="seealso"><title>See Also</title>
diff --git a/sdk/docs/man/eglQueryString.xml b/sdk/docs/man/eglQueryString.xml
index ee0e715..17fa9e0 100755
--- a/sdk/docs/man/eglQueryString.xml
+++ b/sdk/docs/man/eglQueryString.xml
@@ -1,7 +1,7 @@
 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglQueryString">
     <info>
          <copyright>
-             <year>2003-2014</year>
+             <year>2003-2018</year>
              <holder>The Khronos Group Inc.</holder>
          </copyright>
     </info>
@@ -12,7 +12,8 @@
     <refnamediv>
         <refname>eglQueryString</refname>
         <refpurpose>
-            return a string describing an <acronym>EGL</acronym> display connection
+            return a string describing properties of the EGL client or of an
+            <acronym>EGL</acronym> display connection
         </refpurpose>
     </refnamediv>
     <refsynopsisdiv>
@@ -52,8 +53,9 @@
     <refsect1 xml:id="description"><title>Description</title>
         <para>
             <function>eglQueryString</function> returns a pointer to a
-            static string describing an EGL display connection.
-            <parameter>name</parameter> can be one of the following:
+            static, zero-terminated string describing properties of the EGL
+            client or of an EGL display connection.
+            <parameter>name</parameter> may be one of the following:
         </para>
         <variablelist>
             <varlistentry>
@@ -61,7 +63,7 @@
                 <listitem><para>
                     Returns a string describing which client rendering
                     APIs are supported. The string contains a
-                    space-separate list of API names. The list must
+                    space-separated list of API names. The list must
                     include at least one of <code>OpenGL</code>,
                     <code>OpenGL_ES</code>, or <code>OpenVG</code>.
                     These strings correspond respectively to values
@@ -75,27 +77,61 @@
             <varlistentry>
                 <term><constant>EGL_VENDOR</constant></term>
                 <listitem><para>
-                    Returns the company responsible for this EGL implementation. This
-                    name does not change from release to release.
+                    Returns the name of the vendor responsible for this EGL
+                    implementation. The format and contents of the string
+                    are implementation-dependent.
                 </para></listitem>
             </varlistentry>
             <varlistentry>
                 <term><constant>EGL_VERSION</constant></term>
-                <listitem><para>
-                    Returns a version or release number.
-                    The <constant>EGL_VERSION</constant> string is laid out as
-                    follows:</para>
-                <para>
-                    <replaceable>major_version</replaceable>.<replaceable>minor_version</replaceable>
-                    space
-                    <replaceable>vendor_specific_info</replaceable>
-                </para></listitem>
+                <listitem>
+                    <para>
+                        Returns a version or release number. The
+                        <constant>EGL_VERSION</constant> string is laid out
+                        as follows:
+                    </para>
+                    <para>
+                        <replaceable>major_version</replaceable>.<replaceable>minor_version</replaceable>
+                        space
+                        <replaceable>vendor_specific_info</replaceable>
+                    </para>
+                    <para>
+                        Both the major and minor portions of the version
+                        number are numeric. Their values must match the
+                        <parameter>major</parameter> and
+                        <parameter>minor</parameter> values returned by
+                        <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>.
+                    </para>
+                    <para>
+                        The vendor-specific information is optional; if
+                        present, its format and contents are
+                        implementation-specific.
+                    </para>
+                </listitem>
             </varlistentry>
             <varlistentry>
                 <term><constant>EGL_EXTENSIONS</constant></term>
-                <listitem><para>
-                    Returns a space separated list of supported extensions to EGL.
-                </para></listitem>
+                <listitem>
+                    <para>
+                        Returns a space separated list of supported
+                        extensions to EGL. If there are no extensions, then
+                        the empty string is returned.
+                    </para>
+                    <para>
+                        If <parameter>display</parameter> is
+                        <constant>EGL_NO_DISPLAY</constant>, then the
+                        <constant>EGL_EXTENSIONS</constant> string describes
+                        the set of supported <firstterm>client
+                        extensions</firstterm>. If
+                        <parameter>display</parameter> is a valid,
+                        initialized display, then the
+                        <constant>EGL_EXTENSIONS</constant> string describes
+                        the set of <firstterm>display extensions</firstterm>
+                        supported by that display. The set of supported
+                        client extensions is disjoint from the set of
+                        extensions supported by any given display.
+                    </para>
+                </listitem>
             </varlistentry>
         </variablelist>
     </refsect1>
@@ -104,6 +140,11 @@
             <constant>EGL_CLIENT_APIS</constant> is supported only if
             the EGL version is 1.2 or greater.
         </para>
+        <para>
+            A <parameter>display</parameter> of
+            <constant>EGL_NO_DISPLAY</constant> is supported only if the EGL
+            version is 1.5 or greater.
+        </para>
     </refsect1>
     <refsect1 xml:id="errors"><title>Errors</title>
         <para>
@@ -111,11 +152,16 @@
         </para>
         <para>
             <constant>EGL_BAD_DISPLAY</constant> is generated if
-            <parameter>display</parameter> is not an EGL display connection.
+            <parameter>display</parameter> is not an EGL display connection,
+            unless <parameter>display</parameter> is
+            <constant>EGL_NO_DISPLAY</constant> and
+            <parameter>name</parameter> is
+            <constant>EGL_EXTENSIONS</constant>.
         </para>
         <para>
             <constant>EGL_NOT_INITIALIZED</constant> is generated if
-            <parameter>display</parameter> has not been initialized.
+            <parameter>display</parameter> is a valid but uninitialized
+            EGLDisplay.
         </para>
         <para>
             <constant>EGL_BAD_PARAMETER</constant> is generated if
diff --git a/sdk/docs/man/eglQuerySurface.xml b/sdk/docs/man/eglQuerySurface.xml
index 0e47a8f..574ec71 100755
--- a/sdk/docs/man/eglQuerySurface.xml
+++ b/sdk/docs/man/eglQuerySurface.xml
@@ -1,7 +1,7 @@
 <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglQuerySurface">
     <info>
          <copyright>
-             <year>2003-2014</year>
+             <year>2003-2018</year>
              <holder>The Khronos Group Inc.</holder>
          </copyright>
     </info>
@@ -79,6 +79,15 @@
                 </para></listitem>
             </varlistentry>
             <varlistentry>
+                <term><constant>EGL_GL_COLORSPACE</constant></term>
+                <listitem><para>
+                    Returns the color space used by OpenGL and OpenGL ES
+                    when rendering to the surface, either
+                    <constant>EGL_GL_COLORSPACE_SRGB</constant> or
+                    <constant>EGL_GL_COLORSPACE_LINEAR</constant>.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
                 <term><constant>EGL_HEIGHT</constant></term>
                 <listitem><para>
                     Returns the height of the surface in pixels.
@@ -197,6 +206,24 @@
                 </para></listitem>
             </varlistentry>
             <varlistentry>
+                <term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
+                <listitem><para>
+                    Returns the interpretation of alpha values used by
+                    OpenVG when rendering to the surface, either
+                    <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant> or
+                    <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>EGL_VG_COLORSPACE</constant></term>
+                <listitem><para>
+                    Returns the color space used by OpenVG when rendering to
+                    the surface, either
+                    <constant>EGL_VG_COLORSPACE_sRGB</constant> or
+                    <constant>EGL_VG_COLORSPACE_LINEAR</constant>.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
                 <term><constant>EGL_WIDTH</constant></term>
                 <listitem><para>
                     Returns the width of the surface in pixels.
@@ -206,6 +233,10 @@
     </refsect1>
     <refsect1 xml:id="notes"><title>Notes</title>
         <para>
+            Attribute <constant>EGL_GL_COLORSPACE</constant> is supported
+            only if the EGL version is 1.5 or greater.
+        </para>
+        <para>
             Attribute <constant>EGL_MULTISAMPLE_RESOLVE</constant> is
             supported only if the EGL version is 1.4 or greater.
         </para>
diff --git a/sdk/docs/man/eglSwapBuffers.xml b/sdk/docs/man/eglSwapBuffers.xml
index 1f0e2c0..78ecfa2 100755
--- a/sdk/docs/man/eglSwapBuffers.xml
+++ b/sdk/docs/man/eglSwapBuffers.xml
@@ -47,21 +47,27 @@
     </refsect1>
     <refsect1 xml:id="description"><title>Description</title>
         <para>
-            If <parameter>surface</parameter> is a window surface,
-            <function>eglSwapBuffers</function> posts its color buffer
-            to the associated native window.
+            If <parameter>surface</parameter> is a back-buffered window
+            surface, <function>eglSwapBuffers</function> then the color
+            buffer is copied (posted) native window associated with that
+            surface. If <parameter>surface</parameter> is a single-buffered
+            window, pixmap, or pixel buffer surface,
+            <function>eglSwapBuffers</function> has no effect.
         </para>
         <para>
             The contents of ancillary buffers are always undefined after
-            calling <function>eglSwapBuffers</function>. The contents of
-            the color buffer are left unchanged if the value of the
+            calling <function>eglSwapBuffers</function>. The contents of the
+            color buffer are undefined if the value of the
             <constant>EGL_SWAP_BEHAVIOR</constant> attribute of
-            <parameter>surface</parameter> is
-            <constant>EGL_BUFFER_PRESERVED</constant>, and are undefined
-            if the value is <constant>EGL_BUFFER_DESTROYED</constant>.
-            The value of <constant>EGL_SWAP_BEHAVIOR</constant> can be
-            set for some surfaces using
+            <parameter>surface</parameter> is not
+            <constant>EGL_BUFFER_PRESERVED</constant>. The value of
+            <constant>EGL_SWAP_BEHAVIOR</constant> can be set for some
+            surfaces using
             <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
+            <constant>EGL_SWAP_BEHAVIOR</constant> applies only to the color
+            buffer. EGL has no way to specify or query whether or not
+            ancillary buffers are preserved, and applications should not
+            rely on this behavior.
         </para>
         <para>
             <function>eglSwapBuffers</function> performs an implicit
@@ -74,32 +80,42 @@
             <function>eglSwapBuffers</function>, but are not executed
             until the buffer exchange is completed.
         </para>
+    </refsect1>
+    <refsect1 xml:id="resize"><title>Native Window Resizing</title>
         <para>
-            If <parameter>surface</parameter> is a pixel buffer or a pixmap,
-            <function>eglSwapBuffers</function>
-            has no effect, and no error is generated.
+            If the native window corresponding to
+            <parameter>surface</parameter> has been resized prior to the
+            swap, <parameter>surface</parameter> must be resized to match.
+            <parameter>surface</parameter> will normally be resized by the
+            EGL implementation at the time the native window is resized. If
+            the implementation cannot do this transparently to the client,
+            then <function>eglSwapBuffers</function> must detect the change
+            and resize surface prior to copying its pixels to the native
+            window. If <parameter>surface</parameter> shrinks as a result of
+            resizing, some rendered pixels are lost. If
+            <parameter>surface</parameter> grows, the newly allocated buffer
+            contents are undefined. The resizing behavior described here
+            only maintains consistency of EGL surfaces and native windows;
+            clients are still responsible for detecting window size changes
+            (using platform-specific means) and changing their viewport and
+            scissor regions accordingly.
         </para>
     </refsect1>
     <refsect1 xml:id="notes"><title>Notes</title>
         <para>
-            Attribute <constant>EGL_SWAP_BEHAVIOR</constant> is
-            supported only if the EGL version is 1.2 or greater. In
-            earlier versions, behavior is as though the attribute
-            exists, and always has the value
-            <constant>EGL_BUFFER_DESTROYED</constant>.
+            Attribute <constant>EGL_SWAP_BEHAVIOR</constant> is supported
+            only if the EGL version is 1.2 or greater. In earlier versions,
+            behavior is as though the attribute exists, and always has the
+            value <constant>EGL_BUFFER_DESTROYED</constant>.
         </para>
         <para>
             The EGL 1.4 specification was updated to acknowledge that
-            ancillary buffers are not necessarily preserved after a
-            swap, and that the <constant>EGL_SWAP_BEHAVIOR</constant>
-            attribute applies only to the color buffer. This change in
-            the specification acknowledged the behavior of many shipping
+            ancillary buffers are not necessarily preserved after a swap,
+            and that the <constant>EGL_SWAP_BEHAVIOR</constant> attribute
+            applies only to the color buffer. This change in the
+            specification acknowledged the behavior of many shipping
             implementations, and is not intended to result in behavior
-            changes in any existing implementation. Applications which
-            require preservation of ancillary buffers across a swap
-            should be aware that not all implementations can preserve
-            them, and that EGL 1.4 has no way to query whether or not
-            they are preserved.
+            changes in any existing implementation.
         </para>
     </refsect1>
     <refsect1 xml:id="errors"><title>Errors</title>
@@ -127,8 +143,9 @@
     </refsect1>
     <refsect1 xml:id="seealso"><title>See Also</title>
         <para>
-            <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>,
-            <citerefentry><refentrytitle>eglCopyBuffers</refentrytitle></citerefentry>
+            <function>glFlush</function>,
+            <citerefentry><refentrytitle>eglCopyBuffers</refentrytitle></citerefentry>,
+            <function>vgFlush</function>
         </para>
     </refsect1>
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
diff --git a/sdk/docs/man/eglWaitSync.xml b/sdk/docs/man/eglWaitSync.xml
new file mode 100644
index 0000000..57d5651
--- /dev/null
+++ b/sdk/docs/man/eglWaitSync.xml
@@ -0,0 +1,134 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglWaitSync">
+    <info>
+         <copyright>
+             <year>2018</year>
+             <holder>The Khronos Group Inc.</holder>
+         </copyright>
+    </info>
+    <refmeta>
+        <refentrytitle>eglWaitSync</refentrytitle>
+        <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+        <refname>eglWaitSync</refname>
+        <refpurpose>
+            Wait in the server for a sync object to be signalled
+        </refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>C Specification</title>
+        <funcsynopsis>
+            <funcprototype>
+            <funcdef>EGLBoolean <function>eglWaitSync</function></funcdef>
+            <paramdef>(EGLDisplay <parameter>display</parameter></paramdef>
+            <paramdef>EGLSync <parameter>sync</parameter></paramdef>
+            <paramdef>EGLint <parameter>flags</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+    </refsynopsisdiv>
+    <refsect1 xml:id="parameters"><title>Parameters</title>
+        <variablelist>
+            <varlistentry>
+                <term><parameter>display</parameter></term>
+                <listitem><para>
+                    Specifies the <acronym>EGL</acronym> display connection.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>sync</parameter></term>
+                <listitem><para>
+                    Specifies the sync object to wait on.
+                </para></listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><parameter>flags</parameter></term>
+                <listitem><para>
+                    Specifies flags controlling wait behavior.
+                </para></listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 xml:id="description"><title>Description</title>
+        <para>
+            <function>eglWaitSync</function> is similar to
+            <function>eglClientWaitSync</function>, but instead of blocking
+            and not returning to the application until
+            <parameter>sync</parameter> is signaled,
+            <function>eglWaitSync</function> returns immediately. On
+            success, <constant>EGL_TRUE</constant> is returned, and the
+            server for the client API context will block until
+            <parameter>sync</parameter> is signaled.
+        </para>
+        <para>
+            Note: <function>eglWaitSync</function> allows applications to
+            continue to queue commands from the application in anticipation
+            of the sync being signaled, potentially increasing parallelism
+            between application, client API server code, and the GPU. The
+            server only blocks execution of commands for the specific
+            context on which <function>eglWaitSync</function> was issued;
+            other contexts implemented by the same server are not affected..
+        </para>
+        <para>
+            <parameter>sync</parameter> has the same meaning as for
+            <function>eglClientWaitSync</function>.
+        </para>
+        <para>
+            <parameter>flags</parameter> must be 0.
+        </para>
+        <para>
+            <function>eglWaitSync</function> requires support from the bound
+            client API, and will not succeed unless the same client API
+            properties described for creation of fence syncs in
+            <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>
+            are satisfied.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="errors"><title>Errors</title>
+        <para>
+            <function>eglWaitSync</function> returns
+            <constant>EGL_FALSE</constant> on failure, and does not cause
+            the server for the client API context to block.
+        </para>
+        <para>
+            If the current context for the currently bound client API does
+            not support server waits, an <constant>EGL_BAD_MATCH</constant>
+            error is generated.
+        </para>
+        <para>
+            If no context is current for the currently bound client API
+            (i.e., <function>eglGetCurrentContext</function> returns
+            <constant>EGL_NO_CONTEXT</constant>), an
+            <constant>EGL_BAD_MATCH</constant> error is generated.
+        </para>
+        <para>
+            If <parameter>display</parameter> does not match the
+            <type>EGLDisplay</type> passed to
+            <function>eglCreateSync</function> when
+            <parameter>sync</parameter> was created, the behavior is
+            undefined.
+        </para>
+        <para>
+            If <parameter>sync</parameter> is not a valid sync object for
+            <parameter>display</parameter>, an
+            <constant>EGL_BAD_PARAMETER</constant> error is generated.
+        </para>
+        <para>
+            If <parameter>flags</parameter> is not 0, an
+            <constant>EGL_BAD_PARAMETER</constant> error is generated.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="notes"><title>Notes</title>
+        <para>
+            <function>eglWaitSync</function> is available only if the EGL
+            version is 1.5 or greater.
+        </para>
+    </refsect1>
+    <refsect1 xml:id="seealso"><title>See Also</title>
+        <para>
+            <citerefentry><refentrytitle>eglClientWaitSync</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>
+        </para>
+    </refsect1>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/sdk/docs/man/html/Makefile b/sdk/docs/man/html/Makefile
index e8318cd..701fcc2 100644
--- a/sdk/docs/man/html/Makefile
+++ b/sdk/docs/man/html/Makefile
@@ -16,14 +16,21 @@
     eglBindAPI.xhtml \
     eglBindTexImage.xhtml \
     eglChooseConfig.xhtml \
+    eglClientWaitSync.xhtml \
     eglCopyBuffers.xhtml \
     eglCreateContext.xhtml \
+    eglCreateImage.xhtml \
     eglCreatePbufferSurface.xhtml \
     eglCreatePbufferFromClientBuffer.xhtml \
     eglCreatePixmapSurface.xhtml \
+    eglCreatePlatformPixmapSurface.xhtml \
+    eglCreatePlatformWindowSurface.xhtml \
+    eglCreateSync.xhtml \
     eglCreateWindowSurface.xhtml \
     eglDestroyContext.xhtml \
+    eglDestroyImage.xhtml \
     eglDestroySurface.xhtml \
+    eglDestroySync.xhtml \
     eglGetConfigAttrib.xhtml \
     eglGetConfigs.xhtml \
     eglGetCurrentContext.xhtml \
@@ -31,7 +38,9 @@
     eglGetCurrentSurface.xhtml \
     eglGetDisplay.xhtml \
     eglGetError.xhtml \
+    eglGetPlatformDisplay.xhtml \
     eglGetProcAddress.xhtml \
+    eglGetSyncAttrib.xhtml \
     eglInitialize.xhtml \
     eglIntro.xhtml \
     eglMakeCurrent.xhtml \
@@ -47,7 +56,8 @@
     eglTerminate.xhtml \
     eglWaitClient.xhtml \
     eglWaitGL.xhtml \
-    eglWaitNative.xhtml
+    eglWaitNative.xhtml \
+    eglWaitSync.xhtml
 
 XML    = $(EGLXML)
 
diff --git a/sdk/docs/man/html/eglBindAPI.xhtml b/sdk/docs/man/html/eglBindAPI.xhtml
index 5454d22..dbf34c3 100644
--- a/sdk/docs/man/html/eglBindAPI.xhtml
+++ b/sdk/docs/man/html/eglBindAPI.xhtml
@@ -3,7 +3,7 @@
   <head>
     <title xmlns:xlink="http://www.w3.org/1999/xlink">eglBindAPI - EGL Reference Pages</title>
     <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
-    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
   </head>
   <body>
     <header/>
@@ -62,6 +62,7 @@
             <code class="function">eglGetCurrentDisplay</code>,
             <code class="function">eglGetCurrentSurface</code>,
             <code class="function">eglMakeCurrent</code>,
+            <code class="function">eglSwapInterval</code>,
             <code class="function">eglWaitClient</code>, and
             <code class="function">eglWaitNative</code>.
         </p>
@@ -130,6 +131,7 @@
             <a class="citerefentry" href="eglGetCurrentSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a>,
             <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
             <a class="citerefentry" href="eglQueryAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryAPI</span></span></a>,
+            <a class="citerefentry" href="eglSwapInterval.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapInterval</span></span></a>,
             <a class="citerefentry" href="eglWaitClient.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitClient</span></span></a>,
             <a class="citerefentry" href="eglWaitNative.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>
         </p>
diff --git a/sdk/docs/man/html/eglBindTexImage.xhtml b/sdk/docs/man/html/eglBindTexImage.xhtml
index 7e0c88c..a3c6dbb 100644
--- a/sdk/docs/man/html/eglBindTexImage.xhtml
+++ b/sdk/docs/man/html/eglBindTexImage.xhtml
@@ -3,7 +3,7 @@
   <head>
     <title xmlns:xlink="http://www.w3.org/1999/xlink">eglBindTexImage - EGL Reference Pages</title>
     <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
-    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
   </head>
   <body>
     <header/>
diff --git a/sdk/docs/man/html/eglChooseConfig.xhtml b/sdk/docs/man/html/eglChooseConfig.xhtml
index 0b11a33..ffd6b64 100644
--- a/sdk/docs/man/html/eglChooseConfig.xhtml
+++ b/sdk/docs/man/html/eglChooseConfig.xhtml
@@ -3,7 +3,7 @@
   <head>
     <title xmlns:xlink="http://www.w3.org/1999/xlink">eglChooseConfig - EGL Reference Pages</title>
     <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
-    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
   </head>
   <body>
     <header/>
@@ -189,8 +189,7 @@
                     is zero.
                 </p>
               <p>
-                    The alpha mask buffer is used only by OpenGL and
-                    OpenGL ES client APIs.
+                    The alpha mask buffer is used only by OpenVG.
                 </p>
             </dd>
             <dt>
@@ -514,8 +513,9 @@
                     The default value is zero.
                 </p>
               <p>
-                    Most imlementations do not support overlay or
-                    underlay planes (buffer levels other than zero).
+                    Most platforms do not support buffer levels other than
+                    zero. The behavior of windows placed in overlay and
+                    underlay planes depends on the underlying platform.
                 </p>
             </dd>
             <dt>
diff --git a/sdk/docs/man/html/eglClientWaitSync.xhtml b/sdk/docs/man/html/eglClientWaitSync.xhtml
new file mode 100644
index 0000000..daccb25
--- /dev/null
+++ b/sdk/docs/man/html/eglClientWaitSync.xhtml
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title xmlns:xlink="http://www.w3.org/1999/xlink">eglClientWaitSync - EGL Reference Pages</title>
+    <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+  </head>
+  <body>
+    <header/>
+    <div class="refentry" id="eglClientWaitSync">
+      <div class="titlepage"/>
+      <div class="refnamediv">
+        <h2>Name</h2>
+        <p>eglClientWaitSync — 
+            Wait in the client for a sync object to be signalled
+        </p>
+      </div>
+      <div class="refsynopsisdiv">
+        <h2>C Specification</h2>
+        <div class="funcsynopsis">
+          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+            <tr>
+              <td>
+                <code class="funcdef">EGLint <strong class="fsfunc">eglClientWaitSync</strong>(</code>
+              </td>
+              <td>(EGLDisplay <var class="pdparam">display</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLSync <var class="pdparam">sync</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLint <var class="pdparam">flags</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLTime <var class="pdparam">timeout</var><code>)</code>;</td>
+            </tr>
+          </table>
+          <div class="funcprototype-spacer"> </div>
+        </div>
+      </div>
+      <div class="refsect1" id="parameters">
+        <h2>Parameters</h2>
+        <div class="variablelist">
+          <dl class="variablelist">
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>display</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the <abbr class="acronym">EGL</abbr> display connection.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>sync</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the sync object to wait on.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>flags</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies flags controlling wait behavior.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>timeout</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies wait timeout interval.
+                </p>
+            </dd>
+          </dl>
+        </div>
+      </div>
+      <div class="refsect1" id="description">
+        <h2>Description</h2>
+        <p>
+            <code class="function">eglClientWaitSync</code> blocks the calling thread
+            until the specified sync object <em class="parameter"><code>sync</code></em> is
+            signaled, or until <em class="parameter"><code>timeout</code></em> nanoseconds
+            have passed.
+        </p>
+        <p>
+            More than one <code class="function">eglClientWaitSync</code> may be
+            outstanding on the same <em class="parameter"><code>sync</code></em> at any given
+            time. When there are multiple threads blocked on the same
+            <em class="parameter"><code>sync</code></em> and the sync object is signaled, all
+            such threads are released, but the order in which they are
+            released is not defined.
+        </p>
+        <p>
+            If the value of <em class="parameter"><code>timeout</code></em> is zero, then
+            <code class="function">eglClientWaitSync</code> simply tests the current
+            status of <em class="parameter"><code>sync</code></em>. If the value of
+            <em class="parameter"><code>timeout</code></em> is the special value
+            <code class="constant">EGL_FOREVER</code>, then
+            <code class="function">eglClientWaitSync</code> does not time out. For
+            all other values, <em class="parameter"><code>timeout</code></em> is adjusted to
+            the closest value allowed by the implementation-dependent
+            timeout accuracy, which may be substantially longer than one
+            nanosecond.
+        </p>
+        <p>
+            <code class="function">eglClientWaitSync</code> returns one of three
+            status values describing the reason for returning. A return
+            value of <code class="constant">EGL_TIMEOUT_EXPIRED</code> indicates that
+            the specified timeout period expired before
+            <em class="parameter"><code>sync</code></em> was signaled, or if
+            <em class="parameter"><code>timeout</code></em> is zero, indicates that
+            <em class="parameter"><code>sync</code></em> is not signaled. A return value of
+            <code class="constant">EGL_CONDITION_SATISFIED</code> indicates that
+            <em class="parameter"><code>sync</code></em> was signaled before the timeout
+            expired, which includes the case when
+            <em class="parameter"><code>sync</code></em> was already signaled when
+            <code class="function">eglClientWaitSync</code> was called. If an error
+            occurs then an error is generated and
+            <code class="constant">EGL_FALSE</code> is returned.
+        </p>
+        <p>
+            If the sync object being blocked upon will not be signaled in
+            finite time (for example, by an associated fence command issued
+            previously, but not yet flushed to the graphics pipeline), then
+            <code class="function">eglClientWaitSync</code> may wait forever. To help
+            prevent this behavior, if the
+            <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code> bit is set in
+            <em class="parameter"><code>flags</code></em>, and <em class="parameter"><code>sync</code></em> is
+            unsignaled when <code class="function">eglClientWaitSync</code> is
+            called, then the equivalent of Flush() will be performed for the
+            current API context (i.e., the context returned by
+            <code class="function">eglGetCurrentContext</code>) before blocking on
+            <em class="parameter"><code>sync</code></em>. If no context is current for the
+            bound API, the <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code>
+            bit is ignored.
+        </p>
+        <p>
+            Note: the simple Flush behavior defined by
+            <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code> will not help
+            when waiting for a fence command issued in a different context's
+            command stream. Applications which block on a fence sync object
+            must take additional steps to ensure that the context from which
+            the associated fence command was issued has flushed that command
+            to the graphics pipeline.
+        </p>
+      </div>
+      <div class="refsect1" id="errors">
+        <h2>Errors</h2>
+        <p>
+            <code class="function">eglClientWaitSync</code> returns
+            <code class="constant">EGL_FALSE</code> on failure.
+        </p>
+        <p>
+            If <em class="parameter"><code>sync</code></em> is not a valid sync object for
+            <em class="parameter"><code>display</code></em>, an
+            <code class="constant">EGL_BAD_PARAMETER</code> error is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>display</code></em> does not match the
+            <span class="type">EGLDisplay</span> passed to
+            <code class="function">eglCreateSync</code> when
+            <em class="parameter"><code>sync</code></em> was created, the behaviour is
+            undefined.
+        </p>
+      </div>
+      <div class="refsect1" id="notes">
+        <h2>Notes</h2>
+        <p>
+            <code class="function">eglClientWaitSync</code> is available only if the
+            EGL version is 1.5 or greater.
+        </p>
+      </div>
+      <div class="refsect1" id="seealso">
+        <h2>See Also</h2>
+        <p>
+            <a class="citerefentry" href="eglCreateSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateSync</span></span></a>,
+            <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
+            <a class="citerefentry" href="eglWaitSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitSync</span></span></a>,
+            <code class="function">glFinish</code>,
+            <code class="function">vgFinish</code>
+        </p>
+      </div>
+      <p>
+    </p>
+      <div class="refsect3" id="copyright">
+        <img src="KhronosLogo.jpg"/>
+        <p>
+            Copyright © 2003-2014 The Khronos Group Inc.
+            Permission is hereby granted, free of charge, to any person obtaining a
+            copy of this software and/or associated documentation files (the
+            "Materials"), to deal in the Materials without restriction, including
+            without limitation the rights to use, copy, modify, merge, publish,
+            distribute, sublicense, and/or sell copies of the Materials, and to
+            permit persons to whom the Materials are furnished to do so, subject to
+            the condition that this copyright notice and permission notice shall be included
+            in all copies or substantial portions of the Materials.
+        </p>
+      </div>
+      <p>
+</p>
+    </div>
+    <footer/>
+  </body>
+</html>
diff --git a/sdk/docs/man/html/eglCopyBuffers.xhtml b/sdk/docs/man/html/eglCopyBuffers.xhtml
index e8b1659..c5c10aa 100644
--- a/sdk/docs/man/html/eglCopyBuffers.xhtml
+++ b/sdk/docs/man/html/eglCopyBuffers.xhtml
@@ -3,7 +3,7 @@
   <head>
     <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCopyBuffers - EGL Reference Pages</title>
     <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
-    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
   </head>
   <body>
     <header/>
diff --git a/sdk/docs/man/html/eglCreateContext.xhtml b/sdk/docs/man/html/eglCreateContext.xhtml
index 165a742..3b60280 100644
--- a/sdk/docs/man/html/eglCreateContext.xhtml
+++ b/sdk/docs/man/html/eglCreateContext.xhtml
@@ -3,7 +3,7 @@
   <head>
     <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreateContext - EGL Reference Pages</title>
     <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
-    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
   </head>
   <body>
     <header/>
@@ -144,137 +144,143 @@
           <dl class="variablelist">
             <dt>
               <span class="term">
-                <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code>
+                <code class="constant">EGL_CONTEXT_MAJOR_VERSION</code>
               </span>
             </dt>
             <dd>
               <p>
-                    Must be followed by an integer that determines which
-                    version of an OpenGL ES context to create. A value
-                    of 1 specifies creation of an OpenGL ES 1.x context.
-                    An attribute value of 2 specifies creation of an
-                    OpenGL ES 2.x context. The default value is 1. This
-                    attribute can only be specified when creating a
-                    OpenGL ES context (e.g. when the current rendering
-                    API is <code class="constant">EGL_OPENGL_ES_API</code>).
+                    Must be followed by an integer specifying the requested
+                    major version of an OpenGL or OpenGL ES context. The
+                    default value is 1. This attribute is an alias of the
+                    older <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code>,
+                    and the tokens may be used interchangeably.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_CONTEXT_MINOR_VERSION</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Must be followed by an integer specifying the requested
+                    minor version of an OpenGL or OpenGL ES context. The
+                    default value is 0.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_CONTEXT_OPENGL_PROFILE_MASK</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Must be followed by an integer bitmask specifying the
+                    <em class="firstterm">profile</em> of an OpenGL context.
+                    Bits which may be set include
+                    <code class="constant">EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT</code>
+                    for a core profile and
+                    <code class="constant">EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT</code>
+                    for a compatibility profile. The default value is
+                    <code class="constant">EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT</code>.
+                    All OpenGL 3.2 and later implementations are required to
+                    implement the core profile, but implementation of the
+                    compatibility profile is optional.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_CONTEXT_OPENGL_DEBUG</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Must be followed by <code class="constant">EGL_TRUE</code>,
+                    specifying that an OpenGL or OpenGL ES <em class="firstterm">debug
+                    context</em> should be created, or
+                    <code class="constant">EGL_FALSE</code>, if a non-debug context
+                    should be created. The default value is
+                    <code class="constant">EGL_FALSE</code>.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Must be followed by <code class="constant">EGL_TRUE</code>,
+                    specifying that a
+                    <em class="firstterm">forward-compatible</em> OpenGL context
+                    should be created, or <code class="constant">EGL_FALSE</code>, if
+                    a non-forward-compatible context should be created. The
+                    default value is <code class="constant">EGL_FALSE</code>.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_CONTEXT_OPENGL_ROBUST_ACCESS</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Must be followed by <code class="constant">EGL_TRUE</code>,
+                    specifying that an OpenGL or OpenGL ES context
+                    supporting <em class="firstterm">robust buffer access</em>
+                    should be created, or <code class="constant">EGL_FALSE</code>, if
+                    a non-robust context should be created. The default
+                    value is <code class="constant">EGL_FALSE</code>.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Must be followed by
+                    <code class="constant">EGL_LOSE_CONTEXT_ON_RESET</code>,
+                    specifying that an OpenGL or OpenGL ES context with
+                    reset notification behavior
+                    <code class="constant">GL_LOSE_CONTEXT_ON_RESET_ARB</code> should
+                    be created, or
+                    <code class="constant">EGL_NO_RESET_NOTIFICATION</code>,
+                    specifying that an OpenGL or OpenGL ES context with
+                    reset notification behavior
+                    <code class="constant">GL_NO_RESET_NOTIFICATION_ARB</code> should
+                    be created, as described by the
+                    <code class="constant">GL_ARB_robustness</code> extension.
+                </p>
+              <p>
+                    If the
+                    <code class="constant">EGL_CONTEXT_OPENGL_ROBUST_ACCESS</code>
+                    attribute is not set to <code class="constant">EGL_TRUE</code>,
+                    context creation will not fail, but the resulting
+                    context may not support robust buffer access, and
+                    therefore may not support the requested reset
+                    notification strategy The default value for
+                    <code class="constant">EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY</code>
+                    is <code class="constant">EGL_NO_RESET_NOTIFICATION</code> .
                 </p>
             </dd>
           </dl>
         </div>
-      </div>
-      <div class="refsect1" id="notes">
-        <h2>Notes</h2>
         <p>
-            The current rendering API is only respected if the EGL
-            version is 1.2 or greater. Otherwise, an OpenGL ES context
-            will always be created.
-        </p>
-        <p>
-            The <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code>
-            attribute is only supported if the EGL version is 1.3 or
-            greater.
-        </p>
-        <p>
-            A <em class="firstterm">process</em> is a single execution environment,
-            implemented in a single address space, consisting of one or more threads.
-        </p>
-        <p>
-            A <em class="firstterm">thread</em> is one of a set of subprocesses that
-            share a single address space, but maintain separate program counters,
-            stack spaces, and other related global data.
-            A thread is the only member of its subprocess group is equivalent to a
-            process.
+            There are many possible interactions between requested OpenGL
+            and OpenGL ES context creation attributes, depending on the API
+            versions and extensions supported by the implementation. These
+            interactions are described in detail in the EGL 1.5
+            Specification, but are not listed here for compactness. The
+            requested attributes may not be able to be satisfied, but
+            context creation may still succeed. Applications should ensure
+            that the OpenGL or OpenGL ES contexts supports needed features
+            before using them, by determining the actual context version,
+            supported extensions, and supported context flags using runtime
+            queries.
         </p>
       </div>
-      <div class="refsect1" id="errors">
-        <h2>Errors</h2>
-        <p>
-            <code class="constant">EGL_NO_CONTEXT</code> is returned if creation of
-            the context fails.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_MATCH</code> is generated if the
-            current rendering API is <code class="constant">EGL_NONE</code> (this
-            can only arise in an EGL implementation which does not
-            support OpenGL ES, prior to the first call to
-            <code class="function">eglBindAPI</code>).
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_MATCH</code> is generated if the
-            server context state for
-            <em class="parameter"><code>share_context</code></em> exists in an address
-            space which cannot be shared with the newly created context,
-            if <em class="parameter"><code>share_context</code></em> was created on a
-            different display than the one referenced by
-            <em class="parameter"><code>config</code></em>, or if the contexts are
-            otherwise incompatible.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_DISPLAY</code> is generated if
-            <em class="parameter"><code>display</code></em> is not an EGL display connection.
-        </p>
-        <p>
-            <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
-            <em class="parameter"><code>display</code></em> has not been initialized.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_CONFIG</code> is generated if
-            <em class="parameter"><code>config</code></em> is not an EGL frame buffer
-            configuration, or does not support the current rendering
-            API. This includes requesting creation of an OpenGL ES 1.x
-            context when the <code class="constant">EGL_RENDERABLE_TYPE</code>
-            attribute of <em class="parameter"><code>config</code></em> does not contain
-            <code class="constant">EGL_OPENGL_ES_BIT</code>, or creation of an
-            OpenGL ES 2.x context when the attribute does not contain
-            <code class="constant">EGL_OPENGL_ES2_BIT</code>.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_CONTEXT</code> is generated if
-            <em class="parameter"><code>share_context</code></em> is not an EGL rendering
-            context of the same client API type as the newly created
-            context and is not <code class="constant">EGL_NO_CONTEXT</code>.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
-            <em class="parameter"><code>attrib_list</code></em> contains an invalid
-            context attribute or if an attribute is not recognized or
-            out of range. Note that attribute
-            <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code> is
-            only valid when the current rendering API is
-            <code class="constant">EGL_OPENGL_ES_API</code>.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
-            enough resources to allocate the new context.
-        </p>
-      </div>
-      <div class="refsect1" id="seealso">
-        <h2>See Also</h2>
-        <p>
-            <a class="citerefentry" href="eglDestroyContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroyContext</span></span></a>,
-            <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
-            <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
-            <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
-        </p>
-      </div>
-      <p>
-    </p>
-      <div class="refsect3" id="copyright">
-        <img src="KhronosLogo.jpg"/>
-        <p>
-            Copyright © 2003-2014 The Khronos Group Inc.
-            Permission is hereby granted, free of charge, to any person obtaining a
-            copy of this software and/or associated documentation files (the
-            "Materials"), to deal in the Materials without restriction, including
-            without limitation the rights to use, copy, modify, merge, publish,
-            distribute, sublicense, and/or sell copies of the Materials, and to
-            permit persons to whom the Materials are furnished to do so, subject to
-            the condition that this copyright notice and permission notice shall be included
-            in all copies or substantial portions of the Materials.
-        </p>
-      </div>
-      <p>
-</p>
     </div>
     <footer/>
   </body>
diff --git a/sdk/docs/man/html/eglCreateImage.xhtml b/sdk/docs/man/html/eglCreateImage.xhtml
new file mode 100644
index 0000000..633cd0b
--- /dev/null
+++ b/sdk/docs/man/html/eglCreateImage.xhtml
@@ -0,0 +1,774 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreateImage - EGL Reference Pages</title>
+    <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+  </head>
+  <body>
+    <header/>
+    <div class="refentry" id="eglCreateImage">
+      <div class="titlepage"/>
+      <div class="refnamediv">
+        <h2>Name</h2>
+        <p>eglCreateImage — 
+            Create a new <span class="type">EGLImage</span> object
+        </p>
+      </div>
+      <div class="refsynopsisdiv">
+        <h2>C Specification</h2>
+        <div class="funcsynopsis">
+          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+            <tr>
+              <td>
+                <code class="funcdef">EGLImage <strong class="fsfunc">eglCreateImage</strong>(</code>
+              </td>
+              <td>(EGLDisplay <var class="pdparam">display</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLContext <var class="pdparam">context</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLenum <var class="pdparam">target</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLClientBuffer <var class="pdparam">buffer</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>const EGLAttrib *<var class="pdparam">attrib_list</var><code>)</code>;</td>
+            </tr>
+          </table>
+          <div class="funcprototype-spacer"> </div>
+        </div>
+      </div>
+      <div class="refsect1" id="parameters">
+        <h2>Parameters</h2>
+        <div class="variablelist">
+          <dl class="variablelist">
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>display</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the <abbr class="acronym">EGL</abbr> display connection.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>context</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the client API context for which the image is
+                    created.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>target</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the type of resource used as the image source.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>buffer</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the resource to be used as the image source.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>attrib_list</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies attributes used to select sub-sections of the
+                    resource to be used as the image source.
+                </p>
+            </dd>
+          </dl>
+        </div>
+      </div>
+      <div class="refsect1" id="description">
+        <h2>Description</h2>
+        <p>
+            <code class="function">eglCreateImage</code> is used to create an
+            <span class="type">EGLImage</span> object from an existing image resource
+            <em class="parameter"><code>buffer</code></em>. <em class="parameter"><code>display</code></em>
+            specifies the EGL display used for this operation.
+            <em class="parameter"><code>context</code></em> specifies the EGL client API
+            context used for this operation, or
+            <code class="constant">EGL_NO_CONTEXT</code> if a client API context is
+            not required. <em class="parameter"><code>target</code></em> specifies the type
+            of resource being used as the <span class="type">EGLImage</span> source
+            (examples include two-dimensional textures in OpenGL ES contexts
+            and <span class="type">VGImage</span> objects in OpenVG contexts).
+            <em class="parameter"><code>buffer</code></em> is the name (or handle) of a
+            resource to be used as the <span class="type">EGLImage</span> source, cast
+            into the type <span class="type">EGLClientBuffer</span>.
+            <em class="parameter"><code>attrib_list</code></em> is a list of attribute-value
+            pairs which is used to select sub-sections of
+            <em class="parameter"><code>buffer</code></em> for use as the
+            <span class="type">EGLImage</span> source, such as mipmap levels for OpenGL
+            ES texture map resources, as well as behavioral options, such as
+            whether to preserve pixel data during creation. If
+            <em class="parameter"><code>attrib_list</code></em> is
+            non-<code class="constant">NULL</code>, the last attribute specified in
+            the list must be <code class="constant">EGL_NONE</code>.
+        </p>
+        <p>
+            The resource specified by <em class="parameter"><code>display</code></em>,
+            <em class="parameter"><code>context</code></em>, <em class="parameter"><code>target</code></em>,
+            <em class="parameter"><code>buffer</code></em>, and
+            <em class="parameter"><code>attrib_list</code></em> must not itself be an
+            <span class="type">EGLImage</span> sibling, or bound to a pbuffer
+            <span class="type">EGLSurface</span> resource
+            (<code class="function">eglBindTexImage</code>,
+            <code class="function">eglCreatePbufferFromClientBuffer</code>).
+        </p>
+        <p>
+            Values accepted for <em class="parameter"><code>target</code></em> are shown in
+            table <a class="xref" href="#tab-imagetarget" title="Table 1.  Legal values for eglCreateImage target">Table 1, “
+                Legal values for <code class="function">eglCreateImage</code> <em class="parameter"><code>target</code></em>
+            ”</a>.
+        </p>
+        <div class="table" id="tab-imagetarget">
+          <div class="table-title">Table 1. 
+                Legal values for <code class="function">eglCreateImage</code> <em class="parameter"><code>target</code></em>
+            </div>
+          <div class="table-contents">
+            <table style="border-collapse: collapse; border-top: 2px solid ; border-bottom: 2px solid ; border-left: 2px solid ; border-right: 2px solid ; ">
+              <colgroup>
+                <col/>
+                <col/>
+              </colgroup>
+              <thead>
+                <tr>
+                  <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <em class="parameter">
+                      <code>target</code>
+                    </em>
+                  </th>
+                  <th style="text-align: left; border-bottom: 2px solid ; ">Notes</th>
+                </tr>
+              </thead>
+              <tbody>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <code class="constant">EGL_GL_TEXTURE_2D</code>
+                  </td>
+                  <td style="text-align: left; border-bottom: 2px solid ; ">Used for GL 2D texture images</td>
+                </tr>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>
+                  </td>
+                  <td style="text-align: left; border-bottom: 2px solid ; ">Used for the +X face of GL cubemap texture images</td>
+                </tr>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>
+                  </td>
+                  <td style="text-align: left; border-bottom: 2px solid ; ">Used for the -X face of GL cubemap texture images</td>
+                </tr>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>
+                  </td>
+                  <td style="text-align: left; border-bottom: 2px solid ; ">Used for the +Y face of GL cubemap texture images</td>
+                </tr>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>
+                  </td>
+                  <td style="text-align: left; border-bottom: 2px solid ; ">Used for the -Y face of GL cubemap texture images</td>
+                </tr>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>
+                  </td>
+                  <td style="text-align: left; border-bottom: 2px solid ; ">Used for the +Z face of GL cubemap texture images</td>
+                </tr>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>
+                  </td>
+                  <td style="text-align: left; border-bottom: 2px solid ; ">Used for the -Z face of GL cubemap texture images</td>
+                </tr>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <code class="constant">EGL_GL_TEXTURE_3D</code>
+                  </td>
+                  <td style="text-align: left; border-bottom: 2px solid ; ">Used for OpenGL and OpenGL ES 3D texture images</td>
+                </tr>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; ">
+                    <code class="constant">EGL_GL_RENDERBUFFER</code>
+                  </td>
+                  <td style="text-align: left; ">Used for OpenGL and OpenGL ES renderbuffer images</td>
+                </tr>
+              </tbody>
+            </table>
+          </div>
+        </div>
+        <br class="table-break"/>
+        <p>
+            Attribute names accepted in <em class="parameter"><code>attrib_list</code></em>
+            are shown in table <a class="xref" href="#tab-imageattr" title="Table 2.  Legal attributes for eglCreateImage attrib_list parameter">Table 2, “
+                Legal attributes for <code class="function">eglCreateImage</code>
+                <em class="parameter"><code>attrib_list</code></em> parameter
+            ”</a>, together
+            with the <em class="parameter"><code>target</code></em> for which each attribute
+            name is valid, and the default value used for each attribute if
+            it is not included in <em class="parameter"><code>attrib_list</code></em>.
+        </p>
+        <div class="table" id="tab-imageattr">
+          <div class="table-title">Table 2. 
+                Legal attributes for <code class="function">eglCreateImage</code>
+                <em class="parameter"><code>attrib_list</code></em> parameter
+            </div>
+          <div class="table-contents">
+            <table style="border-collapse: collapse; border-top: 2px solid ; border-bottom: 2px solid ; border-left: 2px solid ; border-right: 2px solid ; ">
+              <colgroup>
+                <col/>
+                <col/>
+                <col/>
+                <col/>
+              </colgroup>
+              <thead>
+                <tr>
+                  <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <em class="parameter">
+                      <code>target</code>
+                    </em>
+                  </th>
+                  <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Notes</th>
+                  <td style="border-right: 2px solid ; border-bottom: 2px solid ; " class="auto-generated"> </td>
+                  <td style="border-bottom: 2px solid ; " class="auto-generated"> </td>
+                </tr>
+              </thead>
+              <tbody>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Attribute</td>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Description</td>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Valid <em class="parameter"><code>target</code></em>s</td>
+                  <td style="text-align: left; border-bottom: 2px solid ; ">Default Value</td>
+                </tr>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <code class="constant">EGL_NONE</code>
+                  </td>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Marks the end of the attribute-value list</td>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">All</td>
+                  <td style="text-align: left; border-bottom: 2px solid ; ">N/A</td>
+                </tr>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <code class="constant">EGL_GL_TEXTURE_LEVEL</code>
+                  </td>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                            Specifies the mipmap level used as the
+                            <span class="type">EGLImage</span> source. Must be part of
+                            the complete texture object
+                            <em class="parameter"><code>buffer</code></em>
+                        </td>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                            <code class="constant">EGL_GL_TEXTURE_2D</code>,
+                            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>, or
+                            <code class="constant">EGL_GL_TEXTURE_3D</code>
+                        </td>
+                  <td style="text-align: left; border-bottom: 2px solid ; ">0</td>
+                </tr>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <code class="constant">EGL_GL_TEXTURE_ZOFFSET</code>
+                  </td>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                            Specifies the depth offset of the image to use
+                            as the <span class="type">EGLImage</span> source. Must be
+                            part of the complete texture object
+                            <em class="parameter"><code>buffer</code></em>
+                        </td>
+                  <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+                    <code class="constant">EGL_GL_TEXTURE_3D</code>
+                  </td>
+                  <td style="text-align: left; border-bottom: 2px solid ; ">0</td>
+                </tr>
+                <tr>
+                  <td style="text-align: left; border-right: 2px solid ; ">
+                    <code class="constant">EGL_IMAGE_PRESERVED</code>
+                  </td>
+                  <td style="text-align: left; border-right: 2px solid ; ">Whether to preserve pixel data</td>
+                  <td style="text-align: left; border-right: 2px solid ; ">All</td>
+                  <td style="text-align: left; ">
+                    <code class="constant">EGL_FALSE</code>
+                  </td>
+                </tr>
+              </tbody>
+            </table>
+          </div>
+        </div>
+        <br class="table-break"/>
+        <p>
+            <code class="function">eglCreateImage</code> returns an
+            <span class="type">EGLImage</span> object corresponding to the image data
+            specified by <em class="parameter"><code>display</code></em>,
+            <em class="parameter"><code>context</code></em>, <em class="parameter"><code>target</code></em>,
+            <em class="parameter"><code>buffer</code></em> and
+            <em class="parameter"><code>attrib_list</code></em> which may be referenced by
+            client API operations.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_2D</code>,
+            <code class="constant">EGL_GL_TEXTURE_3D</code>,
+            <code class="constant">EGL_GL_RENDERBUFFER</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>, or
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>,
+            <em class="parameter"><code>display</code></em> must be a valid
+            <span class="type">EGLDisplay</span>, and <em class="parameter"><code>context</code></em> must
+            be a valid OpenGL or OpenGL ES API context on that display.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_2D</code>,
+            <em class="parameter"><code>buffer</code></em> must be the name of a nonzero,
+            <code class="constant">GL_TEXTURE_2D</code> target texture object, cast
+            into the type <span class="type">EGLClientBuffer</span>.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is one of the
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code> enumerants,
+            <em class="parameter"><code>buffer</code></em> must be the name of a nonzero,
+            <code class="constant">GL_TEXTURE_CUBE_MAP</code> (or equivalent in GL
+            extensions) target texture object, cast into the type
+            <span class="type">EGLClientBuffer</span>.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_3D</code>,
+            <em class="parameter"><code>buffer</code></em> must be the name of a nonzero,
+            <code class="constant">GL_TEXTURE_3D</code> (or equivalent in GL
+            extensions) target texture object, cast into the type
+            <span class="type">EGLClientBuffer</span>.
+        </p>
+        <p>
+            <em class="parameter"><code>attrib_list</code></em> should specify the mipmap
+            level (<code class="constant">EGL_GL_TEXTURE_LEVEL</code>) and, where
+            applicable, z-offset
+            (<code class="constant">EGL_GL_TEXTURE_ZOFFSET</code>) which will be used
+            as the <span class="type">EGLImage</span> source; If not specified, the
+            default values listed in table <a class="xref" href="#tab-imageattr" title="Table 2.  Legal attributes for eglCreateImage attrib_list parameter">Table 2, “
+                Legal attributes for <code class="function">eglCreateImage</code>
+                <em class="parameter"><code>attrib_list</code></em> parameter
+            ”</a>
+            will be used instead. Additional values specified in are
+            ignored.
+        </p>
+        <p>
+            There must exist some levels <span class="emphasis"><em>x</em></span> and
+            <span class="emphasis"><em>y</em></span> such that the mipmap level requested lies
+            between <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span>
+            (inclusive), the texture would be mipmap complete were
+            <span class="emphasis"><em>x</em></span> substituted for the base level and
+            <span class="emphasis"><em>y</em></span> substituted for the max level, and all
+            levels less than <span class="emphasis"><em>x</em></span> or greater than
+            <span class="emphasis"><em>y</em></span> are unspecified. For cubemaps a single
+            pair <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span> must
+            apply to all faces. For three-dimensional textures, the
+            specified z-offset must be smaller than the depth of the
+            specified mipmap level.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_RENDERBUFFER</code>,
+            <em class="parameter"><code>buffer</code></em> must be the name of a complete,
+            nonzero, non-multisampled <code class="constant">GL_RENDERBUFFER</code>
+            (or equivalent in extensions) target object, cast into the type
+            <span class="type">EGLClientBuffer</span>. Values specified in
+            <em class="parameter"><code>attrib_list</code></em> are ignored.
+        </p>
+        <p>
+            If the value of attribute
+            <code class="constant">EGL_IMAGE_PRESERVED</code> is
+            <code class="constant">EGL_FALSE</code> (the default), then all pixel
+            data values associated with <em class="parameter"><code>buffer</code></em> will
+            be undefined after <code class="function">eglCreateImage</code> returns.
+        </p>
+        <p>
+            If the value of attribute
+            <code class="constant">EGL_IMAGE_PRESERVED</code> is
+            <code class="constant">EGL_TRUE</code>, then all pixel data values
+            associated with <em class="parameter"><code>buffer</code></em> are preserved.
+        </p>
+      </div>
+      <div class="refsect1" id="errors">
+        <h2>Errors</h2>
+        <p>
+            <code class="function">eglCreateImage</code> returns
+            <code class="constant">EGL_NO_IMAGE</code> on failure. The contents of
+            <em class="parameter"><code>buffer</code></em> will be unaffected.
+        </p>
+        <p>
+            If <em class="parameter"><code>display</code></em> is not the handle of a valid
+            <span class="type">EGLDisplay</span> object, the error
+            <code class="constant">EGL_BAD_DISPLAY</code> is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>context</code></em> is neither the handle of a
+            valid <span class="type">EGLContext</span> object on
+            <em class="parameter"><code>display</code></em> nor
+            <code class="constant">EGL_NO_CONTEXT</code>, the error
+            <code class="constant">EGL_BAD_CONTEXT</code> is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is not one of the values in
+            table <a class="xref" href="#tab-imagetarget" title="Table 1.  Legal values for eglCreateImage target">Table 1, “
+                Legal values for <code class="function">eglCreateImage</code> <em class="parameter"><code>target</code></em>
+            ”</a>, the error
+            <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_2D</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>,
+            <code class="constant">EGL_GL_RENDERBUFFER</code> or
+            <code class="constant">EGL_GL_TEXTURE_3D</code>, and
+            <em class="parameter"><code>display</code></em> is not a valid
+            <span class="type">EGLDisplay</span>, the error
+            <code class="constant">EGL_BAD_DISPLAY</code> is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_2D</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>,
+            <code class="constant">EGL_GL_RENDERBUFFER</code> or
+            <code class="constant">EGL_GL_TEXTURE_3D</code>, and
+            <em class="parameter"><code>context</code></em> is not a valid
+            <span class="type">EGLContext</span>, the error
+            <code class="constant">EGL_BAD_CONTEXT</code> is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_2D</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>,
+            <code class="constant">EGL_GL_RENDERBUFFER</code> or
+            <code class="constant">EGL_GL_TEXTURE_3D</code>, and
+            <em class="parameter"><code>context</code></em> is not a valid GL context, or
+            does not match the <em class="parameter"><code>display</code></em>, the error
+            <code class="constant">EGL_BAD_MATCH</code> is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_2D</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code> or
+            <code class="constant">EGL_GL_TEXTURE_3D</code> and
+            <em class="parameter"><code>buffer</code></em> is not the name of a texture
+            object of type <em class="parameter"><code>target</code></em>, the error
+            <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_RENDERBUFFER</code> and
+            <em class="parameter"><code>buffer</code></em> is not the name of a renderbuffer
+            object, or if <em class="parameter"><code>buffer</code></em> is the name of a
+            multisampled renderbuffer object, the error
+            <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+        </p>
+        <p>
+            If <code class="constant">EGL_GL_TEXTURE_LEVEL</code> is nonzero,
+            <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_2D</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code> or
+            <code class="constant">EGL_GL_TEXTURE_3D</code>, and
+            <em class="parameter"><code>buffer</code></em> is not the name of a complete GL
+            texture object, the error <code class="constant">EGL_BAD_PARAMETER</code>
+            is generated.
+        </p>
+        <p>
+            If <code class="constant">EGL_GL_TEXTURE_LEVEL</code> is 0,
+            <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_2D</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code> or
+            <code class="constant">EGL_GL_TEXTURE_3D</code>,
+            <em class="parameter"><code>buffer</code></em> is the name of an incomplete GL
+            texture object, and any mipmap levels other than mipmap level 0
+            are specified, the error <code class="constant">EGL_BAD_PARAMETER</code>
+            is generated.
+        </p>
+        <p>
+            If <code class="constant">EGL_GL_TEXTURE_LEVEL</code> is 0,
+            <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_2D</code> or
+            <code class="constant">EGL_GL_TEXTURE_3D</code>,
+            <em class="parameter"><code>buffer</code></em> is not the name of a complete GL
+            texture object, and mipmap level 0 is not specified, the error
+            <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+        </p>
+        <p>
+            If <code class="constant">EGL_GL_TEXTURE_LEVEL</code> is 0,
+            <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>,
+            <em class="parameter"><code>buffer</code></em> is not the name of a complete GL
+            texture object, and one or more faces do not have mipmap level 0
+            specified, the error <code class="constant">EGL_BAD_PARAMETER</code> is
+            generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_2D</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>,
+            <code class="constant">EGL_GL_RENDERBUFFER</code> or
+            <code class="constant">EGL_GL_TEXTURE_3D</code> and
+            <em class="parameter"><code>buffer</code></em> refers to the default GL texture
+            object (0) for the corresponding GL target, the error
+            <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_2D</code>,
+            <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>, or
+            <code class="constant">EGL_GL_TEXTURE_3D</code>, and the value specified
+            in <em class="parameter"><code>attrib_list</code></em> for
+            <code class="constant">EGL_GL_TEXTURE_LEVEL</code> is not a valid mipmap
+            level for the specified GL texture object
+            <em class="parameter"><code>buffer</code></em>, the error
+            <code class="constant">EGL_BAD_MATCH</code> is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>target</code></em> is
+            <code class="constant">EGL_GL_TEXTURE_3D</code>, and the value specified
+            in <em class="parameter"><code>attrib_list</code></em> for
+            <code class="constant">EGL_GL_TEXTURE_ZOFFSET</code> exceeds the depth of
+            the specified mipmap level-of-detail in
+            <em class="parameter"><code>buffer</code></em>, the error
+            <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+        </p>
+        <p>
+            If an attribute specified in <em class="parameter"><code>attrib_list</code></em>
+            is not one of the attributes shown in table <a class="xref" href="#tab-imageattr" title="Table 2.  Legal attributes for eglCreateImage attrib_list parameter">Table 2, “
+                Legal attributes for <code class="function">eglCreateImage</code>
+                <em class="parameter"><code>attrib_list</code></em> parameter
+            ”</a>, the error
+            <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+        </p>
+        <p>
+            If an attribute specified in <em class="parameter"><code>attrib_list</code></em>
+            is not a valid attribute for <em class="parameter"><code>target</code></em>, as
+            shown in table <a class="xref" href="#tab-imageattr" title="Table 2.  Legal attributes for eglCreateImage attrib_list parameter">Table 2, “
+                Legal attributes for <code class="function">eglCreateImage</code>
+                <em class="parameter"><code>attrib_list</code></em> parameter
+            ”</a>, the error
+            <code class="constant">EGL_BAD_MATCH</code> is generated.
+        </p>
+        <p>
+            If the resource specified by <em class="parameter"><code>display</code></em>,
+            <em class="parameter"><code>context</code></em>, <em class="parameter"><code>target</code></em>,
+            <em class="parameter"><code>buffer</code></em> and
+            <em class="parameter"><code>attrib_list</code></em> has an off-screen buffer
+            bound to it (e.g., by a previous call to
+            <code class="function">eglBindTexImage</code>), the error
+            <code class="constant">EGL_BAD_ACCESS</code> is generated.
+        </p>
+        <p>
+            If the resource specified by <em class="parameter"><code>display</code></em>,
+            <em class="parameter"><code>context</code></em>, <em class="parameter"><code>target</code></em>,
+            <em class="parameter"><code>buffer</code></em> and
+            <em class="parameter"><code>attrib_list</code></em> is bound to an off-screen
+            buffer (e.g., by a previous call to
+            <code class="function">eglCreatePbufferFromClientBuffer</code>), the
+            error <code class="constant">EGL_BAD_ACCESS</code> is generated.
+        </p>
+        <p>
+            If the resource specified by <em class="parameter"><code>display</code></em>,
+            <em class="parameter"><code>context</code></em>, <em class="parameter"><code>target</code></em>,
+            <em class="parameter"><code>buffer</code></em> and
+            <em class="parameter"><code>attrib_list</code></em> is itself an
+            <span class="type">EGLImage</span> sibling, the error
+            <code class="constant">EGL_BAD_ACCESS</code> is generated.
+        </p>
+        <p>
+            If insufficient memory is available to complete the specified
+            operation, the error <code class="constant">EGL_BAD_ALLOC</code> is
+            generated.
+        </p>
+        <p>
+            If the value specified in <em class="parameter"><code>attrib_list</code></em> for
+            <code class="constant">EGL_IMAGE_PRESERVED</code> is
+            <code class="constant">EGL_TRUE</code>, and an <span class="type">EGLImage</span>
+            handle cannot be created from the specified resource such that
+            the pixel data values in <em class="parameter"><code>buffer</code></em> are
+            preserved, the error <code class="constant">EGL_BAD_ACCESS</code> is
+            generated.
+        </p>
+        <p>
+            Note that the success or failure of
+            <code class="function">eglCreateImage</code> should not affect the
+            ability to use <em class="parameter"><code>buffer</code></em> in its original API
+            context (or context share group) (although the pixel data values
+            will be undefined if the command succeeds and the value of
+            <code class="constant">EGL_IMAGE_PRESERVED</code> is not
+            <code class="constant">EGL_TRUE</code>).
+        </p>
+      </div>
+      <div class="refsect1" id="lifetime">
+        <h2>Lifetime and Usage of <span class="type">EGLImage</span>s</h2>
+        <p>
+            Once an <span class="type">EGLImage</span> is created from an
+            <span class="type">EGLImage</span> source, the memory associated with the
+            <span class="type">EGLImage</span> source will remain allocated (and all
+            <span class="type">EGLImage</span> siblings in all client API contexts will
+            be useable) as long as either of the following conditions is
+            true:
+        </p>
+        <p>
+            </p>
+        <div class="itemizedlist">
+          <ul class="itemizedlist" style="list-style-type: disc; ">
+            <li class="listitem">
+              <p>
+                     Any <span class="type">EGLImage</span> siblings exist in any client
+                     API context
+                </p>
+            </li>
+            <li class="listitem">
+              <p>
+                    The <span class="type">EGLImage</span> object exists inside EGL
+                </p>
+            </li>
+          </ul>
+        </div>
+        <p>
+        </p>
+        <p>
+            The semantics for specifying, deleting and using
+            <span class="type">EGLImage</span> siblings are client API-specific, and are
+            described in the appropriate API specifications.
+        </p>
+        <p>
+            If an application specifies an <span class="type">EGLImage</span> sibling as
+            the destination for rendering and/or pixel download operations
+            (e.g., as an OpenGL or OpenGL ES framebuffer object,
+            <code class="function">glTexSubImage2D</code>, etc.), the modified image
+            results will be observed by all <span class="type">EGLImage</span> siblings
+            in all client API contexts. If multiple client API contexts
+            access <span class="type">EGLImage</span> sibling resources simultaneously,
+            with one or more context modifying the image data, rendering
+            results in all contexts accessing <span class="type">EGLImage</span> siblings
+            are undefined.
+        </p>
+        <p>
+            Respecification and/or deletion of any <span class="type">EGLImage</span>
+            sibling (i.e., both <span class="type">EGLImage</span> source and
+            <span class="type">EGLImage</span> target resources) inside a client API
+            context (by issuing a subsequent call to commands such as
+            <code class="function">glTexImage*</code> or
+            <code class="function">glDeleteTextures</code>, with the
+            <span class="type">EGLImage</span> sibling resource as the target of the
+            operation) affects only that client API context and other
+            contexts within its share group. For an OpenGL or OpenGL ES
+            context, respecification always results in
+            <em class="firstterm">orphaning</em> of the <span class="type">EGLImage</span>,
+            and may also include allocation of additional memory for the
+            respecified resource and/or copying of the <span class="type">EGLImage</span>
+            pixel data.
+        </p>
+        <p>
+            Note: Behavior of other types of client APIs generally follows
+            the OpenGL and OpenGL ES behavior described here, although this
+            is not mandated yet.
+        </p>
+        <p>
+            Operations inside EGL or any client API context which may affect
+            the lifetime of an <span class="type">EGLImage</span> (or the memory
+            allocated for the <span class="type">EGLImage</span>), such as respecifying
+            and/or deleting an <span class="type">EGLImage</span> sibling inside a client
+            API context, must be atomic.
+        </p>
+        <p>
+            Applications may create client API resources from an
+            <span class="type">EGLImage</span> using client API extensions outside the
+            scope of this document (such as
+            <code class="constant">GL_OES_EGL_image</code>, which creates OpenGL ES
+            texture and renderbuffer objects). If the <span class="type">EGLImage</span>
+            used to create the client resource was created with the
+            <code class="constant">EGL_IMAGE_PRESERVED</code> attribute set to
+            <code class="constant">EGL_TRUE</code>, then the pixel data values
+            associated with the image will be preserved after creating the
+            client resource; otherwise, the pixel data values will be
+            undefined. If the <span class="type">EGLImage</span> was created with the
+            <code class="constant">EGL_IMAGE_PRESERVED</code> attribute set to
+            <code class="constant">EGL_TRUE</code>, and EGL is unable to create the
+            client resource without modifying the pixel values, then
+            creation will fail and the pixel data values will be preserved.
+        </p>
+      </div>
+      <div class="refsect1" id="notes">
+        <h2>Notes</h2>
+        <p>
+            <code class="function">eglCreateImage</code> is available only if the EGL
+            version is 1.5 or greater.
+        </p>
+      </div>
+      <div class="refsect1" id="seealso">
+        <h2>See Also</h2>
+        <p>
+            <a class="citerefentry" href="eglBindTexImage.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindTexImage</span></span></a>,
+            <a class="citerefentry" href="eglCreatePbufferFromClientBuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferFromClientBuffer</span></span></a>,
+            <a class="citerefentry" href="eglDestroyImage.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroyImage</span></span></a>,
+            <code class="function">glDeleteTextures</code>,
+            <code class="function">glTexImage*</code>,
+            <code class="function">glTexSubImage2D</code>
+        </p>
+      </div>
+      <p>
+    </p>
+      <div class="refsect3" id="copyright">
+        <img src="KhronosLogo.jpg"/>
+        <p>
+            Copyright © 2003-2014 The Khronos Group Inc.
+            Permission is hereby granted, free of charge, to any person obtaining a
+            copy of this software and/or associated documentation files (the
+            "Materials"), to deal in the Materials without restriction, including
+            without limitation the rights to use, copy, modify, merge, publish,
+            distribute, sublicense, and/or sell copies of the Materials, and to
+            permit persons to whom the Materials are furnished to do so, subject to
+            the condition that this copyright notice and permission notice shall be included
+            in all copies or substantial portions of the Materials.
+        </p>
+      </div>
+      <p>
+</p>
+    </div>
+    <footer/>
+  </body>
+</html>
diff --git a/sdk/docs/man/html/eglCreatePbufferFromClientBuffer.xhtml b/sdk/docs/man/html/eglCreatePbufferFromClientBuffer.xhtml
index 044f859..b6d87bc 100644
--- a/sdk/docs/man/html/eglCreatePbufferFromClientBuffer.xhtml
+++ b/sdk/docs/man/html/eglCreatePbufferFromClientBuffer.xhtml
@@ -3,7 +3,7 @@
   <head>
     <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreatePbufferFromClientBuffer - EGL Reference Pages</title>
     <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
-    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
   </head>
   <body>
     <header/>
@@ -359,6 +359,11 @@
             section above.
         </p>
         <p>
+            <code class="constant">EGL_BAD_ACCESS</code> is generated if the buffers
+            contained in <em class="parameter"><code>buffer</code></em> consist of any
+            <span class="type">EGLImage</span> siblings.
+        </p>
+        <p>
             <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
             enough resources to allocate the new surface.
         </p>
@@ -383,8 +388,9 @@
         </p>
         <p>
             <code class="constant">EGL_BAD_MATCH</code> is generated if
-            <em class="parameter"><code>config</code></em> does not support rendering to pixel buffers
-            (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain
+            <em class="parameter"><code>config</code></em> does not support rendering to
+            pixel buffers (the <code class="constant">EGL_SURFACE_TYPE</code>
+            attribute does not contain
             <code class="constant">EGL_PBUFFER_BIT</code>).
         </p>
         <p>
diff --git a/sdk/docs/man/html/eglCreatePbufferSurface.xhtml b/sdk/docs/man/html/eglCreatePbufferSurface.xhtml
index 271b702..be90560 100644
--- a/sdk/docs/man/html/eglCreatePbufferSurface.xhtml
+++ b/sdk/docs/man/html/eglCreatePbufferSurface.xhtml
@@ -3,7 +3,7 @@
   <head>
     <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreatePbufferSurface - EGL Reference Pages</title>
     <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
-    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
   </head>
   <body>
     <header/>
@@ -100,6 +100,36 @@
           <dl class="variablelist">
             <dt>
               <span class="term">
+                <code class="constant">EGL_GL_COLORSPACE</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the color space used by OpenGL and OpenGL ES
+                    when rendering to the surface. If its value is
+                    <code class="constant">EGL_GL_COLORSPACE_SRGB</code>, then a
+                    non-linear, perceptually uniform color space is assumed,
+                    with a corresponding
+                    <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code>
+                    value of <code class="constant">GL_SRGB</code>. If its value is
+                    <code class="constant">EGL_GL_COLORSPACE_LINEAR</code>, then a
+                    linear color space is assumed, with a corresponding
+                    <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code>
+                    value of <code class="constant">GL_LINEAR</code>. The default
+                    value of <code class="constant">EGL_GL_COLORSPACE</code> is
+                    <code class="constant">EGL_GL_COLORSPACE_SRGB</code>.
+                </p>
+              <p>
+                    Note that the <code class="constant">EGL_GL_COLORSPACE</code>
+                    attribute is used only by OpenGL and OpenGL ES contexts
+                    supporting sRGB framebuffers. EGL itself does not
+                    distinguish multiple colorspace models. Refer to the
+                    ``sRGB Conversion'' sections of the OpenGL 4.6 and
+                    OpenGL ES 3.2 Specifications for more information.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
                 <code class="constant">EGL_HEIGHT</code>
               </span>
             </dt>
@@ -246,6 +276,12 @@
       <div class="refsect1" id="notes">
         <h2>Notes</h2>
         <p>
+            Attribute <code class="constant">EGL_GL_COLORSPACE</code>, and the
+            <code class="constant">EGL_OPENGL_ES3_BIT</code> bit value for attribute
+            <code class="constant">EGL_RENDERABLE_TYPE</code>, are supported only if
+            the EGL version is 1.5 or greater.
+        </p>
+        <p>
             Attributes
             <code class="constant">EGL_RENDERABLE_TYPE</code>,
             <code class="constant">EGL_VG_ALPHA_FORMAT</code>, and
@@ -314,8 +350,9 @@
             rendering (e.g. the EGL version is 1.2 or later, and the
             <code class="constant">EGL_RENDERABLE_TYPE</code> attribute of
             <em class="parameter"><code>config</code></em> does not include at least one
-            of <code class="constant">EGL_OPENGL_ES_BIT</code> or
-            <code class="constant">EGL_OPENGL_ES2_BIT</code>).
+            of <code class="constant">EGL_OPENGL_ES_BIT</code>,
+            <code class="constant">EGL_OPENGL_ES2_BIT</code>), or
+            <code class="constant">EGL_OPENGL_ES3_BIT</code>),
         </p>
         <p>
             <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
diff --git a/sdk/docs/man/html/eglCreatePixmapSurface.xhtml b/sdk/docs/man/html/eglCreatePixmapSurface.xhtml
index 223db7a..cbbeae3 100644
--- a/sdk/docs/man/html/eglCreatePixmapSurface.xhtml
+++ b/sdk/docs/man/html/eglCreatePixmapSurface.xhtml
@@ -3,7 +3,7 @@
   <head>
     <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreatePixmapSurface - EGL Reference Pages</title>
     <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
-    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
   </head>
   <body>
     <header/>
@@ -12,7 +12,7 @@
       <div class="refnamediv">
         <h2>Name</h2>
         <p>eglCreatePixmapSurface — 
-            create a new <abbr class="acronym">EGL</abbr> pixmap surface
+            create a new <abbr class="acronym">EGL</abbr> offscreen surface
         </p>
       </div>
       <div class="refsynopsisdiv">
@@ -97,165 +97,28 @@
       <div class="refsect1" id="description">
         <h2>Description</h2>
         <p>
-            <code class="function">eglCreatePixmapSurface</code> creates an
-            off-screen <abbr class="acronym">EGL</abbr> pixmap surface and returns
-            its handle. If <code class="function">eglCreatePixmapSurface</code>
-            fails to create a pixmap surface,
-            <code class="constant">EGL_NO_SURFACE</code> is returned.
-        </p>
-        <p>
-            Surface attributes are specified as a list of
-            attribute-value pairs, terminated with
-            <code class="constant">EGL_NONE</code>. Accepted attributes
-            are:
-        </p>
-        <div class="variablelist">
-          <dl class="variablelist">
-            <dt>
-              <span class="term">
-                <code class="constant">EGL_VG_ALPHA_FORMAT</code>
-              </span>
-            </dt>
-            <dd>
-              <p>
-                    Specifies how alpha values are interpreted by OpenVG
-                    when rendering to the surface. If its value is
-                    <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>,
-                    then alpha values are not premultipled. If its value
-                    is <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code>,
-                    then alpha values are premultiplied. The default
-                    value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
-                    <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>.
-                </p>
-            </dd>
-            <dt>
-              <span class="term">
-                <code class="constant">EGL_VG_COLORSPACE</code>
-              </span>
-            </dt>
-            <dd>
-              <p>
-                    Specifies the color space used by OpenVG when
-                    rendering to the surface. If its value is
-                    <code class="constant">EGL_VG_COLORSPACE_sRGB</code>, then a
-                    non-linear, perceptually uniform color space is
-                    assumed, with a corresponding
-                    <span class="type">VGImageFormat</span> of form
-                    <code class="constant">VG_s*</code>. If its value is
-                    <code class="constant">EGL_VG_COLORSPACE_LINEAR</code>, then
-                    a linear color space is assumed, with a
-                    corresponding <span class="type">VGImageFormat</span> of form
-                    <code class="constant">VG_l*</code>. The default value of
-                    <code class="constant">EGL_VG_COLORSPACE</code> is
-                    <code class="constant">EGL_VG_COLORSPACE_sRGB</code>.
-                </p>
-            </dd>
-          </dl>
-        </div>
-        <p>
-            Any EGL rendering context that was created with respect to
-            <em class="parameter"><code>config</code></em> can be used to render into the
-            surface. Use
-            <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
-            to attach an EGL rendering context to the surface.
-        </p>
-        <p>
-            Use
-            <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
-            to retrieve the ID of <em class="parameter"><code>config</code></em>.
-        </p>
-        <p>
-            Use <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
-            to destroy the surface.
-        </p>
-      </div>
-      <div class="refsect1" id="notes">
-        <h2>Notes</h2>
-        <p>
-            The <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code> attribute
+            <code class="function">eglCreatePixmapSurface</code> creates an on-screen
+            EGL window surface and returns a handle to it. The behavior of
+            <code class="function">eglCreatePixmapSurface</code> is identical to that
             of
-            <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>
-            can be used to select a frame buffer configuration matching
-            a specified native pixmap.
-        </p>
-        <p>
-            Attributes
-            <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
-            <code class="constant">EGL_VG_COLORSPACE</code>, and the
-            corresponding attribute values, are supported only if the
-            EGL version is 1.2 or greater.
-        </p>
-        <p>
-            The <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
-            <code class="constant">EGL_VG_COLORSPACE</code> attributes are used
-            only by OpenVG. EGL itself, and other client APIs such as
-            OpenGL and OpenGL ES , do not distinguish multiple
-            colorspace models. Refer to section 11.2 of the OpenVG 1.0
-            specification for more information. The native window
-            system's use and interpretation of alpha values is outside
-            the scope of EGL, although the preferred behavior is for the
-            window system to ignore the value of
-            <code class="constant">EGL_VG_ALPHA_FORMAT</code>.
+            <a class="citerefentry" href="eglCreatePlatformPixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePlatformPixmapSurface</span></span></a>
+            except that the set of platforms to which
+            <em class="parameter"><code>display</code></em> is permitted to belong, as well
+            as the actual type of <em class="parameter"><code>native_pixmap</code></em>, are
+            implementation specific.
         </p>
       </div>
       <div class="refsect1" id="errors">
         <h2>Errors</h2>
         <p>
-            <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
-            the context fails.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_DISPLAY</code> is generated if
-            <em class="parameter"><code>display</code></em> is not an EGL display connection.
-        </p>
-        <p>
-            <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
-            <em class="parameter"><code>display</code></em> has not been initialized.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_CONFIG</code> is generated if
-            <em class="parameter"><code>config</code></em> is not an EGL config.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_NATIVE_PIXMAP</code> may be generated if
-            <em class="parameter"><code>native_pixmap</code></em> is not a valid native pixmap.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
-            <em class="parameter"><code>attrib_list</code></em> contains an invalid pixmap attribute
-            or if an attribute value is not recognized or out of range.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
-            enough resources to allocate the new surface.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_MATCH</code> is generated if the attributes of
-            <em class="parameter"><code>native_pixmap</code></em> do not correspond to
-            <em class="parameter"><code>config</code></em> or if
-            <em class="parameter"><code>config</code></em> does not support rendering to pixmaps
-            (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain
-            <code class="constant">EGL_PIXMAP_BIT</code>).
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_MATCH</code> is generated if
-            <em class="parameter"><code>config</code></em> does not support the specified
-            OpenVG alpha format attribute (the value of
-            <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
-            <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code> and the
-            <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> is not set
-            in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
-            <em class="parameter"><code>config</code></em>) or colorspace attribute (the
-            value of <code class="constant">EGL_VG_COLORSPACE</code> is
-            <code class="constant">EGL_VG_COLORSPACE_LINEAR</code> and the
-            <code class="constant">EGL_VG_COLORSPACE_LINEAR_IT</code> is not set
-            in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
-            <em class="parameter"><code>config</code></em>).
+            See errors for
+            <a class="citerefentry" href="eglCreatePlatformPixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePlatformPixmapSurface</span></span></a>.
         </p>
       </div>
       <div class="refsect1" id="seealso">
         <h2>See Also</h2>
         <p>
+            <a class="citerefentry" href="eglCreatePlatformPixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePlatformPixmapSurface</span></span></a>,
             <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
             <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
             <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
diff --git a/sdk/docs/man/html/eglCreatePlatformPixmapSurface.xhtml b/sdk/docs/man/html/eglCreatePlatformPixmapSurface.xhtml
new file mode 100644
index 0000000..b58d4fe
--- /dev/null
+++ b/sdk/docs/man/html/eglCreatePlatformPixmapSurface.xhtml
@@ -0,0 +1,341 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreatePlatformPixmapSurface - EGL Reference Pages</title>
+    <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+  </head>
+  <body>
+    <header/>
+    <div class="refentry" id="eglCreatePlatformPixmapSurface">
+      <div class="titlepage"/>
+      <div class="refnamediv">
+        <h2>Name</h2>
+        <p>eglCreatePlatformPixmapSurface — 
+            create a new <abbr class="acronym">EGL</abbr> offscreen surface
+        </p>
+      </div>
+      <div class="refsynopsisdiv">
+        <h2>C Specification</h2>
+        <div class="funcsynopsis">
+          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+            <tr>
+              <td>
+                <code class="funcdef">EGLSurface <strong class="fsfunc">eglCreatePlatformPixmapSurface</strong>(</code>
+              </td>
+              <td>EGLDisplay <var class="pdparam">display</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLConfig <var class="pdparam">config</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>void * <var class="pdparam">native_pixmap</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLint const * <var class="pdparam">attrib_list</var><code>)</code>;</td>
+            </tr>
+          </table>
+          <div class="funcprototype-spacer"> </div>
+        </div>
+      </div>
+      <div class="refsect1" id="parameters">
+        <h2>Parameters</h2>
+        <div class="variablelist">
+          <dl class="variablelist">
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>display</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>Specifies the EGL display connection.</p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>config</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the EGL frame buffer configuration that defines the
+                    frame buffer resource available to the surface.</p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>native_pixmap</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>Specifies the native pixmap.</p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>attrib_list</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies pixmap surface attributes.
+                    May be <code class="constant">NULL</code> or empty
+                    (first attribute is <code class="constant">EGL_NONE</code>).
+                </p>
+            </dd>
+          </dl>
+        </div>
+      </div>
+      <div class="refsect1" id="description">
+        <h2>Description</h2>
+        <p>
+            <code class="function">eglCreatePlatformPixmapSurface</code> creates an
+            off-screen <abbr class="acronym">EGL</abbr> pixmap surface and returns
+            a handle to it.
+        </p>
+        <p>
+            If <code class="function">eglCreatePlatformPixmapSurface</code> fails to
+            create a pixmap surface, <code class="constant">EGL_NO_SURFACE</code> is
+            returned.
+        </p>
+        <p>
+            <em class="parameter"><code>native_pixmap</code></em> must belong to the same
+            platform as <em class="parameter"><code>display</code></em>, and EGL considers
+            the returned <span class="type">EGLSurface</span> as belonging to that same
+            platform. The EGL extension that defines the platform to which
+            <em class="parameter"><code>display</code></em> belongs also defines the
+            requirements for the <em class="parameter"><code>native_pixmap</code></em>
+            parameter.
+        </p>
+        <p>
+            Surface attributes are specified as a list of
+            attribute-value pairs, terminated with
+            <code class="constant">EGL_NONE</code>. Accepted attributes
+            are:
+        </p>
+        <div class="variablelist">
+          <dl class="variablelist">
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_GL_COLORSPACE</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the color space used by OpenGL and OpenGL ES
+                    when rendering to the surface. If its value is
+                    <code class="constant">EGL_GL_COLORSPACE_SRGB</code>, then a
+                    non-linear, perceptually uniform color space is assumed,
+                    with a corresponding
+                    <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code>
+                    value of <code class="constant">GL_SRGB</code>. If its value is
+                    <code class="constant">EGL_GL_COLORSPACE_LINEAR</code>, then a
+                    linear color space is assumed, with a corresponding
+                    <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code>
+                    value of <code class="constant">GL_LINEAR</code>. The default
+                    value of <code class="constant">EGL_GL_COLORSPACE</code> is
+                    <code class="constant">EGL_GL_COLORSPACE_SRGB</code>.
+                </p>
+              <p>
+                    Note that the <code class="constant">EGL_GL_COLORSPACE</code>
+                    attribute is used only by OpenGL and OpenGL ES contexts
+                    supporting sRGB framebuffers. EGL itself does not
+                    distinguish multiple colorspace models. Refer to the
+                    ``sRGB Conversion'' sections of the OpenGL 4.6 and
+                    OpenGL ES 3.2 Specifications for more information.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_VG_ALPHA_FORMAT</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies how alpha values are interpreted by OpenVG
+                    when rendering to the surface. If its value is
+                    <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>,
+                    then alpha values are not premultipled. If its value
+                    is <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code>,
+                    then alpha values are premultiplied. The default
+                    value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+                    <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_VG_COLORSPACE</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the color space used by OpenVG when
+                    rendering to the surface. If its value is
+                    <code class="constant">EGL_VG_COLORSPACE_sRGB</code>, then a
+                    non-linear, perceptually uniform color space is
+                    assumed, with a corresponding
+                    <span class="type">VGImageFormat</span> of form
+                    <code class="constant">VG_s*</code>. If its value is
+                    <code class="constant">EGL_VG_COLORSPACE_LINEAR</code>, then
+                    a linear color space is assumed, with a
+                    corresponding <span class="type">VGImageFormat</span> of form
+                    <code class="constant">VG_l*</code>. The default value of
+                    <code class="constant">EGL_VG_COLORSPACE</code> is
+                    <code class="constant">EGL_VG_COLORSPACE_sRGB</code>.
+                </p>
+            </dd>
+          </dl>
+        </div>
+        <p>
+            Any EGL rendering context that was created with respect to
+            <em class="parameter"><code>config</code></em> can be used to render into the
+            surface. Use
+            <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+            to attach an EGL rendering context to the surface.
+        </p>
+        <p>
+            Use
+            <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+            to retrieve the ID of <em class="parameter"><code>config</code></em>.
+        </p>
+        <p>
+            Use <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+            to destroy the surface.
+        </p>
+      </div>
+      <div class="refsect1" id="notes">
+        <h2>Notes</h2>
+        <p>
+            The <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code> attribute
+            of
+            <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>
+            can be used to select a frame buffer configuration matching
+            a specified native pixmap.
+        </p>
+        <p>
+            Attribute <code class="constant">EGL_GL_COLORSPACE</code> is supported
+            only if the EGL version is 1.5 or greater.
+        </p>
+        <p>
+            Attributes
+            <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
+            <code class="constant">EGL_VG_COLORSPACE</code>, and the
+            corresponding attribute values, are supported only if the
+            EGL version is 1.2 or greater.
+        </p>
+        <p>
+            The <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
+            <code class="constant">EGL_VG_COLORSPACE</code> attributes are used only
+            by OpenVG and EGL itself. Refer to section 11.2 of the OpenVG
+            1.0 specification for more information. The platform's use and
+            interpretation of alpha values is outside the scope of EGL.
+            However, the preferred behavior is for the window system to
+            ignore the value of <code class="constant">EGL_VG_ALPHA_FORMAT</code>.
+        </p>
+      </div>
+      <div class="refsect1" id="errors">
+        <h2>Errors</h2>
+        <p>
+            If <em class="parameter"><code>display</code></em> and
+            <em class="parameter"><code>native_pixmap</code></em> do not belong to the same
+            platform, then undefined behavior occurs.
+        </p>
+        <p>
+            <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
+            the surface fails.
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+            <em class="parameter"><code>display</code></em> is not an EGL display connection.
+        </p>
+        <p>
+            <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+            <em class="parameter"><code>display</code></em> has not been initialized.
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_CONFIG</code> is generated if
+            <em class="parameter"><code>config</code></em> is not an EGL config.
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_NATIVE_PIXMAP</code> may be generated if
+            <em class="parameter"><code>native_pixmap</code></em> is not a valid native pixmap.
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+            <em class="parameter"><code>attrib_list</code></em> contains an invalid pixmap attribute
+            or if an attribute value is not recognized or out of range.
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_ALLOC</code> is generated if there is
+            already an <span class="type">EGLSurface</span> associated with
+            <em class="parameter"><code>native_pixmap</code></em> (as a result of a previous
+            <code class="function">eglCreatePlatformPixmapSurface</code> call).
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_ALLOC</code> is generated if the
+            implementation cannot allocate resources for the new EGL window.
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_MATCH</code> is generated if the attributes of
+            <em class="parameter"><code>native_pixmap</code></em> do not correspond to
+            <em class="parameter"><code>config</code></em> or if
+            <em class="parameter"><code>config</code></em> does not support rendering to pixmaps
+            (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain
+            <code class="constant">EGL_PIXMAP_BIT</code>).
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_MATCH</code> is generated if
+            <em class="parameter"><code>config</code></em> does not support the specified
+            OpenVG alpha format attribute (the value of
+            <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+            <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code> and the
+            <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> is not set
+            in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+            <em class="parameter"><code>config</code></em>) or colorspace attribute (the
+            value of <code class="constant">EGL_VG_COLORSPACE</code> is
+            <code class="constant">EGL_VG_COLORSPACE_LINEAR</code> and the
+            <code class="constant">EGL_VG_COLORSPACE_LINEAR_IT</code> is not set
+            in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+            <em class="parameter"><code>config</code></em>).
+        </p>
+      </div>
+      <div class="refsect1" id="seealso">
+        <h2>See Also</h2>
+        <p>
+            <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+            <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+            <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+            <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+            <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+        </p>
+      </div>
+      <p>
+    </p>
+      <div class="refsect3" id="copyright">
+        <img src="KhronosLogo.jpg"/>
+        <p>
+            Copyright © 2003-2014 The Khronos Group Inc.
+            Permission is hereby granted, free of charge, to any person obtaining a
+            copy of this software and/or associated documentation files (the
+            "Materials"), to deal in the Materials without restriction, including
+            without limitation the rights to use, copy, modify, merge, publish,
+            distribute, sublicense, and/or sell copies of the Materials, and to
+            permit persons to whom the Materials are furnished to do so, subject to
+            the condition that this copyright notice and permission notice shall be included
+            in all copies or substantial portions of the Materials.
+        </p>
+      </div>
+      <p>
+</p>
+    </div>
+    <footer/>
+  </body>
+</html>
diff --git a/sdk/docs/man/html/eglCreatePlatformWindowSurface.xhtml b/sdk/docs/man/html/eglCreatePlatformWindowSurface.xhtml
new file mode 100644
index 0000000..989a820
--- /dev/null
+++ b/sdk/docs/man/html/eglCreatePlatformWindowSurface.xhtml
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreatePlatformWindowSurface - EGL Reference Pages</title>
+    <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+  </head>
+  <body>
+    <header/>
+    <div class="refentry" id="eglCreatePlatformWindowSurface">
+      <div class="titlepage"/>
+      <div class="refnamediv">
+        <h2>Name</h2>
+        <p>eglCreatePlatformWindowSurface — 
+            create a new <abbr class="acronym">EGL</abbr> on-screen rendering surface
+        </p>
+      </div>
+      <div class="refsynopsisdiv">
+        <h2>C Specification</h2>
+        <div class="funcsynopsis">
+          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+            <tr>
+              <td>
+                <code class="funcdef">EGLSurface <strong class="fsfunc">eglCreatePlatformWindowSurface</strong>(</code>
+              </td>
+              <td>EGLDisplay <var class="pdparam">display</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLConfig <var class="pdparam">config</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>void * <var class="pdparam">native_window</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLAttrib const * <var class="pdparam">attrib_list</var><code>)</code>;</td>
+            </tr>
+          </table>
+          <div class="funcprototype-spacer"> </div>
+        </div>
+      </div>
+      <div class="refsect1" id="parameters">
+        <h2>Parameters</h2>
+        <div class="variablelist">
+          <dl class="variablelist">
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>display</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>Specifies the EGL display connection.</p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>config</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>Specifies the EGL frame buffer configuration that defines the
+                    frame buffer resource available to the surface.</p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>native_window</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>Specifies the native window.</p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>attrib_list</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies a list of attributes for the window surface.
+                    May be <code class="constant">NULL</code> or empty
+                    (first attribute is <code class="constant">EGL_NONE</code>).
+                </p>
+            </dd>
+          </dl>
+        </div>
+      </div>
+      <div class="refsect1" id="description">
+        <h2>Description</h2>
+        <p>
+            <code class="function">eglCreatePlatformWindowSurface</code> creates an
+            on-screen EGL window surface and returns a handle to it. Any EGL
+            context created with a compatible <span class="type">EGLConfig</span> can be
+            used to render into this surface.
+        </p>
+        <p>
+            If <code class="function">eglCreatePlatformWindowSurface</code> fails to
+            create a window surface, <code class="constant">EGL_NO_SURFACE</code> is
+            returned.
+        </p>
+        <p>
+            <em class="parameter"><code>native_window</code></em> must belong to the same
+            platform as <em class="parameter"><code>display</code></em>, and EGL considers
+            the returned <span class="type">EGLSurface</span> as belonging to that same
+            platform. The EGL extension that defines the platform to which
+            <em class="parameter"><code>display</code></em> belongs also defines the
+            requirements for the <em class="parameter"><code>native_window</code></em>
+            parameter.
+        </p>
+        <p>
+            Surface attributes are specified as a list of
+            attribute-value pairs, terminated with
+            <code class="constant">EGL_NONE</code>. Accepted attributes
+            are:
+        </p>
+        <div class="variablelist">
+          <dl class="variablelist">
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_GL_COLORSPACE</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the color space used by OpenGL and OpenGL ES
+                    when rendering to the surface. If its value is
+                    <code class="constant">EGL_GL_COLORSPACE_SRGB</code>, then a
+                    non-linear, perceptually uniform color space is assumed,
+                    with a corresponding
+                    <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code>
+                    value of <code class="constant">GL_SRGB</code>. If its value is
+                    <code class="constant">EGL_GL_COLORSPACE_LINEAR</code>, then a
+                    linear color space is assumed, with a corresponding
+                    <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code>
+                    value of <code class="constant">GL_LINEAR</code>. The default
+                    value of <code class="constant">EGL_GL_COLORSPACE</code> is
+                    <code class="constant">EGL_GL_COLORSPACE_SRGB</code>.
+                </p>
+              <p>
+                    Note that the <code class="constant">EGL_GL_COLORSPACE</code>
+                    attribute is used only by OpenGL and OpenGL ES contexts
+                    supporting sRGB framebuffers. EGL itself does not
+                    distinguish multiple colorspace models. Refer to the
+                    ``sRGB Conversion'' sections of the OpenGL 4.6 and
+                    OpenGL ES 3.2 Specifications for more information.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_RENDER_BUFFER</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies which buffer should be used for client API
+                    rendering to the window. If its value is
+                    <code class="constant">EGL_SINGLE_BUFFER</code>, then client
+                    APIs should render directly into the visible window.
+                    If its value is
+                    <code class="constant">EGL_BACK_BUFFER</code>, then client
+                    APIs should render into the back buffer. The default
+                    value of <code class="constant">EGL_RENDER_BUFFER</code> is
+                    <code class="constant">EGL_BACK_BUFFER</code>.
+                </p>
+              <p>
+                    Client APIs may not be able to respect the requested
+                    rendering buffer. To determine the actual buffer
+                    being rendered to by a context, call
+                    <a class="citerefentry" href="eglQueryContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryContext</span></span></a>.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_VG_ALPHA_FORMAT</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies how alpha values are interpreted by OpenVG
+                    when rendering to the surface. If its value is
+                    <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>,
+                    then alpha values are not premultipled. If its value
+                    is <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code>,
+                    then alpha values are premultiplied. The default
+                    value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+                    <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_VG_COLORSPACE</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the color space used by OpenVG when
+                    rendering to the surface. If its value is
+                    <code class="constant">EGL_VG_COLORSPACE_sRGB</code>, then a
+                    non-linear, perceptually uniform color space is
+                    assumed, with a corresponding
+                    <span class="type">VGImageFormat</span> of form
+                    <code class="constant">VG_s*</code>. If its value is
+                    <code class="constant">EGL_VG_COLORSPACE_LINEAR</code>, then
+                    a linear color space is assumed, with a
+                    corresponding <span class="type">VGImageFormat</span> of form
+                    <code class="constant">VG_l*</code>. The default value of
+                    <code class="constant">EGL_VG_COLORSPACE</code> is
+                    <code class="constant">EGL_VG_COLORSPACE_sRGB</code>.
+                </p>
+            </dd>
+          </dl>
+        </div>
+        <p>
+            Any EGL rendering context that was created with respect to
+            <em class="parameter"><code>config</code></em> can be used to render into the
+            surface. Use
+            <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+            to attach an EGL rendering context to the surface.
+        </p>
+        <p>
+            Use
+            <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+            to retrieve the ID of <em class="parameter"><code>config</code></em>.
+        </p>
+        <p>
+            Use
+            <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+            to destroy the surface.
+        </p>
+      </div>
+      <div class="refsect1" id="notes">
+        <h2>Notes</h2>
+        <p>
+            Attribute <code class="constant">EGL_GL_COLORSPACE</code> is supported
+            only if the EGL version is 1.5 or greater.
+        </p>
+        <p>
+            Attributes <code class="constant">EGL_RENDER_BUFFER</code>,
+            <code class="constant">EGL_VG_ALPHA_FORMAT</code>, and
+            <code class="constant">EGL_VG_COLORSPACE</code>, and the
+            corresponding attribute values, are supported only if the
+            EGL version is 1.2 or greater.
+        </p>
+        <p>
+            The <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
+            <code class="constant">EGL_VG_COLORSPACE</code> attributes are used only
+            by OpenVG and EGL itself. Refer to section 11.2 of the OpenVG
+            1.0 specification for more information. The platform's use and
+            interpretation of alpha values is outside the scope of EGL.
+            However, the preferred behavior is for platforms to ignore the
+            value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> when
+            compositing window surfaces.
+        </p>
+      </div>
+      <div class="refsect1" id="errors">
+        <h2>Errors</h2>
+        <p>
+            If <em class="parameter"><code>display</code></em> and
+            <em class="parameter"><code>native_window</code></em> do not belong to the same
+            platform, then undefined behavior occurs.
+        </p>
+        <p>
+            <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
+            the surface fails.
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+            <em class="parameter"><code>display</code></em> is not an EGL display connection.
+        </p>
+        <p>
+            <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+            <em class="parameter"><code>display</code></em> has not been initialized.
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_CONFIG</code> is generated if
+            <em class="parameter"><code>config</code></em> is not a valid EGL frame buffer
+            configuration.
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_NATIVE_WINDOW</code> may be generated if
+            <em class="parameter"><code>native_window</code></em> is not a valid native
+            window for the same platform as <em class="parameter"><code>display</code></em>.
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+            <em class="parameter"><code>attrib_list</code></em> contains an invalid window attribute
+            or if an attribute value is not recognized or is out of range.
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_ALLOC</code> is generated if there is
+            already an <span class="type">EGLSurface</span> associated with
+            <em class="parameter"><code>native_window</code></em> (as a result of a previous
+            <code class="function">eglCreatePlatformWindowSurface</code> call).
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_ALLOC</code> is generated if the
+            implementation cannot allocate resources for the new EGL window.
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_MATCH</code> is generated if the pixel
+            format of <em class="parameter"><code>native_window</code></em> does not
+            correspond to the format, type, and size of the color buffers
+            required by <em class="parameter"><code>config</code></em>.
+            <code class="constant">EGL_BAD_MATCH</code> is generated if the pixel
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_MATCH</code> is generated if
+            <em class="parameter"><code>config</code></em> does not support rendering to
+            windows (the <code class="constant">EGL_SURFACE_TYPE</code> attribute
+            does not contain <code class="constant">EGL_WINDOW_BIT</code>).
+        </p>
+        <p>
+            <code class="constant">EGL_BAD_MATCH</code> is generated if
+            <em class="parameter"><code>config</code></em> does not support the specified
+            OpenVG alpha format attribute (the value of
+            <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+            <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code> and the
+            <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> is not set
+            in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+            <em class="parameter"><code>config</code></em>) or colorspace attribute (the
+            value of <code class="constant">EGL_VG_COLORSPACE</code> is
+            <code class="constant">EGL_VG_COLORSPACE_LINEAR</code> and the
+            <code class="constant">EGL_VG_COLORSPACE_LINEAR_IT</code> is not set
+            in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+            <em class="parameter"><code>config</code></em>).
+        </p>
+      </div>
+      <div class="refsect1" id="seealso">
+        <h2>See Also</h2>
+        <p>
+            <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+            <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+            <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+            <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+            <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+            <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+        </p>
+      </div>
+      <p>
+    </p>
+      <div class="refsect3" id="copyright">
+        <img src="KhronosLogo.jpg"/>
+        <p>
+            Copyright © 2003-2014 The Khronos Group Inc.
+            Permission is hereby granted, free of charge, to any person obtaining a
+            copy of this software and/or associated documentation files (the
+            "Materials"), to deal in the Materials without restriction, including
+            without limitation the rights to use, copy, modify, merge, publish,
+            distribute, sublicense, and/or sell copies of the Materials, and to
+            permit persons to whom the Materials are furnished to do so, subject to
+            the condition that this copyright notice and permission notice shall be included
+            in all copies or substantial portions of the Materials.
+        </p>
+      </div>
+      <p>
+</p>
+    </div>
+    <footer/>
+  </body>
+</html>
diff --git a/sdk/docs/man/html/eglCreateSync.xhtml b/sdk/docs/man/html/eglCreateSync.xhtml
new file mode 100644
index 0000000..5ca5676
--- /dev/null
+++ b/sdk/docs/man/html/eglCreateSync.xhtml
@@ -0,0 +1,389 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreateSync - EGL Reference Pages</title>
+    <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+  </head>
+  <body>
+    <header/>
+    <div class="refentry" id="eglCreateSync">
+      <div class="titlepage"/>
+      <div class="refnamediv">
+        <h2>Name</h2>
+        <p>eglCreateSync — 
+            create a new <abbr class="acronym">EGL</abbr> sync object
+        </p>
+      </div>
+      <div class="refsynopsisdiv">
+        <h2>C Specification</h2>
+        <div class="funcsynopsis">
+          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+            <tr>
+              <td>
+                <code class="funcdef">EGLSync <strong class="fsfunc">eglCreateSync</strong>(</code>
+              </td>
+              <td>EGLDisplay <var class="pdparam">display</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLEnum <var class="pdparam">type</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLAttrib const * <var class="pdparam">attrib_list</var><code>)</code>;</td>
+            </tr>
+          </table>
+          <div class="funcprototype-spacer"> </div>
+        </div>
+      </div>
+      <div class="refsect1" id="parameters">
+        <h2>Parameters</h2>
+        <div class="variablelist">
+          <dl class="variablelist">
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>display</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the <abbr class="acronym">EGL</abbr> display connection.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>type</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the type of sync object to create.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>attrib_list</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies attributes and attribute values for the sync
+                    object being created.
+                </p>
+            </dd>
+          </dl>
+        </div>
+      </div>
+      <div class="refsect1" id="description">
+        <h2>Description</h2>
+        <p>
+            <em class="firstterm">sync objects</em> are provided to enable
+            synchronization of client API operations between threads and/or
+            between API contexts. Sync objects may be tested or waited upon
+            by application threads.
+        </p>
+        <p>
+            Sync objects have a status with two possible states:
+            <em class="firstterm">signaled</em> and
+            <em class="firstterm">unsignaled</em>. Initially, sync objects are
+            unsignaled. EGL may be asked to wait for a sync object to become
+            signaled, or a sync object's status may be queried.
+        </p>
+        <p>
+            Depending on the type of a sync object, its status may be
+            changed either by an external event, or by explicitly signaling
+            and unsignaling the sync.
+        </p>
+        <p>
+            <code class="function">eglCreateSync</code> creates a sync object of the specified
+            <em class="parameter"><code>type</code></em> associated with the specified display
+            <em class="parameter"><code>display</code></em>, and returns a handle to the new object.
+            <em class="parameter"><code>attrib_list</code></em> is an attribute-value list specifying
+            other attributes of the sync object, terminated by an attribute entry
+            <code class="constant">EGL_NONE</code>. Attributes not specified in the list will be
+            assigned their default values.
+        </p>
+        <p>
+            Once the <em class="firstterm">condition</em> of the sync object is satisfied,
+            the sync is signaled, causing any <code class="function">eglClientWaitSync</code> or
+            <code class="function">eglWaitSync</code> commands blocking on
+            <em class="parameter"><code>sync</code></em> to unblock.
+        </p>
+      </div>
+      <div class="refsect1" id="fencesync">
+        <h2>Creating Fence Sync Objects</h2>
+        <p>
+            If <em class="parameter"><code>type</code></em> is
+            <code class="constant">EGL_SYNC_FENCE</code>, a fence sync object is
+            created. In this case <em class="parameter"><code>attrib_list</code></em> must be
+            <code class="constant">NULL</code> or empty (containing only
+            <code class="constant">EGL_NONE</code>). Attributes of the fence sync
+            object, and their initial values, are:
+        </p>
+        <div class="variablelist">
+          <dl class="variablelist">
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_SYNC_TYPE</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                        <code class="constant">EGL_SYNC_FENCE</code>
+                    </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_SYNC_STATUS</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                        <code class="constant">EGL_UNSIGNALED</code>
+                    </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_SYNC_CONDITION</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                        <code class="constant">EGL_SYNC_PRIOR_COMMANDS_COMPLETE</code>
+                    </p>
+            </dd>
+          </dl>
+        </div>
+        <p>
+            When a fence sync object is created, <code class="function">eglCreateSync</code> also inserts a
+            fence command into the command stream of the bound client API's current
+            context (i.e., the context returned by <code class="function">eglGetCurrentContext</code>), and
+            associates it with the newly created sync object.
+        </p>
+        <p>
+            The only condition supported for fence sync objects is
+            <code class="constant">EGL_SYNC_PRIOR_COMMANDS_COMPLETE</code>, which is satisfied by completion of
+            the fence command corresponding to the sync object, and all preceding
+            commands in the associated client API context's command stream. The sync
+            object will not be signaled until all effects from these commands on the
+            client API's internal and framebuffer state are fully realized. No other
+            state is affected by execution of the fence command.
+        </p>
+        <p>
+            Creation of fence sync objects requires support from the bound
+            client API, and will not succeed unless the client API satisfies
+            one of the following properties. Note that
+            <code class="function">eglWaitSync</code> also requires satisfying these
+            conditions.
+        </p>
+        <p>
+            </p>
+        <div class="itemizedlist">
+          <ul class="itemizedlist" style="list-style-type: disc; ">
+            <li class="listitem">
+              <p>
+                    client API is OpenGL, and either the OpenGL version is
+                    3.2 or greater, or the <code class="constant">GL_ARB_sync</code>
+                    extension is supported.
+                </p>
+            </li>
+            <li class="listitem">
+              <p>
+                    client API is OpenGL ES, and either the OpenGL ES
+                    version is 3.0 or greater, or the
+                    <code class="constant">GL_OES_EGL_sync</code> extension is
+                    supported.
+                </p>
+            </li>
+            <li class="listitem">
+              <p>
+                    client API is OpenVG, and the
+                    <code class="constant">VG_KHR_EGL_sync</code> extension is
+                    supported.
+                </p>
+            </li>
+          </ul>
+        </div>
+        <p>
+        </p>
+      </div>
+      <div class="refsect1" id="openclsync">
+        <h2>Creating OpenCL Event Sync Objects</h2>
+        <p>
+            If <em class="parameter"><code>type</code></em> is
+            <code class="constant">EGL_SYNC_CL_EVENT</code>, an OpenCL event sync
+            object is created. In this case
+            <em class="parameter"><code>attrib_list</code></em> must contain the attribute
+            <code class="constant">EGL_CL_EVENT_HANDLE</code>, set to a valid OpenCL
+            event handle returned by a call to
+            <code class="function">clEnqueueReleaseGLObjects</code> or
+            <code class="function">clEnqueueReleaseEGLObjects</code>; other types of
+            OpenCL event handles are not supported. Note that
+            <code class="constant">EGL_CL_EVENT_HANDLE</code> is not a queriable
+            property of a sync object. Attributes of the OpenCL event sync
+            object, and their initial values, are:
+        </p>
+        <div class="variablelist">
+          <dl class="variablelist">
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_SYNC_TYPE</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                        <code class="constant">EGL_SYNC_CL_EVENT</code>
+                    </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_SYNC_STATUS</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                        Depends on status of <em class="parameter"><code>event</code></em>
+                    </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <code class="constant">EGL_SYNC_CONDITION</code>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                        <code class="constant">EGL_SYNC_CL_EVENT_COMPLETE</code>
+                    </p>
+            </dd>
+          </dl>
+        </div>
+        <p>
+            The status of such a sync object depends on
+            <em class="parameter"><code>event</code></em>. When the status of
+            <em class="parameter"><code>event</code></em> is <code class="constant">CL_QUEUED</code>,
+            <code class="constant">CL_SUBMITTED</code>, or
+            <code class="constant">CL_RUNNING</code>, the status of the linked sync
+            object will be <code class="constant">EGL_UNSIGNALED</code>. When the
+            status of <em class="parameter"><code>event</code></em> changes to
+            <code class="constant">CL_COMPLETE</code>, the status of the linked sync
+            object will become <code class="constant">EGL_SIGNALED</code>.
+        </p>
+        <p>
+            The only condition supported for OpenCL event sync objects is
+            <code class="constant">EGL_SYNC_CL_EVENT_COMPLETE</code>, which is
+            satisfied when the status of the OpenCL event associated with
+            the sync object changes to <code class="constant">CL_COMPLETE</code>.
+        </p>
+        <p>
+            Creating a linked sync object places a reference on the linked
+            OpenCL event object. When the sync object is deleted, the
+            reference will be removed from the event object.
+        </p>
+        <p>
+            However, implementations are not required to validate the OpenCL
+            event, and passing an invalid event handle in
+            <em class="parameter"><code>attrib_list</code></em> may result in undefined
+            behavior up to and including program termination.
+        </p>
+      </div>
+      <div class="refsect1" id="notes">
+        <h2>Notes</h2>
+        <p>
+            <code class="function">eglCreateSync</code> is supported only if the EGL
+            version is 1.5 or greater.
+        </p>
+      </div>
+      <div class="refsect1" id="errors">
+        <h2>Errors</h2>
+        <p>
+            <code class="function">eglCreateSync</code> returns
+            <code class="constant">EGL_NO_SYNC</code> on failure.
+        </p>
+        <p>
+            If <em class="parameter"><code>display</code></em> is not the name of a valid,
+            initialized <span class="type">EGLDisplay</span>, an
+            <code class="constant">EGL_BAD_DISPLAY</code> error is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>attrib_list</code></em> contains an attribute name
+            not defined for the type of sync object being created, an
+            <code class="constant">EGL_BAD_ATTRIBUTE</code> error is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>type</code></em> is not a supported type of sync
+            object, an <code class="constant">EGL_BAD_PARAMETER</code> error is
+            generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>type</code></em> is
+            <code class="constant">EGL_SYNC_FENCE</code> and no context is current
+            for the bound API (i.e.,
+            <code class="function">eglGetCurrentContext</code> returns
+            <code class="constant">EGL_NO_CONTEXT</code>), an
+            <code class="constant">EGL_BAD_MATCH</code> error is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>type</code></em> is
+            <code class="constant">EGL_SYNC_FENCE</code> and
+            <em class="parameter"><code>display</code></em> does not match the
+            <span class="type">EGLDisplay</span> of the currently bound context for the
+            currently bound client API (the <span class="type">EGLDisplay</span> returned
+            by <code class="function">eglGetCurrentDisplay</code>), an
+            <code class="constant">EGL_BAD_MATCH</code> error is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>type</code></em> is
+            <code class="constant">EGL_SYNC_FENCE</code> and the current context for
+            the currently bound client API does not support fence commands,
+            an <code class="constant">EGL_BAD_MATCH</code> error is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>type</code></em> is
+            <code class="constant">EGL_SYNC_CL_EVENT</code> and
+            <code class="constant">EGL_CL_EVENT_HANDLE</code> is not specified in
+            <em class="parameter"><code>attrib_list</code></em>, or its attribute value is
+            not a valid OpenCL event handle as described above, then an
+            <code class="constant">EGL_BAD_ATTRIBUTE</code> error is generated.
+        </p>
+      </div>
+      <div class="refsect1" id="seealso">
+        <h2>See Also</h2>
+        <p>
+            <code class="function">clEnqueueReleaseGLObjects</code>,
+            <code class="function">clEnqueueReleaseEGLObjects</code>,
+            <a class="citerefentry" href="eglClientWaitSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglClientWaitSync</span></span></a>,
+            <a class="citerefentry" href="eglCreateSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateSync</span></span></a>,
+            <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
+            <a class="citerefentry" href="eglGetCurrentDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>,
+            <a class="citerefentry" href="eglWaitSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitSync</span></span></a>
+        </p>
+      </div>
+      <p>
+    </p>
+      <div class="refsect3" id="copyright">
+        <img src="KhronosLogo.jpg"/>
+        <p>
+            Copyright © 2003-2014 The Khronos Group Inc.
+            Permission is hereby granted, free of charge, to any person obtaining a
+            copy of this software and/or associated documentation files (the
+            "Materials"), to deal in the Materials without restriction, including
+            without limitation the rights to use, copy, modify, merge, publish,
+            distribute, sublicense, and/or sell copies of the Materials, and to
+            permit persons to whom the Materials are furnished to do so, subject to
+            the condition that this copyright notice and permission notice shall be included
+            in all copies or substantial portions of the Materials.
+        </p>
+      </div>
+      <p>
+</p>
+    </div>
+    <footer/>
+  </body>
+</html>
diff --git a/sdk/docs/man/html/eglCreateWindowSurface.xhtml b/sdk/docs/man/html/eglCreateWindowSurface.xhtml
index b7313cb..0a29d77 100644
--- a/sdk/docs/man/html/eglCreateWindowSurface.xhtml
+++ b/sdk/docs/man/html/eglCreateWindowSurface.xhtml
@@ -3,7 +3,7 @@
   <head>
     <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreateWindowSurface - EGL Reference Pages</title>
     <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
-    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
   </head>
   <body>
     <header/>
@@ -96,184 +96,28 @@
       <div class="refsect1" id="description">
         <h2>Description</h2>
         <p>
-            <code class="function">eglCreateWindowSurface</code> creates an EGL
-            window surface and returns its handle. If
-            <code class="function">eglCreateWindowSurface</code> fails to create
-            a window surface, <code class="constant">EGL_NO_SURFACE</code> is
-            returned.
-        </p>
-        <p>
-            Surface attributes are specified as a list of
-            attribute-value pairs, terminated with
-            <code class="constant">EGL_NONE</code>. Accepted attributes
-            are:
-        </p>
-        <div class="variablelist">
-          <dl class="variablelist">
-            <dt>
-              <span class="term">
-                <code class="constant">EGL_RENDER_BUFFER</code>
-              </span>
-            </dt>
-            <dd>
-              <p>
-                    Specifies which buffer should be used for client API
-                    rendering to the window. If its value is
-                    <code class="constant">EGL_SINGLE_BUFFER</code>, then client
-                    APIs should render directly into the visible window.
-                    If its value is
-                    <code class="constant">EGL_BACK_BUFFER</code>, then client
-                    APIs should render into the back buffer. The default
-                    value of <code class="constant">EGL_RENDER_BUFFER</code> is
-                    <code class="constant">EGL_BACK_BUFFER</code>.
-                </p>
-              <p>
-                    Client APIs may not be able to respect the requested
-                    rendering buffer. To determine the actual buffer
-                    being rendered to by a context, call
-                    <a class="citerefentry" href="eglQueryContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryContext</span></span></a>.
-                </p>
-            </dd>
-            <dt>
-              <span class="term">
-                <code class="constant">EGL_VG_ALPHA_FORMAT</code>
-              </span>
-            </dt>
-            <dd>
-              <p>
-                    Specifies how alpha values are interpreted by OpenVG
-                    when rendering to the surface. If its value is
-                    <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>,
-                    then alpha values are not premultipled. If its value
-                    is <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code>,
-                    then alpha values are premultiplied. The default
-                    value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
-                    <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>.
-                </p>
-            </dd>
-            <dt>
-              <span class="term">
-                <code class="constant">EGL_VG_COLORSPACE</code>
-              </span>
-            </dt>
-            <dd>
-              <p>
-                    Specifies the color space used by OpenVG when
-                    rendering to the surface. If its value is
-                    <code class="constant">EGL_VG_COLORSPACE_sRGB</code>, then a
-                    non-linear, perceptually uniform color space is
-                    assumed, with a corresponding
-                    <span class="type">VGImageFormat</span> of form
-                    <code class="constant">VG_s*</code>. If its value is
-                    <code class="constant">EGL_VG_COLORSPACE_LINEAR</code>, then
-                    a linear color space is assumed, with a
-                    corresponding <span class="type">VGImageFormat</span> of form
-                    <code class="constant">VG_l*</code>. The default value of
-                    <code class="constant">EGL_VG_COLORSPACE</code> is
-                    <code class="constant">EGL_VG_COLORSPACE_sRGB</code>.
-                </p>
-            </dd>
-          </dl>
-        </div>
-        <p>
-            Any EGL rendering context that was created with respect to
-            <em class="parameter"><code>config</code></em> can be used to render into the
-            surface. Use
-            <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
-            to attach an EGL rendering context to the surface.
-        </p>
-        <p>
-            Use
-            <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
-            to retrieve the ID of <em class="parameter"><code>config</code></em>.
-        </p>
-        <p>
-            Use
-            <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
-            to destroy the surface.
-        </p>
-      </div>
-      <div class="refsect1" id="notes">
-        <h2>Notes</h2>
-        <p>
-            Attributes <code class="constant">EGL_RENDER_BUFFER</code>,
-            <code class="constant">EGL_VG_ALPHA_FORMAT</code>, and
-            <code class="constant">EGL_VG_COLORSPACE</code>, and the
-            corresponding attribute values, are supported only if the
-            EGL version is 1.2 or greater.
-        </p>
-        <p>
-            The <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
-            <code class="constant">EGL_VG_COLORSPACE</code> attributes are used
-            only by OpenVG. EGL itself, and other client APIs such as
-            OpenGL and OpenGL ES , do not distinguish multiple
-            colorspace models. Refer to section 11.2 of the OpenVG 1.0
-            specification for more information. The native window
-            system's use and interpretation of alpha values is outside
-            the scope of EGL, although the preferred behavior is for the
-            window system to ignore the value of
-            <code class="constant">EGL_VG_ALPHA_FORMAT</code> when compositing
-            window surfaces.
+            <code class="function">eglCreateWindowSurface</code> creates an on-screen
+            EGL window surface and returns a handle to it. The behavior of
+            <code class="function">eglCreateWindowSurface</code> is identical to that
+            of
+            <a class="citerefentry" href="eglCreatePlatformWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePlatformWindowSurface</span></span></a>
+            except that the set of platforms to which
+            <em class="parameter"><code>display</code></em> is permitted to belong, as well
+            as the actual type of <em class="parameter"><code>native_window</code></em>, are
+            implementation specific.
         </p>
       </div>
       <div class="refsect1" id="errors">
         <h2>Errors</h2>
         <p>
-            <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
-            the context fails.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_DISPLAY</code> is generated if
-            <em class="parameter"><code>display</code></em> is not an EGL display connection.
-        </p>
-        <p>
-            <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
-            <em class="parameter"><code>display</code></em> has not been initialized.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_CONFIG</code> is generated if
-            <em class="parameter"><code>config</code></em> is not an EGL frame buffer configuration.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_NATIVE_WINDOW</code> may be generated if
-            <em class="parameter"><code>native_window</code></em> is not a valid native window.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
-            <em class="parameter"><code>attrib_list</code></em> contains an invalid window attribute
-            or if an attribute value is not recognized or is out of range.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
-            enough resources to allocate the new surface.
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_MATCH</code> is generated if the attributes of
-            <em class="parameter"><code>native_window</code></em> do not correspond to
-            <em class="parameter"><code>config</code></em> or if
-            <em class="parameter"><code>config</code></em> does not support rendering to windows
-            (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain
-            <code class="constant">EGL_WINDOW_BIT</code>).
-        </p>
-        <p>
-            <code class="constant">EGL_BAD_MATCH</code> is generated if
-            <em class="parameter"><code>config</code></em> does not support the specified
-            OpenVG alpha format attribute (the value of
-            <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
-            <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code> and the
-            <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> is not set
-            in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
-            <em class="parameter"><code>config</code></em>) or colorspace attribute (the
-            value of <code class="constant">EGL_VG_COLORSPACE</code> is
-            <code class="constant">EGL_VG_COLORSPACE_LINEAR</code> and the
-            <code class="constant">EGL_VG_COLORSPACE_LINEAR_IT</code> is not set
-            in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
-            <em class="parameter"><code>config</code></em>).
+            See errors for
+            <a class="citerefentry" href="eglCreatePlatformWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePlatformWindowSurface</span></span></a>.
         </p>
       </div>
       <div class="refsect1" id="seealso">
         <h2>See Also</h2>
         <p>
+            <a class="citerefentry" href="eglCreatePlatformWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePlatformWindowSurface</span></span></a>,
             <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
             <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
             <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
diff --git a/sdk/docs/man/html/eglDestroyContext.xhtml b/sdk/docs/man/html/eglDestroyContext.xhtml
index a194d2d..6a5569d 100644
--- a/sdk/docs/man/html/eglDestroyContext.xhtml
+++ b/sdk/docs/man/html/eglDestroyContext.xhtml
@@ -3,7 +3,7 @@
   <head>
     <title xmlns:xlink="http://www.w3.org/1999/xlink">eglDestroyContext - EGL Reference Pages</title>
     <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
-    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
   </head>
   <body>
     <header/>
diff --git a/sdk/docs/man/html/eglDestroyImage.xhtml b/sdk/docs/man/html/eglDestroyImage.xhtml
new file mode 100644
index 0000000..8c2f3aa
--- /dev/null
+++ b/sdk/docs/man/html/eglDestroyImage.xhtml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title xmlns:xlink="http://www.w3.org/1999/xlink">eglDestroyImage - EGL Reference Pages</title>
+    <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+  </head>
+  <body>
+    <header/>
+    <div class="refentry" id="eglDestroyImage">
+      <div class="titlepage"/>
+      <div class="refnamediv">
+        <h2>Name</h2>
+        <p>eglDestroyImage — 
+            Destroy an <span class="type">EGLImage</span> object
+        </p>
+      </div>
+      <div class="refsynopsisdiv">
+        <h2>C Specification</h2>
+        <div class="funcsynopsis">
+          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+            <tr>
+              <td>
+                <code class="funcdef">EGLBoolean <strong class="fsfunc">eglDestroyImage</strong>(</code>
+              </td>
+              <td>(EGLDisplay <var class="pdparam">display</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLImage <var class="pdparam">image</var><code>)</code>;</td>
+            </tr>
+          </table>
+          <div class="funcprototype-spacer"> </div>
+        </div>
+      </div>
+      <div class="refsect1" id="parameters">
+        <h2>Parameters</h2>
+        <div class="variablelist">
+          <dl class="variablelist">
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>display</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the <abbr class="acronym">EGL</abbr> display connection.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>image</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the image to destroy.
+                </p>
+            </dd>
+          </dl>
+        </div>
+      </div>
+      <div class="refsect1" id="description">
+        <h2>Description</h2>
+        <p>
+            <code class="function">eglDestroyImage</code> is used to destroy the
+            specified <span class="type">EGLImage</span> object
+            <em class="parameter"><code>image</code></em>. Once destroyed,
+            <em class="parameter"><code>image</code></em> may not be used to create any
+            additional <span class="type">EGLImage</span> target resources within any
+            client API contexts, although existing <span class="type">EGLImage</span>
+            siblings may continue to be used. <code class="constant">EGL_TRUE</code>
+            is returned on success.
+        </p>
+      </div>
+      <div class="refsect1" id="errors">
+        <h2>Errors</h2>
+        <p>
+            On failure, <code class="function">eglDestroyImage</code> returns
+            <code class="constant">EGL_FALSE</code>
+        </p>
+        <p>
+            If <em class="parameter"><code>display</code></em> is not the handle of a valid
+            <span class="type">EGLDisplay</span> object, the error
+            <code class="constant">EGL_BAD_DISPLAY</code> is generated.
+        </p>
+        <p>
+            If <em class="parameter"><code>image</code></em> is not a valid
+            <span class="type">EGLImage</span> object created with respect to
+            <em class="parameter"><code>display</code></em>, the error
+            <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+        </p>
+      </div>
+      <div class="refsect1" id="notes">
+        <h2>Notes</h2>
+        <p>
+            <code class="function">eglDestroyImage</code> is available only if the
+            EGL version is 1.5 or greater.
+        </p>
+      </div>
+      <div class="refsect1" id="seealso">
+        <h2>See Also</h2>
+        <p>
+            <a class="citerefentry" href="eglCreateImage.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateImage</span></span></a>
+        </p>
+      </div>
+      <p>
+    </p>
+      <div class="refsect3" id="copyright">
+        <img src="KhronosLogo.jpg"/>
+        <p>
+            Copyright © 2003-2014 The Khronos Group Inc.
+            Permission is hereby granted, free of charge, to any person obtaining a
+            copy of this software and/or associated documentation files (the
+            "Materials"), to deal in the Materials without restriction, including
+            without limitation the rights to use, copy, modify, merge, publish,
+            distribute, sublicense, and/or sell copies of the Materials, and to
+            permit persons to whom the Materials are furnished to do so, subject to
+            the condition that this copyright notice and permission notice shall be included
+            in all copies or substantial portions of the Materials.
+        </p>
+      </div>
+      <p>
+</p>
+    </div>
+    <footer/>
+  </body>
+</html>
diff --git a/sdk/docs/man/html/eglDestroySurface.xhtml b/sdk/docs/man/html/eglDestroySurface.xhtml
index 5238ca2..652f508 100644
--- a/sdk/docs/man/html/eglDestroySurface.xhtml
+++ b/sdk/docs/man/html/eglDestroySurface.xhtml
@@ -3,7 +3,7 @@
   <head>
     <title xmlns:xlink="http://www.w3.org/1999/xlink">eglDestroySurface - EGL Reference Pages</title>
     <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
-    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
   </head>
   <body>
     <header/>
diff --git a/sdk/docs/man/html/eglDestroySync.xhtml b/sdk/docs/man/html/eglDestroySync.xhtml
new file mode 100644
index 0000000..7db22eb
--- /dev/null
+++ b/sdk/docs/man/html/eglDestroySync.xhtml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <title xmlns:xlink="http://www.w3.org/1999/xlink">eglDestroySync - EGL Reference Pages</title>
+    <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+  </head>
+  <body>
+    <header/>
+    <div class="refentry" id="eglDestroySync">
+      <div class="titlepage"/>
+      <div class="refnamediv">
+        <h2>Name</h2>
+        <p>eglDestroySync — 
+            Destroy a sync object
+        </p>
+      </div>
+      <div class="refsynopsisdiv">
+        <h2>C Specification</h2>
+        <div class="funcsynopsis">
+          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+            <tr>
+              <td>
+                <code class="funcdef">EGLBoolean <strong class="fsfunc">eglDestroySync</strong>(</code>
+              </td>
+              <td>(EGLDisplay <var class="pdparam">display</var>, </td>
+            </tr>
+            <tr>
+              <td> </td>
+              <td>EGLSync <var class="pdparam">sync</var><code>)</code>;</td>
+            </tr>
+          </table>
+          <div class="funcprototype-spacer"> </div>
+        </div>
+      </div>
+      <div class="refsect1" id="parameters">
+        <h2>Parameters</h2>
+        <div class="variablelist">
+          <dl class="variablelist">
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>display</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the <abbr class="acronym">EGL</abbr> display connection.
+                </p>
+            </dd>
+            <dt>
+              <span class="term">
+                <em class="parameter">
+                  <code>sync</code>
+                </em>
+              </span>
+            </dt>
+            <dd>
+              <p>
+                    Specifies the sync object to destroy.
+                </p>
+            </dd>
+          </dl>
+        </div>
+      </div>
+      <div class="refsect1" id="description">
+        <h2>Description</h2>
+        <p>
+            <code class="function">eglDestroySync</code> is used to destroy an
+            existing sync object.
+        </p>
+        <p>
+            If any <code class="function">eglClientWaitSync</code> or
+            <code class="function">eglWaitSync</code> commands are blocking on
+            <em class="parameter"><code>sync</code></em> when
+            <co