Update EGL wrappers and utilities to latest spec.

Change-Id: Ie8d9ed179cc291889202b321df67e5f83d29951d
diff --git a/framework/egl/egluCallLogWrapper.inl b/framework/egl/egluCallLogWrapper.inl
index 0d220a6..c09a4e7 100644
--- a/framework/egl/egluCallLogWrapper.inl
+++ b/framework/egl/egluCallLogWrapper.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 
 eglw::EGLBoolean CallLogWrapper::eglBindAPI (eglw::EGLenum api)
@@ -69,7 +69,7 @@
 	return returnValue;
 }
 
-eglw::EGLImage CallLogWrapper::eglCreateImage (eglw::EGLDisplay dpy, eglw::EGLContext ctx, eglw::EGLenum target, eglw::EGLClientBuffer buffer, const eglw::EGLint *attrib_list)
+eglw::EGLImage CallLogWrapper::eglCreateImage (eglw::EGLDisplay dpy, eglw::EGLContext ctx, eglw::EGLenum target, eglw::EGLClientBuffer buffer, const eglw::EGLAttrib *attrib_list)
 {
 	if (m_enableLog)
 		m_log << TestLog::Message << "eglCreateImage(" << dpy << ", " << ctx << ", " << toHex(target) << ", " << toHex(buffer) << ", " << attrib_list << ");" << TestLog::EndMessage;
diff --git a/framework/egl/egluCallLogWrapperApi.inl b/framework/egl/egluCallLogWrapperApi.inl
index fe8c1b9..216a868 100644
--- a/framework/egl/egluCallLogWrapperApi.inl
+++ b/framework/egl/egluCallLogWrapperApi.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 eglw::EGLBoolean								eglBindAPI							(eglw::EGLenum api);
 eglw::EGLBoolean								eglBindTexImage						(eglw::EGLDisplay dpy, eglw::EGLSurface surface, eglw::EGLint buffer);
@@ -9,7 +9,7 @@
 eglw::EGLint									eglClientWaitSync					(eglw::EGLDisplay dpy, eglw::EGLSync sync, eglw::EGLint flags, eglw::EGLTime timeout);
 eglw::EGLBoolean								eglCopyBuffers						(eglw::EGLDisplay dpy, eglw::EGLSurface surface, eglw::EGLNativePixmapType target);
 eglw::EGLContext								eglCreateContext					(eglw::EGLDisplay dpy, eglw::EGLConfig config, eglw::EGLContext share_context, const eglw::EGLint *attrib_list);
-eglw::EGLImage									eglCreateImage						(eglw::EGLDisplay dpy, eglw::EGLContext ctx, eglw::EGLenum target, eglw::EGLClientBuffer buffer, const eglw::EGLint *attrib_list);
+eglw::EGLImage									eglCreateImage						(eglw::EGLDisplay dpy, eglw::EGLContext ctx, eglw::EGLenum target, eglw::EGLClientBuffer buffer, const eglw::EGLAttrib *attrib_list);
 eglw::EGLSurface								eglCreatePbufferFromClientBuffer	(eglw::EGLDisplay dpy, eglw::EGLenum buftype, eglw::EGLClientBuffer buffer, eglw::EGLConfig config, const eglw::EGLint *attrib_list);
 eglw::EGLSurface								eglCreatePbufferSurface				(eglw::EGLDisplay dpy, eglw::EGLConfig config, const eglw::EGLint *attrib_list);
 eglw::EGLSurface								eglCreatePixmapSurface				(eglw::EGLDisplay dpy, eglw::EGLConfig config, eglw::EGLNativePixmapType pixmap, const eglw::EGLint *attrib_list);
diff --git a/framework/egl/egluStrUtil.inl b/framework/egl/egluStrUtil.inl
index 4c1896a..4000783 100644
--- a/framework/egl/egluStrUtil.inl
+++ b/framework/egl/egluStrUtil.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 
 const char* getBooleanName (int value)
diff --git a/framework/egl/egluStrUtilPrototypes.inl b/framework/egl/egluStrUtilPrototypes.inl
index 5abcef5..a5bda20 100644
--- a/framework/egl/egluStrUtilPrototypes.inl
+++ b/framework/egl/egluStrUtilPrototypes.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 const char*							getBooleanName				(int value);
 const char*							getBoolDontCareName			(int value);
diff --git a/framework/egl/wrapper/eglwEnums.inl b/framework/egl/wrapper/eglwEnums.inl
index bbda388..a9f811b 100644
--- a/framework/egl/wrapper/eglwEnums.inl
+++ b/framework/egl/wrapper/eglwEnums.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 #define EGL_PBUFFER_BIT										0x0001
 #define EGL_PIXMAP_BIT										0x0002
@@ -235,3 +235,28 @@
 #define EGL_LOSE_CONTEXT_ON_RESET_EXT						0x31BF
 #define EGL_PLATFORM_X11_EXT								0x31D5
 #define EGL_PLATFORM_X11_SCREEN_EXT							0x31D6
+#define EGL_YUV_BUFFER_EXT									0x3300
+#define EGL_YUV_ORDER_EXT									0x3301
+#define EGL_YUV_ORDER_YUV_EXT								0x3302
+#define EGL_YUV_ORDER_YVU_EXT								0x3303
+#define EGL_YUV_ORDER_YUYV_EXT								0x3304
+#define EGL_YUV_ORDER_UYVY_EXT								0x3305
+#define EGL_YUV_ORDER_YVYU_EXT								0x3306
+#define EGL_YUV_ORDER_VYUY_EXT								0x3307
+#define EGL_YUV_ORDER_AYUV_EXT								0x3308
+#define EGL_YUV_CSC_STANDARD_EXT							0x330A
+#define EGL_YUV_CSC_STANDARD_601_EXT						0x330B
+#define EGL_YUV_CSC_STANDARD_709_EXT						0x330C
+#define EGL_YUV_CSC_STANDARD_2020_EXT						0x330D
+#define EGL_YUV_NUMBER_OF_PLANES_EXT						0x3311
+#define EGL_YUV_SUBSAMPLE_EXT								0x3312
+#define EGL_YUV_SUBSAMPLE_4_2_0_EXT							0x3313
+#define EGL_YUV_SUBSAMPLE_4_2_2_EXT							0x3314
+#define EGL_YUV_SUBSAMPLE_4_4_4_EXT							0x3315
+#define EGL_YUV_DEPTH_RANGE_EXT								0x3317
+#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT						0x3318
+#define EGL_YUV_DEPTH_RANGE_FULL_EXT						0x3319
+#define EGL_YUV_PLANE_BPP_EXT								0x331A
+#define EGL_YUV_PLANE_BPP_0_EXT								0x331B
+#define EGL_YUV_PLANE_BPP_8_EXT								0x331C
+#define EGL_YUV_PLANE_BPP_10_EXT							0x331D
diff --git a/framework/egl/wrapper/eglwFuncPtrLibraryDecl.inl b/framework/egl/wrapper/eglwFuncPtrLibraryDecl.inl
index 51b0a43..24dd7b8 100644
--- a/framework/egl/wrapper/eglwFuncPtrLibraryDecl.inl
+++ b/framework/egl/wrapper/eglwFuncPtrLibraryDecl.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 EGLBoolean									bindAPI							(EGLenum api) const;
 EGLBoolean									bindTexImage					(EGLDisplay dpy, EGLSurface surface, EGLint buffer) const;
@@ -10,7 +10,7 @@
 EGLint										clientWaitSyncKHR				(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout) const;
 EGLBoolean									copyBuffers						(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target) const;
 EGLContext									createContext					(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list) const;
-EGLImage									createImage						(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list) const;
+EGLImage									createImage						(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list) const;
 EGLImageKHR									createImageKHR					(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list) const;
 EGLSurface									createPbufferFromClientBuffer	(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list) const;
 EGLSurface									createPbufferSurface			(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list) const;
diff --git a/framework/egl/wrapper/eglwFuncPtrLibraryImpl.inl b/framework/egl/wrapper/eglwFuncPtrLibraryImpl.inl
index bf1e280..0734bd7 100644
--- a/framework/egl/wrapper/eglwFuncPtrLibraryImpl.inl
+++ b/framework/egl/wrapper/eglwFuncPtrLibraryImpl.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 
 EGLBoolean FuncPtrLibrary::bindAPI (EGLenum api) const
@@ -39,7 +39,7 @@
 	return m_egl.createContext(dpy, config, share_context, attrib_list);
 }
 
-EGLImage FuncPtrLibrary::createImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list) const
+EGLImage FuncPtrLibrary::createImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list) const
 {
 	return m_egl.createImage(dpy, ctx, target, buffer, attrib_list);
 }
diff --git a/framework/egl/wrapper/eglwFunctionTypes.inl b/framework/egl/wrapper/eglwFunctionTypes.inl
index 3616b03..9b2a87f 100644
--- a/framework/egl/wrapper/eglwFunctionTypes.inl
+++ b/framework/egl/wrapper/eglwFunctionTypes.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 typedef EGLW_APICALL EGLBoolean									(EGLW_APIENTRY* eglBindAPIFunc)							(EGLenum api);
 typedef EGLW_APICALL EGLBoolean									(EGLW_APIENTRY* eglBindTexImageFunc)					(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
@@ -10,7 +10,7 @@
 typedef EGLW_APICALL EGLint										(EGLW_APIENTRY* eglClientWaitSyncKHRFunc)				(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
 typedef EGLW_APICALL EGLBoolean									(EGLW_APIENTRY* eglCopyBuffersFunc)						(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
 typedef EGLW_APICALL EGLContext									(EGLW_APIENTRY* eglCreateContextFunc)					(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
-typedef EGLW_APICALL EGLImage									(EGLW_APIENTRY* eglCreateImageFunc)						(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
+typedef EGLW_APICALL EGLImage									(EGLW_APIENTRY* eglCreateImageFunc)						(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list);
 typedef EGLW_APICALL EGLImageKHR								(EGLW_APIENTRY* eglCreateImageKHRFunc)					(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
 typedef EGLW_APICALL EGLSurface									(EGLW_APIENTRY* eglCreatePbufferFromClientBufferFunc)	(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list);
 typedef EGLW_APICALL EGLSurface									(EGLW_APIENTRY* eglCreatePbufferSurfaceFunc)			(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
diff --git a/framework/egl/wrapper/eglwFunctions.inl b/framework/egl/wrapper/eglwFunctions.inl
index 9f7ec46..0d2621f 100644
--- a/framework/egl/wrapper/eglwFunctions.inl
+++ b/framework/egl/wrapper/eglwFunctions.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 eglBindAPIFunc							bindAPI;
 eglBindTexImageFunc						bindTexImage;
diff --git a/framework/egl/wrapper/eglwInitCore.inl b/framework/egl/wrapper/eglwInitCore.inl
index 244b6a7..563cfbd 100644
--- a/framework/egl/wrapper/eglwInitCore.inl
+++ b/framework/egl/wrapper/eglwInitCore.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 dst->bindAPI						= (eglBindAPIFunc)							loader->get("eglBindAPI");
 dst->bindTexImage					= (eglBindTexImageFunc)						loader->get("eglBindTexImage");
diff --git a/framework/egl/wrapper/eglwInitExtensions.inl b/framework/egl/wrapper/eglwInitExtensions.inl
index eba506d..b492874 100644
--- a/framework/egl/wrapper/eglwInitExtensions.inl
+++ b/framework/egl/wrapper/eglwInitExtensions.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 dst->clientWaitSyncKHR				= (eglClientWaitSyncKHRFunc)				loader->get("eglClientWaitSyncKHR");
 dst->createImageKHR					= (eglCreateImageKHRFunc)					loader->get("eglCreateImageKHR");
diff --git a/framework/egl/wrapper/eglwLibrary.inl b/framework/egl/wrapper/eglwLibrary.inl
index 5f50513..eadfe2a 100644
--- a/framework/egl/wrapper/eglwLibrary.inl
+++ b/framework/egl/wrapper/eglwLibrary.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 virtual EGLBoolean									bindAPI							(EGLenum api) const																								= 0;
 virtual EGLBoolean									bindTexImage					(EGLDisplay dpy, EGLSurface surface, EGLint buffer) const														= 0;
@@ -10,7 +10,7 @@
 virtual EGLint										clientWaitSyncKHR				(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout) const										= 0;
 virtual EGLBoolean									copyBuffers						(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target) const											= 0;
 virtual EGLContext									createContext					(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list) const					= 0;
-virtual EGLImage									createImage						(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list) const		= 0;
+virtual EGLImage									createImage						(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list) const	= 0;
 virtual EGLImageKHR									createImageKHR					(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list) const		= 0;
 virtual EGLSurface									createPbufferFromClientBuffer	(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list) const	= 0;
 virtual EGLSurface									createPbufferSurface			(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list) const												= 0;
diff --git a/framework/egl/wrapper/eglwStaticLibrary14.inl b/framework/egl/wrapper/eglwStaticLibrary14.inl
index 8dbce58..0a02afc 100644
--- a/framework/egl/wrapper/eglwStaticLibrary14.inl
+++ b/framework/egl/wrapper/eglwStaticLibrary14.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 	{ "eglBindAPI",							(deFunctionPtr)eglBindAPI },
 	{ "eglBindTexImage",					(deFunctionPtr)eglBindTexImage },
diff --git a/framework/egl/wrapper/eglwStaticLibrary15.inl b/framework/egl/wrapper/eglwStaticLibrary15.inl
index 0701ad1..4ffe3e6 100644
--- a/framework/egl/wrapper/eglwStaticLibrary15.inl
+++ b/framework/egl/wrapper/eglwStaticLibrary15.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 	{ "eglBindAPI",							(deFunctionPtr)eglBindAPI },
 	{ "eglBindTexImage",					(deFunctionPtr)eglBindTexImage },
diff --git a/modules/egl/teglGetProcAddressTests.inl b/modules/egl/teglGetProcAddressTests.inl
index 810d1a6..23c88c4 100644
--- a/modules/egl/teglGetProcAddressTests.inl
+++ b/modules/egl/teglGetProcAddressTests.inl
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 28861.
+ * Generated from Khronos EGL API description (egl.xml) revision 31042.
  */
 
 static const char* s_EGL14[] =
@@ -467,6 +467,18 @@
 	"eglQueryDisplayAttribEXT",
 };
 
+static const char* s_EGL_EXT_device_enumeration[] =
+{
+	"eglQueryDevicesEXT",
+};
+
+static const char* s_EGL_EXT_device_query[] =
+{
+	"eglQueryDeviceAttribEXT",
+	"eglQueryDeviceStringEXT",
+	"eglQueryDisplayAttribEXT",
+};
+
 static const char* s_EGL_EXT_output_base[] =
 {
 	"eglGetOutputLayersEXT",
@@ -506,6 +518,14 @@
 	"eglCreateSync64KHR",
 };
 
+static const char* s_EGL_KHR_fence_sync[] =
+{
+	"eglClientWaitSyncKHR",
+	"eglCreateSyncKHR",
+	"eglDestroySyncKHR",
+	"eglGetSyncAttribKHR",
+};
+
 static const char* s_EGL_KHR_image[] =
 {
 	"eglCreateImageKHR",
@@ -531,6 +551,11 @@
 	"eglUnlockSurfaceKHR",
 };
 
+static const char* s_EGL_KHR_partial_update[] =
+{
+	"eglSetDamageRegionKHR",
+};
+
 static const char* s_EGL_KHR_reusable_sync[] =
 {
 	"eglClientWaitSyncKHR",
@@ -572,6 +597,11 @@
 	"eglCreateStreamProducerSurfaceKHR",
 };
 
+static const char* s_EGL_KHR_swap_buffers_with_damage[] =
+{
+	"eglSwapBuffersWithDamageKHR",
+};
+
 static const char* s_EGL_KHR_wait_sync[] =
 {
 	"eglWaitSyncKHR",
@@ -583,6 +613,12 @@
 	"eglExportDRMImageMESA",
 };
 
+static const char* s_EGL_MESA_image_dma_buf_export[] =
+{
+	"eglExportDMABUFImageMESA",
+	"eglExportDMABUFImageQueryMESA",
+};
+
 static const char* s_EGL_NOK_swap_region[] =
 {
 	"eglSwapBuffersRegionNOK",
@@ -935,6 +971,13 @@
 	"glGetTranslatedShaderSourceANGLE",
 };
 
+static const char* s_GL_EXT_base_instance[] =
+{
+	"glDrawArraysInstancedBaseInstanceEXT",
+	"glDrawElementsInstancedBaseInstanceEXT",
+	"glDrawElementsInstancedBaseVertexBaseInstanceEXT",
+};
+
 static const char* s_GL_EXT_copy_image[] =
 {
 	"glCopyImageSubDataEXT",
@@ -985,6 +1028,14 @@
 	"glIsEnablediEXT",
 };
 
+static const char* s_GL_EXT_draw_elements_base_vertex[] =
+{
+	"glDrawElementsBaseVertexEXT",
+	"glDrawElementsInstancedBaseVertexEXT",
+	"glDrawRangeElementsBaseVertexEXT",
+	"glMultiDrawElementsBaseVertexEXT",
+};
+
 static const char* s_GL_EXT_draw_instanced[] =
 {
 	"glDrawArraysInstancedEXT",
@@ -1003,6 +1054,12 @@
 	"glVertexAttribDivisorEXT",
 };
 
+static const char* s_GL_EXT_multi_draw_indirect[] =
+{
+	"glMultiDrawArraysIndirectEXT",
+	"glMultiDrawElementsIndirectEXT",
+};
+
 static const char* s_GL_EXT_multiview_draw_buffers[] =
 {
 	"glDrawBuffersIndexedEXT",
@@ -1145,12 +1202,35 @@
 	"glReadnPixelsKHR",
 };
 
+static const char* s_GL_NV_bindless_texture[] =
+{
+	"glGetImageHandleNV",
+	"glGetTextureHandleNV",
+	"glGetTextureSamplerHandleNV",
+	"glIsImageHandleResidentNV",
+	"glIsTextureHandleResidentNV",
+	"glMakeImageHandleNonResidentNV",
+	"glMakeImageHandleResidentNV",
+	"glMakeTextureHandleNonResidentNV",
+	"glMakeTextureHandleResidentNV",
+	"glProgramUniformHandleui64NV",
+	"glProgramUniformHandleui64vNV",
+	"glUniformHandleui64NV",
+	"glUniformHandleui64vNV",
+};
+
 static const char* s_GL_NV_blend_equation_advanced[] =
 {
 	"glBlendBarrierNV",
 	"glBlendParameteriNV",
 };
 
+static const char* s_GL_NV_conditional_render[] =
+{
+	"glBeginConditionalRenderNV",
+	"glEndConditionalRenderNV",
+};
+
 static const char* s_GL_NV_copy_buffer[] =
 {
 	"glCopyBufferSubDataNV",
@@ -1203,22 +1283,139 @@
 	"glUniformMatrix4x3fvNV",
 };
 
+static const char* s_GL_NV_path_rendering[] =
+{
+	"glCopyPathNV",
+	"glCoverFillPathInstancedNV",
+	"glCoverFillPathNV",
+	"glCoverStrokePathInstancedNV",
+	"glCoverStrokePathNV",
+	"glDeletePathsNV",
+	"glGenPathsNV",
+	"glGetPathCommandsNV",
+	"glGetPathCoordsNV",
+	"glGetPathDashArrayNV",
+	"glGetPathLengthNV",
+	"glGetPathMetricRangeNV",
+	"glGetPathMetricsNV",
+	"glGetPathParameterfvNV",
+	"glGetPathParameterivNV",
+	"glGetPathSpacingNV",
+	"glGetProgramResourcefvNV",
+	"glInterpolatePathsNV",
+	"glIsPathNV",
+	"glIsPointInFillPathNV",
+	"glIsPointInStrokePathNV",
+	"glMatrixLoad3x2fNV",
+	"glMatrixLoad3x3fNV",
+	"glMatrixLoadTranspose3x3fNV",
+	"glMatrixMult3x2fNV",
+	"glMatrixMult3x3fNV",
+	"glMatrixMultTranspose3x3fNV",
+	"glPathCommandsNV",
+	"glPathCoordsNV",
+	"glPathCoverDepthFuncNV",
+	"glPathDashArrayNV",
+	"glPathGlyphIndexArrayNV",
+	"glPathGlyphIndexRangeNV",
+	"glPathGlyphRangeNV",
+	"glPathGlyphsNV",
+	"glPathMemoryGlyphIndexArrayNV",
+	"glPathParameterfNV",
+	"glPathParameterfvNV",
+	"glPathParameteriNV",
+	"glPathParameterivNV",
+	"glPathStencilDepthOffsetNV",
+	"glPathStencilFuncNV",
+	"glPathStringNV",
+	"glPathSubCommandsNV",
+	"glPathSubCoordsNV",
+	"glPointAlongPathNV",
+	"glProgramPathFragmentInputGenNV",
+	"glStencilFillPathInstancedNV",
+	"glStencilFillPathNV",
+	"glStencilStrokePathInstancedNV",
+	"glStencilStrokePathNV",
+	"glStencilThenCoverFillPathInstancedNV",
+	"glStencilThenCoverFillPathNV",
+	"glStencilThenCoverStrokePathInstancedNV",
+	"glStencilThenCoverStrokePathNV",
+	"glTransformPathNV",
+	"glWeightPathsNV",
+};
+
 static const char* s_GL_NV_read_buffer[] =
 {
 	"glReadBufferNV",
 };
 
+static const char* s_GL_NV_viewport_array[] =
+{
+	"glDepthRangeArrayfvNV",
+	"glDepthRangeIndexedfNV",
+	"glDisableiNV",
+	"glEnableiNV",
+	"glGetFloati_vNV",
+	"glIsEnablediNV",
+	"glScissorArrayvNV",
+	"glScissorIndexedNV",
+	"glScissorIndexedvNV",
+	"glViewportArrayvNV",
+	"glViewportIndexedfNV",
+	"glViewportIndexedfvNV",
+};
+
+static const char* s_GL_OES_copy_image[] =
+{
+	"glCopyImageSubDataOES",
+};
+
+static const char* s_GL_OES_draw_buffers_indexed[] =
+{
+	"glBlendEquationSeparateiOES",
+	"glBlendEquationiOES",
+	"glBlendFuncSeparateiOES",
+	"glBlendFunciOES",
+	"glColorMaskiOES",
+	"glDisableiOES",
+	"glEnableiOES",
+	"glIsEnablediOES",
+};
+
+static const char* s_GL_OES_draw_elements_base_vertex[] =
+{
+	"glDrawElementsBaseVertexOES",
+	"glDrawElementsInstancedBaseVertexOES",
+	"glDrawRangeElementsBaseVertexOES",
+	"glMultiDrawElementsBaseVertexOES",
+};
+
+static const char* s_GL_OES_geometry_shader[] =
+{
+	"glFramebufferTextureOES",
+};
+
 static const char* s_GL_OES_get_program_binary[] =
 {
 	"glGetProgramBinaryOES",
 	"glProgramBinaryOES",
 };
 
+static const char* s_GL_OES_primitive_bounding_box[] =
+{
+	"glPrimitiveBoundingBoxOES",
+};
+
 static const char* s_GL_OES_sample_shading[] =
 {
 	"glMinSampleShadingOES",
 };
 
+static const char* s_GL_OES_tessellation_shader[] =
+{
+	"glPatchParameteriOES",
+};
+
 static const char* s_GL_OES_texture_3D[] =
 {
 	"glCompressedTexImage3DOES",
@@ -1229,11 +1426,34 @@
 	"glTexSubImage3DOES",
 };
 
+static const char* s_GL_OES_texture_border_clamp[] =
+{
+	"glGetSamplerParameterIivOES",
+	"glGetSamplerParameterIuivOES",
+	"glGetTexParameterIivOES",
+	"glGetTexParameterIuivOES",
+	"glSamplerParameterIivOES",
+	"glSamplerParameterIuivOES",
+	"glTexParameterIivOES",
+	"glTexParameterIuivOES",
+};
+
+static const char* s_GL_OES_texture_buffer[] =
+{
+	"glTexBufferOES",
+	"glTexBufferRangeOES",
+};
+
 static const char* s_GL_OES_texture_storage_multisample_2d_array[] =
 {
 	"glTexStorage3DMultisampleOES",
 };
 
+static const char* s_GL_OES_texture_view[] =
+{
+	"glTextureViewOES",
+};
+
 static const char* s_GL_QCOM_alpha_test[] =
 {
 	"glAlphaFuncQCOM",
@@ -1250,24 +1470,30 @@
 	{ "EGL_ANDROID_native_fence_sync",					DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_native_fence_sync),				s_EGL_ANDROID_native_fence_sync					},
 	{ "EGL_ANGLE_query_surface_pointer",				DE_LENGTH_OF_ARRAY(s_EGL_ANGLE_query_surface_pointer),				s_EGL_ANGLE_query_surface_pointer				},
 	{ "EGL_EXT_device_base",							DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_base),							s_EGL_EXT_device_base							},
+	{ "EGL_EXT_device_enumeration",						DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_enumeration),					s_EGL_EXT_device_enumeration					},
+	{ "EGL_EXT_device_query",							DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_query),							s_EGL_EXT_device_query							},
 	{ "EGL_EXT_output_base",							DE_LENGTH_OF_ARRAY(s_EGL_EXT_output_base),							s_EGL_EXT_output_base							},
 	{ "EGL_EXT_platform_base",							DE_LENGTH_OF_ARRAY(s_EGL_EXT_platform_base),						s_EGL_EXT_platform_base							},
 	{ "EGL_EXT_stream_consumer_egloutput",				DE_LENGTH_OF_ARRAY(s_EGL_EXT_stream_consumer_egloutput),			s_EGL_EXT_stream_consumer_egloutput				},
 	{ "EGL_EXT_swap_buffers_with_damage",				DE_LENGTH_OF_ARRAY(s_EGL_EXT_swap_buffers_with_damage),				s_EGL_EXT_swap_buffers_with_damage				},
 	{ "EGL_HI_clientpixmap",							DE_LENGTH_OF_ARRAY(s_EGL_HI_clientpixmap),							s_EGL_HI_clientpixmap							},
 	{ "EGL_KHR_cl_event2",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_cl_event2),							s_EGL_KHR_cl_event2								},
+	{ "EGL_KHR_fence_sync",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_fence_sync),							s_EGL_KHR_fence_sync							},
 	{ "EGL_KHR_image",									DE_LENGTH_OF_ARRAY(s_EGL_KHR_image),								s_EGL_KHR_image									},
 	{ "EGL_KHR_image_base",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_image_base),							s_EGL_KHR_image_base							},
 	{ "EGL_KHR_lock_surface",							DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface),							s_EGL_KHR_lock_surface							},
 	{ "EGL_KHR_lock_surface3",							DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface3),						s_EGL_KHR_lock_surface3							},
+	{ "EGL_KHR_partial_update",							DE_LENGTH_OF_ARRAY(s_EGL_KHR_partial_update),						s_EGL_KHR_partial_update						},
 	{ "EGL_KHR_reusable_sync",							DE_LENGTH_OF_ARRAY(s_EGL_KHR_reusable_sync),						s_EGL_KHR_reusable_sync							},
 	{ "EGL_KHR_stream",									DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream),								s_EGL_KHR_stream								},
 	{ "EGL_KHR_stream_consumer_gltexture",				DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_consumer_gltexture),			s_EGL_KHR_stream_consumer_gltexture				},
 	{ "EGL_KHR_stream_cross_process_fd",				DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_cross_process_fd),				s_EGL_KHR_stream_cross_process_fd				},
 	{ "EGL_KHR_stream_fifo",							DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_fifo),							s_EGL_KHR_stream_fifo							},
 	{ "EGL_KHR_stream_producer_eglsurface",				DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_producer_eglsurface),			s_EGL_KHR_stream_producer_eglsurface			},
+	{ "EGL_KHR_swap_buffers_with_damage",				DE_LENGTH_OF_ARRAY(s_EGL_KHR_swap_buffers_with_damage),				s_EGL_KHR_swap_buffers_with_damage				},
 	{ "EGL_KHR_wait_sync",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_wait_sync),							s_EGL_KHR_wait_sync								},
 	{ "EGL_MESA_drm_image",								DE_LENGTH_OF_ARRAY(s_EGL_MESA_drm_image),							s_EGL_MESA_drm_image							},
+	{ "EGL_MESA_image_dma_buf_export",					DE_LENGTH_OF_ARRAY(s_EGL_MESA_image_dma_buf_export),				s_EGL_MESA_image_dma_buf_export					},
 	{ "EGL_NOK_swap_region",							DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region),							s_EGL_NOK_swap_region							},
 	{ "EGL_NOK_swap_region2",							DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region2),							s_EGL_NOK_swap_region2							},
 	{ "EGL_NV_native_query",							DE_LENGTH_OF_ARRAY(s_EGL_NV_native_query),							s_EGL_NV_native_query							},
@@ -1310,15 +1536,18 @@
 	{ "GL_ANGLE_framebuffer_multisample",				DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_multisample),				s_GL_ANGLE_framebuffer_multisample				},
 	{ "GL_ANGLE_instanced_arrays",						DE_LENGTH_OF_ARRAY(s_GL_ANGLE_instanced_arrays),					s_GL_ANGLE_instanced_arrays						},
 	{ "GL_ANGLE_translated_shader_source",				DE_LENGTH_OF_ARRAY(s_GL_ANGLE_translated_shader_source),			s_GL_ANGLE_translated_shader_source				},
+	{ "GL_EXT_base_instance",							DE_LENGTH_OF_ARRAY(s_GL_EXT_base_instance),							s_GL_EXT_base_instance							},
 	{ "GL_EXT_copy_image",								DE_LENGTH_OF_ARRAY(s_GL_EXT_copy_image),							s_GL_EXT_copy_image								},
 	{ "GL_EXT_debug_label",								DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_label),							s_GL_EXT_debug_label							},
 	{ "GL_EXT_debug_marker",							DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_marker),							s_GL_EXT_debug_marker							},
 	{ "GL_EXT_disjoint_timer_query",					DE_LENGTH_OF_ARRAY(s_GL_EXT_disjoint_timer_query),					s_GL_EXT_disjoint_timer_query					},
 	{ "GL_EXT_draw_buffers",							DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers),							s_GL_EXT_draw_buffers							},
 	{ "GL_EXT_draw_buffers_indexed",					DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers_indexed),					s_GL_EXT_draw_buffers_indexed					},
+	{ "GL_EXT_draw_elements_base_vertex",				DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_elements_base_vertex),				s_GL_EXT_draw_elements_base_vertex				},
 	{ "GL_EXT_draw_instanced",							DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_instanced),						s_GL_EXT_draw_instanced							},
 	{ "GL_EXT_geometry_shader",							DE_LENGTH_OF_ARRAY(s_GL_EXT_geometry_shader),						s_GL_EXT_geometry_shader						},
 	{ "GL_EXT_instanced_arrays",						DE_LENGTH_OF_ARRAY(s_GL_EXT_instanced_arrays),						s_GL_EXT_instanced_arrays						},
+	{ "GL_EXT_multi_draw_indirect",						DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_indirect),					s_GL_EXT_multi_draw_indirect					},
 	{ "GL_EXT_multiview_draw_buffers",					DE_LENGTH_OF_ARRAY(s_GL_EXT_multiview_draw_buffers),				s_GL_EXT_multiview_draw_buffers					},
 	{ "GL_EXT_occlusion_query_boolean",					DE_LENGTH_OF_ARRAY(s_GL_EXT_occlusion_query_boolean),				s_GL_EXT_occlusion_query_boolean				},
 	{ "GL_EXT_primitive_bounding_box",					DE_LENGTH_OF_ARRAY(s_GL_EXT_primitive_bounding_box),				s_GL_EXT_primitive_bounding_box					},
@@ -1331,7 +1560,9 @@
 	{ "GL_KHR_blend_equation_advanced",					DE_LENGTH_OF_ARRAY(s_GL_KHR_blend_equation_advanced),				s_GL_KHR_blend_equation_advanced				},
 	{ "GL_KHR_debug",									DE_LENGTH_OF_ARRAY(s_GL_KHR_debug),									s_GL_KHR_debug									},
 	{ "GL_KHR_robustness",								DE_LENGTH_OF_ARRAY(s_GL_KHR_robustness),							s_GL_KHR_robustness								},
+	{ "GL_NV_bindless_texture",							DE_LENGTH_OF_ARRAY(s_GL_NV_bindless_texture),						s_GL_NV_bindless_texture						},
 	{ "GL_NV_blend_equation_advanced",					DE_LENGTH_OF_ARRAY(s_GL_NV_blend_equation_advanced),				s_GL_NV_blend_equation_advanced					},
+	{ "GL_NV_conditional_render",						DE_LENGTH_OF_ARRAY(s_GL_NV_conditional_render),						s_GL_NV_conditional_render						},
 	{ "GL_NV_copy_buffer",								DE_LENGTH_OF_ARRAY(s_GL_NV_copy_buffer),							s_GL_NV_copy_buffer								},
 	{ "GL_NV_coverage_sample",							DE_LENGTH_OF_ARRAY(s_GL_NV_coverage_sample),						s_GL_NV_coverage_sample							},
 	{ "GL_NV_draw_buffers",								DE_LENGTH_OF_ARRAY(s_GL_NV_draw_buffers),							s_GL_NV_draw_buffers							},
@@ -1341,10 +1572,21 @@
 	{ "GL_NV_instanced_arrays",							DE_LENGTH_OF_ARRAY(s_GL_NV_instanced_arrays),						s_GL_NV_instanced_arrays						},
 	{ "GL_NV_internalformat_sample_query",				DE_LENGTH_OF_ARRAY(s_GL_NV_internalformat_sample_query),			s_GL_NV_internalformat_sample_query				},
 	{ "GL_NV_non_square_matrices",						DE_LENGTH_OF_ARRAY(s_GL_NV_non_square_matrices),					s_GL_NV_non_square_matrices						},
+	{ "GL_NV_path_rendering",							DE_LENGTH_OF_ARRAY(s_GL_NV_path_rendering),							s_GL_NV_path_rendering							},
 	{ "GL_NV_read_buffer",								DE_LENGTH_OF_ARRAY(s_GL_NV_read_buffer),							s_GL_NV_read_buffer								},
+	{ "GL_NV_viewport_array",							DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_array),							s_GL_NV_viewport_array							},
+	{ "GL_OES_copy_image",								DE_LENGTH_OF_ARRAY(s_GL_OES_copy_image),							s_GL_OES_copy_image								},
+	{ "GL_OES_draw_buffers_indexed",					DE_LENGTH_OF_ARRAY(s_GL_OES_draw_buffers_indexed),					s_GL_OES_draw_buffers_indexed					},
+	{ "GL_OES_draw_elements_base_vertex",				DE_LENGTH_OF_ARRAY(s_GL_OES_draw_elements_base_vertex),				s_GL_OES_draw_elements_base_vertex				},
+	{ "GL_OES_geometry_shader",							DE_LENGTH_OF_ARRAY(s_GL_OES_geometry_shader),						s_GL_OES_geometry_shader						},
 	{ "GL_OES_get_program_binary",						DE_LENGTH_OF_ARRAY(s_GL_OES_get_program_binary),					s_GL_OES_get_program_binary						},
+	{ "GL_OES_primitive_bounding_box",					DE_LENGTH_OF_ARRAY(s_GL_OES_primitive_bounding_box),				s_GL_OES_primitive_bounding_box					},
 	{ "GL_OES_sample_shading",							DE_LENGTH_OF_ARRAY(s_GL_OES_sample_shading),						s_GL_OES_sample_shading							},
+	{ "GL_OES_tessellation_shader",						DE_LENGTH_OF_ARRAY(s_GL_OES_tessellation_shader),					s_GL_OES_tessellation_shader					},
 	{ "GL_OES_texture_3D",								DE_LENGTH_OF_ARRAY(s_GL_OES_texture_3D),							s_GL_OES_texture_3D								},
+	{ "GL_OES_texture_border_clamp",					DE_LENGTH_OF_ARRAY(s_GL_OES_texture_border_clamp),					s_GL_OES_texture_border_clamp					},
+	{ "GL_OES_texture_buffer",							DE_LENGTH_OF_ARRAY(s_GL_OES_texture_buffer),						s_GL_OES_texture_buffer							},
 	{ "GL_OES_texture_storage_multisample_2d_array",	DE_LENGTH_OF_ARRAY(s_GL_OES_texture_storage_multisample_2d_array),	s_GL_OES_texture_storage_multisample_2d_array	},
+	{ "GL_OES_texture_view",							DE_LENGTH_OF_ARRAY(s_GL_OES_texture_view),							s_GL_OES_texture_view							},
 	{ "GL_QCOM_alpha_test",								DE_LENGTH_OF_ARRAY(s_GL_QCOM_alpha_test),							s_GL_QCOM_alpha_test							},
 };
diff --git a/scripts/egl/common.py b/scripts/egl/common.py
index 7ad2f33..1105c4f 100644
--- a/scripts/egl/common.py
+++ b/scripts/egl/common.py
@@ -39,8 +39,8 @@
 
 EGL_SOURCE			= khr_util.registry_cache.RegistrySource(
 						"egl.xml",
-						28861,
-						"0e7e6381c4e518f915450fe5080c9b1307cbf3548999a74e2b7676de7b5e5a30")
+						31042,
+						"f5a731f46958a7cb6a5a96c811086fbaede9cc078541a26de009228eb089ae2c")
 
 VERSION				= '1.5'
 
@@ -60,6 +60,7 @@
 	"EGL_EXT_platform_base",
 	"EGL_EXT_platform_x11",
 	"EGL_ANDROID_image_native_buffer",
+	"EGL_EXT_yuv_surface"
 ]
 PROTECTS			= [
 	"KHRONOS_SUPPORT_INT64"