Update gl.xml revision

Components: AOSP, Framework

Change-Id: I5272c877c3a696b2727fa335a5d4f8ab62df4d7c
diff --git a/android/cts/master/egl-master.txt b/android/cts/master/egl-master.txt
index 1c4fa8c..55861eb 100644
--- a/android/cts/master/egl-master.txt
+++ b/android/cts/master/egl-master.txt
@@ -2457,14 +2457,21 @@
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_draw_elements_base_vertex
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_draw_instanced
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_draw_transform_feedback
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_external_buffer
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_geometry_shader
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_instanced_arrays
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_memory_object
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_memory_object_fd
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_memory_object_win32
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_multi_draw_indirect
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_multiview_draw_buffers
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_occlusion_query_boolean
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_polygon_offset_clamp
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_primitive_bounding_box
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_raster_multisample
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_semaphore
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_semaphore_fd
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_semaphore_win32
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_separate_shader_objects
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_shader_pixel_local_storage2
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_sparse_texture
@@ -2473,6 +2480,7 @@
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_texture_buffer
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_texture_filter_minmax
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_texture_view
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_win32_keyed_mutex
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_window_rectangles
 dEQP-EGL.functional.get_proc_address.extension.gl_img_bindless_texture
 dEQP-EGL.functional.get_proc_address.extension.gl_img_framebuffer_downsample
@@ -2523,6 +2531,7 @@
 dEQP-EGL.functional.get_proc_address.extension.gl_ovr_multiview_multisampled_render_to_texture
 dEQP-EGL.functional.get_proc_address.extension.gl_qcom_alpha_test
 dEQP-EGL.functional.get_proc_address.extension.gl_qcom_framebuffer_foveated
+dEQP-EGL.functional.get_proc_address.extension.gl_qcom_shader_framebuffer_fetch_noncoherent
 dEQP-EGL.functional.get_proc_address.core.egl
 dEQP-EGL.functional.get_proc_address.core.gles
 dEQP-EGL.functional.get_proc_address.core.gles2
diff --git a/framework/egl/egluStaticES20Library.inl b/framework/egl/egluStaticES20Library.inl
index 6b6bf5f..fcfa2d9 100644
--- a/framework/egl/egluStaticES20Library.inl
+++ b/framework/egl/egluStaticES20Library.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 	{ "glActiveTexture",						(deFunctionPtr)glActiveTexture },
 	{ "glAttachShader",							(deFunctionPtr)glAttachShader },
diff --git a/framework/egl/egluStaticES30Library.inl b/framework/egl/egluStaticES30Library.inl
index f8da8be..28e49a7 100644
--- a/framework/egl/egluStaticES30Library.inl
+++ b/framework/egl/egluStaticES30Library.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 	{ "glActiveTexture",						(deFunctionPtr)glActiveTexture },
 	{ "glAttachShader",							(deFunctionPtr)glAttachShader },
diff --git a/framework/opengl/gluCallLogUtil.inl b/framework/opengl/gluCallLogUtil.inl
index b786409..8d720ef 100644
--- a/framework/opengl/gluCallLogUtil.inl
+++ b/framework/opengl/gluCallLogUtil.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 
 int getTextureParamNumArgs (int pname)
diff --git a/framework/opengl/gluCallLogWrapper.inl b/framework/opengl/gluCallLogWrapper.inl
index 4c02574..9956c79 100644
--- a/framework/opengl/gluCallLogWrapper.inl
+++ b/framework/opengl/gluCallLogWrapper.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 
 void CallLogWrapper::glActiveShaderProgram (glw::GLuint pipeline, glw::GLuint program)
@@ -618,6 +618,13 @@
 	m_gl.compressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
 }
 
+void CallLogWrapper::glCompressedTexImage3DOES (glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLsizei imageSize, const void *data)
+{
+	if (m_enableLog)
+		m_log << TestLog::Message << "glCompressedTexImage3DOES(" << toHex(target) << ", " << level << ", " << toHex(internalformat) << ", " << width << ", " << height << ", " << depth << ", " << border << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
+	m_gl.compressedTexImage3DOES(target, level, internalformat, width, height, depth, border, imageSize, data);
+}
+
 void CallLogWrapper::glCompressedTexSubImage1D (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLsizei width, glw::GLenum format, glw::GLsizei imageSize, const void *data)
 {
 	if (m_enableLog)
@@ -639,6 +646,13 @@
 	m_gl.compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
 }
 
+void CallLogWrapper::glCompressedTexSubImage3DOES (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLsizei imageSize, const void *data)
+{
+	if (m_enableLog)
+		m_log << TestLog::Message << "glCompressedTexSubImage3DOES(" << toHex(target) << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << width << ", " << height << ", " << depth << ", " << toHex(format) << ", " << imageSize << ", " << data << ");" << TestLog::EndMessage;
+	m_gl.compressedTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
 void CallLogWrapper::glCompressedTextureImage1DEXT (glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLint border, glw::GLsizei imageSize, const void *bits)
 {
 	if (m_enableLog)
@@ -793,6 +807,13 @@
 	m_gl.copyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
 }
 
+void CallLogWrapper::glCopyTexSubImage3DOES (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height)
+{
+	if (m_enableLog)
+		m_log << TestLog::Message << "glCopyTexSubImage3DOES(" << toHex(target) << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << x << ", " << y << ", " << width << ", " << height << ");" << TestLog::EndMessage;
+	m_gl.copyTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
 void CallLogWrapper::glCopyTextureImage1DEXT (glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLint border)
 {
 	if (m_enableLog)
@@ -1533,6 +1554,13 @@
 	m_gl.framebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
 }
 
+void CallLogWrapper::glFramebufferTexture3DOES (glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level, glw::GLint zoffset)
+{
+	if (m_enableLog)
+		m_log << TestLog::Message << "glFramebufferTexture3DOES(" << toHex(target) << ", " << toHex(attachment) << ", " << toHex(textarget) << ", " << texture << ", " << level << ", " << zoffset << ");" << TestLog::EndMessage;
+	m_gl.framebufferTexture3DOES(target, attachment, textarget, texture, level, zoffset);
+}
+
 void CallLogWrapper::glFramebufferTextureLayer (glw::GLenum target, glw::GLenum attachment, glw::GLuint texture, glw::GLint level, glw::GLint layer)
 {
 	if (m_enableLog)
@@ -4810,6 +4838,13 @@
 	m_gl.texImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
 }
 
+void CallLogWrapper::glTexImage3DOES (glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLenum format, glw::GLenum type, const void *pixels)
+{
+	if (m_enableLog)
+		m_log << TestLog::Message << "glTexImage3DOES(" << toHex(target) << ", " << level << ", " << toHex(internalformat) << ", " << width << ", " << height << ", " << depth << ", " << border << ", " << toHex(format) << ", " << toHex(type) << ", " << pixels << ");" << TestLog::EndMessage;
+	m_gl.texImage3DOES(target, level, internalformat, width, height, depth, border, format, type, pixels);
+}
+
 void CallLogWrapper::glTexPageCommitmentARB (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLboolean commit)
 {
 	if (m_enableLog)
@@ -4915,6 +4950,13 @@
 	m_gl.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
 }
 
+void CallLogWrapper::glTexSubImage3DOES (glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLenum type, const void *pixels)
+{
+	if (m_enableLog)
+		m_log << TestLog::Message << "glTexSubImage3DOES(" << toHex(target) << ", " << level << ", " << xoffset << ", " << yoffset << ", " << zoffset << ", " << width << ", " << height << ", " << depth << ", " << toHex(format) << ", " << toHex(type) << ", " << pixels << ");" << TestLog::EndMessage;
+	m_gl.texSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
+}
+
 void CallLogWrapper::glTextureBarrier (void)
 {
 	if (m_enableLog)
diff --git a/framework/opengl/gluCallLogWrapperApi.inl b/framework/opengl/gluCallLogWrapperApi.inl
index 3ac2072..9911fe4 100644
--- a/framework/opengl/gluCallLogWrapperApi.inl
+++ b/framework/opengl/gluCallLogWrapperApi.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 void					glActiveShaderProgram								(glw::GLuint pipeline, glw::GLuint program);
 void					glActiveTexture										(glw::GLenum texture);
@@ -89,9 +89,11 @@
 void					glCompressedTexImage1D								(glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLint border, glw::GLsizei imageSize, const void *data);
 void					glCompressedTexImage2D								(glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLint border, glw::GLsizei imageSize, const void *data);
 void					glCompressedTexImage3D								(glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLsizei imageSize, const void *data);
+void					glCompressedTexImage3DOES							(glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLsizei imageSize, const void *data);
 void					glCompressedTexSubImage1D							(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLsizei width, glw::GLenum format, glw::GLsizei imageSize, const void *data);
 void					glCompressedTexSubImage2D							(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLsizei width, glw::GLsizei height, glw::GLenum format, glw::GLsizei imageSize, const void *data);
 void					glCompressedTexSubImage3D							(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLsizei imageSize, const void *data);
+void					glCompressedTexSubImage3DOES						(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLsizei imageSize, const void *data);
 void					glCompressedTextureImage1DEXT						(glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLint border, glw::GLsizei imageSize, const void *bits);
 void					glCompressedTextureImage2DEXT						(glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLint border, glw::GLsizei imageSize, const void *bits);
 void					glCompressedTextureImage3DEXT						(glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLsizei imageSize, const void *bits);
@@ -114,6 +116,7 @@
 void					glCopyTexSubImage1D									(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint x, glw::GLint y, glw::GLsizei width);
 void					glCopyTexSubImage2D									(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height);
 void					glCopyTexSubImage3D									(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height);
+void					glCopyTexSubImage3DOES								(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height);
 void					glCopyTextureImage1DEXT								(glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLint border);
 void					glCopyTextureImage2DEXT								(glw::GLuint texture, glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLint x, glw::GLint y, glw::GLsizei width, glw::GLsizei height, glw::GLint border);
 void					glCopyTextureSubImage1D								(glw::GLuint texture, glw::GLint level, glw::GLint xoffset, glw::GLint x, glw::GLint y, glw::GLsizei width);
@@ -218,6 +221,7 @@
 void					glFramebufferTexture1D								(glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level);
 void					glFramebufferTexture2D								(glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level);
 void					glFramebufferTexture3D								(glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level, glw::GLint zoffset);
+void					glFramebufferTexture3DOES							(glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level, glw::GLint zoffset);
 void					glFramebufferTextureLayer							(glw::GLenum target, glw::GLenum attachment, glw::GLuint texture, glw::GLint level, glw::GLint layer);
 void					glFrontFace											(glw::GLenum mode);
 void					glGenBuffers										(glw::GLsizei n, glw::GLuint *buffers);
@@ -656,6 +660,7 @@
 void					glTexImage2DMultisample								(glw::GLenum target, glw::GLsizei samples, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLboolean fixedsamplelocations);
 void					glTexImage3D										(glw::GLenum target, glw::GLint level, glw::GLint internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLenum format, glw::GLenum type, const void *pixels);
 void					glTexImage3DMultisample								(glw::GLenum target, glw::GLsizei samples, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLboolean fixedsamplelocations);
+void					glTexImage3DOES										(glw::GLenum target, glw::GLint level, glw::GLenum internalformat, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLint border, glw::GLenum format, glw::GLenum type, const void *pixels);
 void					glTexPageCommitmentARB								(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLboolean commit);
 void					glTexParameterIiv									(glw::GLenum target, glw::GLenum pname, const glw::GLint *params);
 void					glTexParameterIuiv									(glw::GLenum target, glw::GLenum pname, const glw::GLuint *params);
@@ -671,6 +676,7 @@
 void					glTexSubImage1D										(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLsizei width, glw::GLenum format, glw::GLenum type, const void *pixels);
 void					glTexSubImage2D										(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLsizei width, glw::GLsizei height, glw::GLenum format, glw::GLenum type, const void *pixels);
 void					glTexSubImage3D										(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLenum type, const void *pixels);
+void					glTexSubImage3DOES									(glw::GLenum target, glw::GLint level, glw::GLint xoffset, glw::GLint yoffset, glw::GLint zoffset, glw::GLsizei width, glw::GLsizei height, glw::GLsizei depth, glw::GLenum format, glw::GLenum type, const void *pixels);
 void					glTextureBarrier									(void);
 void					glTextureBuffer										(glw::GLuint texture, glw::GLenum internalformat, glw::GLuint buffer);
 void					glTextureBufferEXT									(glw::GLuint texture, glw::GLenum target, glw::GLenum internalformat, glw::GLuint buffer);
diff --git a/framework/opengl/gluES3PlusWrapperFuncs.inl b/framework/opengl/gluES3PlusWrapperFuncs.inl
index c70eb71..cede76a 100644
--- a/framework/opengl/gluES3PlusWrapperFuncs.inl
+++ b/framework/opengl/gluES3PlusWrapperFuncs.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 dst->activeShaderProgram					= src.activeShaderProgram;
 dst->activeTexture							= src.activeTexture;
diff --git a/framework/opengl/gluQueryUtil.inl b/framework/opengl/gluQueryUtil.inl
index 7f30ea8..45e4858 100644
--- a/framework/opengl/gluQueryUtil.inl
+++ b/framework/opengl/gluQueryUtil.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 
 int getBasicQueryNumArgsOut (int pname)
diff --git a/framework/opengl/gluStrUtil.inl b/framework/opengl/gluStrUtil.inl
index ef4d780..9707cf4 100644
--- a/framework/opengl/gluStrUtil.inl
+++ b/framework/opengl/gluStrUtil.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 
 const char* getErrorName (int value)
diff --git a/framework/opengl/gluStrUtilPrototypes.inl b/framework/opengl/gluStrUtilPrototypes.inl
index 8cfbd72..0842272 100644
--- a/framework/opengl/gluStrUtilPrototypes.inl
+++ b/framework/opengl/gluStrUtilPrototypes.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 const char*							getErrorName							(int value);
 const char*							getTypeName								(int value);
diff --git a/framework/opengl/wrapper/glwApi.inl b/framework/opengl/wrapper/glwApi.inl
index c317eea..086fafc 100644
--- a/framework/opengl/wrapper/glwApi.inl
+++ b/framework/opengl/wrapper/glwApi.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 #define			glActiveShaderProgram								glwActiveShaderProgram
 #define			glActiveTexture										glwActiveTexture
@@ -89,9 +89,11 @@
 #define			glCompressedTexImage1D								glwCompressedTexImage1D
 #define			glCompressedTexImage2D								glwCompressedTexImage2D
 #define			glCompressedTexImage3D								glwCompressedTexImage3D
+#define			glCompressedTexImage3DOES							glwCompressedTexImage3DOES
 #define			glCompressedTexSubImage1D							glwCompressedTexSubImage1D
 #define			glCompressedTexSubImage2D							glwCompressedTexSubImage2D
 #define			glCompressedTexSubImage3D							glwCompressedTexSubImage3D
+#define			glCompressedTexSubImage3DOES						glwCompressedTexSubImage3DOES
 #define			glCompressedTextureImage1DEXT						glwCompressedTextureImage1DEXT
 #define			glCompressedTextureImage2DEXT						glwCompressedTextureImage2DEXT
 #define			glCompressedTextureImage3DEXT						glwCompressedTextureImage3DEXT
@@ -114,6 +116,7 @@
 #define			glCopyTexSubImage1D									glwCopyTexSubImage1D
 #define			glCopyTexSubImage2D									glwCopyTexSubImage2D
 #define			glCopyTexSubImage3D									glwCopyTexSubImage3D
+#define			glCopyTexSubImage3DOES								glwCopyTexSubImage3DOES
 #define			glCopyTextureImage1DEXT								glwCopyTextureImage1DEXT
 #define			glCopyTextureImage2DEXT								glwCopyTextureImage2DEXT
 #define			glCopyTextureSubImage1D								glwCopyTextureSubImage1D
@@ -218,6 +221,7 @@
 #define			glFramebufferTexture1D								glwFramebufferTexture1D
 #define			glFramebufferTexture2D								glwFramebufferTexture2D
 #define			glFramebufferTexture3D								glwFramebufferTexture3D
+#define			glFramebufferTexture3DOES							glwFramebufferTexture3DOES
 #define			glFramebufferTextureLayer							glwFramebufferTextureLayer
 #define			glFrontFace											glwFrontFace
 #define			glGenBuffers										glwGenBuffers
@@ -656,6 +660,7 @@
 #define			glTexImage2DMultisample								glwTexImage2DMultisample
 #define			glTexImage3D										glwTexImage3D
 #define			glTexImage3DMultisample								glwTexImage3DMultisample
+#define			glTexImage3DOES										glwTexImage3DOES
 #define			glTexPageCommitmentARB								glwTexPageCommitmentARB
 #define			glTexParameterIiv									glwTexParameterIiv
 #define			glTexParameterIuiv									glwTexParameterIuiv
@@ -671,6 +676,7 @@
 #define			glTexSubImage1D										glwTexSubImage1D
 #define			glTexSubImage2D										glwTexSubImage2D
 #define			glTexSubImage3D										glwTexSubImage3D
+#define			glTexSubImage3DOES									glwTexSubImage3DOES
 #define			glTextureBarrier									glwTextureBarrier
 #define			glTextureBuffer										glwTextureBuffer
 #define			glTextureBufferEXT									glwTextureBufferEXT
@@ -971,9 +977,11 @@
 void			glwCompressedTexImage1D								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
 void			glwCompressedTexImage2D								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
 void			glwCompressedTexImage3D								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
+void			glwCompressedTexImage3DOES							(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
 void			glwCompressedTexSubImage1D							(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
 void			glwCompressedTexSubImage2D							(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
 void			glwCompressedTexSubImage3D							(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+void			glwCompressedTexSubImage3DOES						(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
 void			glwCompressedTextureImage1DEXT						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits);
 void			glwCompressedTextureImage2DEXT						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits);
 void			glwCompressedTextureImage3DEXT						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
@@ -996,6 +1004,7 @@
 void			glwCopyTexSubImage1D								(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
 void			glwCopyTexSubImage2D								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 void			glwCopyTexSubImage3D								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void			glwCopyTexSubImage3DOES								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 void			glwCopyTextureImage1DEXT							(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
 void			glwCopyTextureImage2DEXT							(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
 void			glwCopyTextureSubImage1D							(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
@@ -1100,6 +1109,7 @@
 void			glwFramebufferTexture1D								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
 void			glwFramebufferTexture2D								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
 void			glwFramebufferTexture3D								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void			glwFramebufferTexture3DOES							(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
 void			glwFramebufferTextureLayer							(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
 void			glwFrontFace										(GLenum mode);
 void			glwGenBuffers										(GLsizei n, GLuint *buffers);
@@ -1538,6 +1548,7 @@
 void			glwTexImage2DMultisample							(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
 void			glwTexImage3D										(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
 void			glwTexImage3DMultisample							(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void			glwTexImage3DOES									(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
 void			glwTexPageCommitmentARB								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
 void			glwTexParameterIiv									(GLenum target, GLenum pname, const GLint *params);
 void			glwTexParameterIuiv									(GLenum target, GLenum pname, const GLuint *params);
@@ -1553,6 +1564,7 @@
 void			glwTexSubImage1D									(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
 void			glwTexSubImage2D									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
 void			glwTexSubImage3D									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
+void			glwTexSubImage3DOES									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
 void			glwTextureBarrier									();
 void			glwTextureBuffer									(GLuint texture, GLenum internalformat, GLuint buffer);
 void			glwTextureBufferEXT									(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
diff --git a/framework/opengl/wrapper/glwEnums.inl b/framework/opengl/wrapper/glwEnums.inl
index 2df4c82..758b691 100644
--- a/framework/opengl/wrapper/glwEnums.inl
+++ b/framework/opengl/wrapper/glwEnums.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 #define GL_DEPTH_BUFFER_BIT												0x00000100
 #define GL_STENCIL_BUFFER_BIT											0x00000400
diff --git a/framework/opengl/wrapper/glwFunctionTypes.inl b/framework/opengl/wrapper/glwFunctionTypes.inl
index 077f8f5..e3832c6 100644
--- a/framework/opengl/wrapper/glwFunctionTypes.inl
+++ b/framework/opengl/wrapper/glwFunctionTypes.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 typedef GLW_APICALL void			(GLW_APIENTRY* glActiveShaderProgramFunc)								(GLuint pipeline, GLuint program);
 typedef GLW_APICALL void			(GLW_APIENTRY* glActiveTextureFunc)										(GLenum texture);
@@ -89,9 +89,11 @@
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexImage1DFunc)								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexImage2DFunc)								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexImage3DFunc)								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
+typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexImage3DOESFunc)							(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexSubImage1DFunc)							(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexSubImage2DFunc)							(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexSubImage3DFunc)							(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTexSubImage3DOESFunc)						(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTextureImage1DEXTFunc)						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTextureImage2DEXTFunc)						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCompressedTextureImage3DEXTFunc)						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
@@ -114,6 +116,7 @@
 typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTexSubImage1DFunc)									(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTexSubImage2DFunc)									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTexSubImage3DFunc)									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTexSubImage3DOESFunc)								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTextureImage1DEXTFunc)								(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTextureImage2DEXTFunc)								(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
 typedef GLW_APICALL void			(GLW_APIENTRY* glCopyTextureSubImage1DFunc)								(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
@@ -218,6 +221,7 @@
 typedef GLW_APICALL void			(GLW_APIENTRY* glFramebufferTexture1DFunc)								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
 typedef GLW_APICALL void			(GLW_APIENTRY* glFramebufferTexture2DFunc)								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
 typedef GLW_APICALL void			(GLW_APIENTRY* glFramebufferTexture3DFunc)								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef GLW_APICALL void			(GLW_APIENTRY* glFramebufferTexture3DOESFunc)							(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
 typedef GLW_APICALL void			(GLW_APIENTRY* glFramebufferTextureLayerFunc)							(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
 typedef GLW_APICALL void			(GLW_APIENTRY* glFrontFaceFunc)											(GLenum mode);
 typedef GLW_APICALL void			(GLW_APIENTRY* glGenBuffersFunc)										(GLsizei n, GLuint *buffers);
@@ -656,6 +660,7 @@
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexImage2DMultisampleFunc)								(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexImage3DFunc)										(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexImage3DMultisampleFunc)								(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef GLW_APICALL void			(GLW_APIENTRY* glTexImage3DOESFunc)										(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexPageCommitmentARBFunc)								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexParameterIivFunc)									(GLenum target, GLenum pname, const GLint *params);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexParameterIuivFunc)									(GLenum target, GLenum pname, const GLuint *params);
@@ -671,6 +676,7 @@
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexSubImage1DFunc)										(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexSubImage2DFunc)										(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTexSubImage3DFunc)										(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
+typedef GLW_APICALL void			(GLW_APIENTRY* glTexSubImage3DOESFunc)									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTextureBarrierFunc)									(void);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTextureBufferFunc)										(GLuint texture, GLenum internalformat, GLuint buffer);
 typedef GLW_APICALL void			(GLW_APIENTRY* glTextureBufferEXTFunc)									(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
diff --git a/framework/opengl/wrapper/glwFunctions.inl b/framework/opengl/wrapper/glwFunctions.inl
index 4b61f1d..996752d 100644
--- a/framework/opengl/wrapper/glwFunctions.inl
+++ b/framework/opengl/wrapper/glwFunctions.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 glActiveShaderProgramFunc								activeShaderProgram;
 glActiveTextureFunc										activeTexture;
@@ -89,9 +89,11 @@
 glCompressedTexImage1DFunc								compressedTexImage1D;
 glCompressedTexImage2DFunc								compressedTexImage2D;
 glCompressedTexImage3DFunc								compressedTexImage3D;
+glCompressedTexImage3DOESFunc							compressedTexImage3DOES;
 glCompressedTexSubImage1DFunc							compressedTexSubImage1D;
 glCompressedTexSubImage2DFunc							compressedTexSubImage2D;
 glCompressedTexSubImage3DFunc							compressedTexSubImage3D;
+glCompressedTexSubImage3DOESFunc						compressedTexSubImage3DOES;
 glCompressedTextureImage1DEXTFunc						compressedTextureImage1DEXT;
 glCompressedTextureImage2DEXTFunc						compressedTextureImage2DEXT;
 glCompressedTextureImage3DEXTFunc						compressedTextureImage3DEXT;
@@ -114,6 +116,7 @@
 glCopyTexSubImage1DFunc									copyTexSubImage1D;
 glCopyTexSubImage2DFunc									copyTexSubImage2D;
 glCopyTexSubImage3DFunc									copyTexSubImage3D;
+glCopyTexSubImage3DOESFunc								copyTexSubImage3DOES;
 glCopyTextureImage1DEXTFunc								copyTextureImage1DEXT;
 glCopyTextureImage2DEXTFunc								copyTextureImage2DEXT;
 glCopyTextureSubImage1DFunc								copyTextureSubImage1D;
@@ -218,6 +221,7 @@
 glFramebufferTexture1DFunc								framebufferTexture1D;
 glFramebufferTexture2DFunc								framebufferTexture2D;
 glFramebufferTexture3DFunc								framebufferTexture3D;
+glFramebufferTexture3DOESFunc							framebufferTexture3DOES;
 glFramebufferTextureLayerFunc							framebufferTextureLayer;
 glFrontFaceFunc											frontFace;
 glGenBuffersFunc										genBuffers;
@@ -656,6 +660,7 @@
 glTexImage2DMultisampleFunc								texImage2DMultisample;
 glTexImage3DFunc										texImage3D;
 glTexImage3DMultisampleFunc								texImage3DMultisample;
+glTexImage3DOESFunc										texImage3DOES;
 glTexPageCommitmentARBFunc								texPageCommitmentARB;
 glTexParameterIivFunc									texParameterIiv;
 glTexParameterIuivFunc									texParameterIuiv;
@@ -671,6 +676,7 @@
 glTexSubImage1DFunc										texSubImage1D;
 glTexSubImage2DFunc										texSubImage2D;
 glTexSubImage3DFunc										texSubImage3D;
+glTexSubImage3DOESFunc									texSubImage3DOES;
 glTextureBarrierFunc									textureBarrier;
 glTextureBufferFunc										textureBuffer;
 glTextureBufferEXTFunc									textureBufferEXT;
diff --git a/framework/opengl/wrapper/glwImpl.inl b/framework/opengl/wrapper/glwImpl.inl
index 7c11b5a..86a6b84 100644
--- a/framework/opengl/wrapper/glwImpl.inl
+++ b/framework/opengl/wrapper/glwImpl.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 
 void glwActiveShaderProgram (GLuint pipeline, GLuint program)
@@ -692,6 +692,14 @@
 	gl->compressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
 }
 
+void glwCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
+{
+	const glw::Functions* gl = glw::getCurrentThreadFunctions();
+	if (!gl)
+		return;
+	gl->compressedTexImage3DOES(target, level, internalformat, width, height, depth, border, imageSize, data);
+}
+
 void glwCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)
 {
 	const glw::Functions* gl = glw::getCurrentThreadFunctions();
@@ -716,6 +724,14 @@
 	gl->compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
 }
 
+void glwCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
+{
+	const glw::Functions* gl = glw::getCurrentThreadFunctions();
+	if (!gl)
+		return;
+	gl->compressedTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
 void glwCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits)
 {
 	const glw::Functions* gl = glw::getCurrentThreadFunctions();
@@ -892,6 +908,14 @@
 	gl->copyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
 }
 
+void glwCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+	const glw::Functions* gl = glw::getCurrentThreadFunctions();
+	if (!gl)
+		return;
+	gl->copyTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
 void glwCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
 {
 	const glw::Functions* gl = glw::getCurrentThreadFunctions();
@@ -1724,6 +1748,14 @@
 	gl->framebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
 }
 
+void glwFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+	const glw::Functions* gl = glw::getCurrentThreadFunctions();
+	if (!gl)
+		return;
+	gl->framebufferTexture3DOES(target, attachment, textarget, texture, level, zoffset);
+}
+
 void glwFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
 {
 	const glw::Functions* gl = glw::getCurrentThreadFunctions();
@@ -5228,6 +5260,14 @@
 	gl->texImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
 }
 
+void glwTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
+{
+	const glw::Functions* gl = glw::getCurrentThreadFunctions();
+	if (!gl)
+		return;
+	gl->texImage3DOES(target, level, internalformat, width, height, depth, border, format, type, pixels);
+}
+
 void glwTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit)
 {
 	const glw::Functions* gl = glw::getCurrentThreadFunctions();
@@ -5348,6 +5388,14 @@
 	gl->texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
 }
 
+void glwTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
+{
+	const glw::Functions* gl = glw::getCurrentThreadFunctions();
+	if (!gl)
+		return;
+	gl->texSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
+}
+
 void glwTextureBarrier (void)
 {
 	const glw::Functions* gl = glw::getCurrentThreadFunctions();
diff --git a/framework/opengl/wrapper/glwInitES20.inl b/framework/opengl/wrapper/glwInitES20.inl
index 921c26e..5d42df2 100644
--- a/framework/opengl/wrapper/glwInitES20.inl
+++ b/framework/opengl/wrapper/glwInitES20.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitES20Direct.inl b/framework/opengl/wrapper/glwInitES20Direct.inl
index d315267..edd9e89 100644
--- a/framework/opengl/wrapper/glwInitES20Direct.inl
+++ b/framework/opengl/wrapper/glwInitES20Direct.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeTexture						= &glActiveTexture;
 gl->attachShader						= &glAttachShader;
diff --git a/framework/opengl/wrapper/glwInitES30.inl b/framework/opengl/wrapper/glwInitES30.inl
index ba73a6a..ecd2021 100644
--- a/framework/opengl/wrapper/glwInitES30.inl
+++ b/framework/opengl/wrapper/glwInitES30.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitES30Direct.inl b/framework/opengl/wrapper/glwInitES30Direct.inl
index bac790a..b97bcb1 100644
--- a/framework/opengl/wrapper/glwInitES30Direct.inl
+++ b/framework/opengl/wrapper/glwInitES30Direct.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeTexture						= &glActiveTexture;
 gl->attachShader						= &glAttachShader;
diff --git a/framework/opengl/wrapper/glwInitES31.inl b/framework/opengl/wrapper/glwInitES31.inl
index 5a63a36..7912f0e 100644
--- a/framework/opengl/wrapper/glwInitES31.inl
+++ b/framework/opengl/wrapper/glwInitES31.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeShaderProgram					= (glActiveShaderProgramFunc)					loader->get("glActiveShaderProgram");
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwInitES31Direct.inl b/framework/opengl/wrapper/glwInitES31Direct.inl
index f2a44b7..7dc6b52 100644
--- a/framework/opengl/wrapper/glwInitES31Direct.inl
+++ b/framework/opengl/wrapper/glwInitES31Direct.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeShaderProgram					= &glActiveShaderProgram;
 gl->activeTexture						= &glActiveTexture;
diff --git a/framework/opengl/wrapper/glwInitES32.inl b/framework/opengl/wrapper/glwInitES32.inl
index 3ec0bb2..d74bbdf 100644
--- a/framework/opengl/wrapper/glwInitES32.inl
+++ b/framework/opengl/wrapper/glwInitES32.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeShaderProgram					= (glActiveShaderProgramFunc)					loader->get("glActiveShaderProgram");
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwInitES32Direct.inl b/framework/opengl/wrapper/glwInitES32Direct.inl
index 4803493..bfb0bab 100644
--- a/framework/opengl/wrapper/glwInitES32Direct.inl
+++ b/framework/opengl/wrapper/glwInitES32Direct.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeShaderProgram					= &glActiveShaderProgram;
 gl->activeTexture						= &glActiveTexture;
diff --git a/framework/opengl/wrapper/glwInitExtES.inl b/framework/opengl/wrapper/glwInitExtES.inl
index b29d861..0c12ebf 100644
--- a/framework/opengl/wrapper/glwInitExtES.inl
+++ b/framework/opengl/wrapper/glwInitExtES.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 
 if (de::contains(extSet, "GL_KHR_blend_equation_advanced"))
@@ -124,12 +124,12 @@
 
 if (de::contains(extSet, "GL_OES_texture_3D"))
 {
-	gl->compressedTexImage3D	= (glCompressedTexImage3DFunc)		loader->get("glCompressedTexImage3DOES");
-	gl->compressedTexSubImage3D	= (glCompressedTexSubImage3DFunc)	loader->get("glCompressedTexSubImage3DOES");
-	gl->copyTexSubImage3D		= (glCopyTexSubImage3DFunc)			loader->get("glCopyTexSubImage3DOES");
-	gl->framebufferTexture3D	= (glFramebufferTexture3DFunc)		loader->get("glFramebufferTexture3DOES");
-	gl->texImage3D				= (glTexImage3DFunc)				loader->get("glTexImage3DOES");
-	gl->texSubImage3D			= (glTexSubImage3DFunc)				loader->get("glTexSubImage3DOES");
+	gl->compressedTexImage3DOES		= (glCompressedTexImage3DOESFunc)		loader->get("glCompressedTexImage3DOES");
+	gl->compressedTexSubImage3DOES	= (glCompressedTexSubImage3DOESFunc)	loader->get("glCompressedTexSubImage3DOES");
+	gl->copyTexSubImage3DOES		= (glCopyTexSubImage3DOESFunc)			loader->get("glCopyTexSubImage3DOES");
+	gl->framebufferTexture3DOES		= (glFramebufferTexture3DOESFunc)		loader->get("glFramebufferTexture3DOES");
+	gl->texImage3DOES				= (glTexImage3DOESFunc)					loader->get("glTexImage3DOES");
+	gl->texSubImage3DOES			= (glTexSubImage3DOESFunc)				loader->get("glTexSubImage3DOES");
 }
 
 if (de::contains(extSet, "GL_OES_texture_storage_multisample_2d_array"))
diff --git a/framework/opengl/wrapper/glwInitExtGL.inl b/framework/opengl/wrapper/glwInitExtGL.inl
index e608d15..2ed48f0 100644
--- a/framework/opengl/wrapper/glwInitExtGL.inl
+++ b/framework/opengl/wrapper/glwInitExtGL.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 
 if (de::contains(extSet, "GL_KHR_blend_equation_advanced"))
diff --git a/framework/opengl/wrapper/glwInitGL30.inl b/framework/opengl/wrapper/glwInitGL30.inl
index dcbd864..5592a6e 100644
--- a/framework/opengl/wrapper/glwInitGL30.inl
+++ b/framework/opengl/wrapper/glwInitGL30.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitGL31.inl b/framework/opengl/wrapper/glwInitGL31.inl
index 4ffbaf5..6ef5233 100644
--- a/framework/opengl/wrapper/glwInitGL31.inl
+++ b/framework/opengl/wrapper/glwInitGL31.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitGL32.inl b/framework/opengl/wrapper/glwInitGL32.inl
index 64b0b4e..4a132d1 100644
--- a/framework/opengl/wrapper/glwInitGL32.inl
+++ b/framework/opengl/wrapper/glwInitGL32.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitGL33.inl b/framework/opengl/wrapper/glwInitGL33.inl
index ec4feb6..ad58e27 100644
--- a/framework/opengl/wrapper/glwInitGL33.inl
+++ b/framework/opengl/wrapper/glwInitGL33.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitGL40.inl b/framework/opengl/wrapper/glwInitGL40.inl
index fb93dcf..8676868 100644
--- a/framework/opengl/wrapper/glwInitGL40.inl
+++ b/framework/opengl/wrapper/glwInitGL40.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
 gl->attachShader						= (glAttachShaderFunc)							loader->get("glAttachShader");
diff --git a/framework/opengl/wrapper/glwInitGL41.inl b/framework/opengl/wrapper/glwInitGL41.inl
index 3772046..b320e5a 100644
--- a/framework/opengl/wrapper/glwInitGL41.inl
+++ b/framework/opengl/wrapper/glwInitGL41.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeShaderProgram					= (glActiveShaderProgramFunc)					loader->get("glActiveShaderProgram");
 gl->activeTexture						= (glActiveTextureFunc)							loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwInitGL42.inl b/framework/opengl/wrapper/glwInitGL42.inl
index e331aa2..d730ece 100644
--- a/framework/opengl/wrapper/glwInitGL42.inl
+++ b/framework/opengl/wrapper/glwInitGL42.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeShaderProgram							= (glActiveShaderProgramFunc)							loader->get("glActiveShaderProgram");
 gl->activeTexture								= (glActiveTextureFunc)									loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwInitGL43.inl b/framework/opengl/wrapper/glwInitGL43.inl
index afb6557..803b342 100644
--- a/framework/opengl/wrapper/glwInitGL43.inl
+++ b/framework/opengl/wrapper/glwInitGL43.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeShaderProgram							= (glActiveShaderProgramFunc)							loader->get("glActiveShaderProgram");
 gl->activeTexture								= (glActiveTextureFunc)									loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwInitGL44.inl b/framework/opengl/wrapper/glwInitGL44.inl
index 3558eb6..4d3b4b9 100644
--- a/framework/opengl/wrapper/glwInitGL44.inl
+++ b/framework/opengl/wrapper/glwInitGL44.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeShaderProgram							= (glActiveShaderProgramFunc)							loader->get("glActiveShaderProgram");
 gl->activeTexture								= (glActiveTextureFunc)									loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwInitGL45.inl b/framework/opengl/wrapper/glwInitGL45.inl
index 65d556e..eda0043 100644
--- a/framework/opengl/wrapper/glwInitGL45.inl
+++ b/framework/opengl/wrapper/glwInitGL45.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeShaderProgram							= (glActiveShaderProgramFunc)							loader->get("glActiveShaderProgram");
 gl->activeTexture								= (glActiveTextureFunc)									loader->get("glActiveTexture");
diff --git a/framework/opengl/wrapper/glwVersions.inl b/framework/opengl/wrapper/glwVersions.inl
index 2c1c845..addc9b6 100644
--- a/framework/opengl/wrapper/glwVersions.inl
+++ b/framework/opengl/wrapper/glwVersions.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 #define GL_ES_VERSION_2_0	1
 #define GL_ES_VERSION_3_0	1
diff --git a/framework/platform/null/tcuNullRenderContextFuncs.inl b/framework/platform/null/tcuNullRenderContextFuncs.inl
index bf8bbe4..08f15c6 100644
--- a/framework/platform/null/tcuNullRenderContextFuncs.inl
+++ b/framework/platform/null/tcuNullRenderContextFuncs.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 
 GLW_APICALL void GLW_APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program)
@@ -767,6 +767,20 @@
 
 }
 
+GLW_APICALL void GLW_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
+{
+	DE_UNREF(target);
+	DE_UNREF(level);
+	DE_UNREF(internalformat);
+	DE_UNREF(width);
+	DE_UNREF(height);
+	DE_UNREF(depth);
+	DE_UNREF(border);
+	DE_UNREF(imageSize);
+	DE_UNREF(data);
+
+}
+
 GLW_APICALL void GLW_APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)
 {
 	DE_UNREF(target);
@@ -809,6 +823,22 @@
 
 }
 
+GLW_APICALL void GLW_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
+{
+	DE_UNREF(target);
+	DE_UNREF(level);
+	DE_UNREF(xoffset);
+	DE_UNREF(yoffset);
+	DE_UNREF(zoffset);
+	DE_UNREF(width);
+	DE_UNREF(height);
+	DE_UNREF(depth);
+	DE_UNREF(format);
+	DE_UNREF(imageSize);
+	DE_UNREF(data);
+
+}
+
 GLW_APICALL void GLW_APIENTRY glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits)
 {
 	DE_UNREF(texture);
@@ -1109,6 +1139,20 @@
 
 }
 
+GLW_APICALL void GLW_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+	DE_UNREF(target);
+	DE_UNREF(level);
+	DE_UNREF(xoffset);
+	DE_UNREF(yoffset);
+	DE_UNREF(zoffset);
+	DE_UNREF(x);
+	DE_UNREF(y);
+	DE_UNREF(width);
+	DE_UNREF(height);
+
+}
+
 GLW_APICALL void GLW_APIENTRY glCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
 {
 	DE_UNREF(texture);
@@ -1923,6 +1967,17 @@
 
 }
 
+GLW_APICALL void GLW_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+	DE_UNREF(target);
+	DE_UNREF(attachment);
+	DE_UNREF(textarget);
+	DE_UNREF(texture);
+	DE_UNREF(level);
+	DE_UNREF(zoffset);
+
+}
+
 GLW_APICALL void GLW_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
 {
 	DE_UNREF(target);
@@ -5636,6 +5691,21 @@
 
 }
 
+GLW_APICALL void GLW_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
+{
+	DE_UNREF(target);
+	DE_UNREF(level);
+	DE_UNREF(internalformat);
+	DE_UNREF(width);
+	DE_UNREF(height);
+	DE_UNREF(depth);
+	DE_UNREF(border);
+	DE_UNREF(format);
+	DE_UNREF(type);
+	DE_UNREF(pixels);
+
+}
+
 GLW_APICALL void GLW_APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit)
 {
 	DE_UNREF(target);
@@ -5793,6 +5863,22 @@
 
 }
 
+GLW_APICALL void GLW_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
+{
+	DE_UNREF(target);
+	DE_UNREF(level);
+	DE_UNREF(xoffset);
+	DE_UNREF(yoffset);
+	DE_UNREF(zoffset);
+	DE_UNREF(width);
+	DE_UNREF(height);
+	DE_UNREF(depth);
+	DE_UNREF(format);
+	DE_UNREF(type);
+	DE_UNREF(pixels);
+
+}
+
 GLW_APICALL void GLW_APIENTRY glTextureBarrier (void)
 {
 
diff --git a/framework/platform/null/tcuNullRenderContextInitFuncs.inl b/framework/platform/null/tcuNullRenderContextInitFuncs.inl
index fe84c03..a4ed40f 100644
--- a/framework/platform/null/tcuNullRenderContextInitFuncs.inl
+++ b/framework/platform/null/tcuNullRenderContextInitFuncs.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 GL API description (gl.xml) revision 967f96c92bae15baa1a4326a55222984befdc9ed.
+ * Generated from Khronos GL API description (gl.xml) revision 97558118d4a8ab2af749867899555273c20827ce.
  */
 gl->activeShaderProgram								= glActiveShaderProgram;
 gl->activeTexture									= glActiveTexture;
@@ -89,9 +89,11 @@
 gl->compressedTexImage1D							= glCompressedTexImage1D;
 gl->compressedTexImage2D							= glCompressedTexImage2D;
 gl->compressedTexImage3D							= glCompressedTexImage3D;
+gl->compressedTexImage3DOES							= glCompressedTexImage3DOES;
 gl->compressedTexSubImage1D							= glCompressedTexSubImage1D;
 gl->compressedTexSubImage2D							= glCompressedTexSubImage2D;
 gl->compressedTexSubImage3D							= glCompressedTexSubImage3D;
+gl->compressedTexSubImage3DOES						= glCompressedTexSubImage3DOES;
 gl->compressedTextureImage1DEXT						= glCompressedTextureImage1DEXT;
 gl->compressedTextureImage2DEXT						= glCompressedTextureImage2DEXT;
 gl->compressedTextureImage3DEXT						= glCompressedTextureImage3DEXT;
@@ -114,6 +116,7 @@
 gl->copyTexSubImage1D								= glCopyTexSubImage1D;
 gl->copyTexSubImage2D								= glCopyTexSubImage2D;
 gl->copyTexSubImage3D								= glCopyTexSubImage3D;
+gl->copyTexSubImage3DOES							= glCopyTexSubImage3DOES;
 gl->copyTextureImage1DEXT							= glCopyTextureImage1DEXT;
 gl->copyTextureImage2DEXT							= glCopyTextureImage2DEXT;
 gl->copyTextureSubImage1D							= glCopyTextureSubImage1D;
@@ -218,6 +221,7 @@
 gl->framebufferTexture1D							= glFramebufferTexture1D;
 gl->framebufferTexture2D							= glFramebufferTexture2D;
 gl->framebufferTexture3D							= glFramebufferTexture3D;
+gl->framebufferTexture3DOES							= glFramebufferTexture3DOES;
 gl->framebufferTextureLayer							= glFramebufferTextureLayer;
 gl->frontFace										= glFrontFace;
 gl->genBuffers										= glGenBuffers;
@@ -656,6 +660,7 @@
 gl->texImage2DMultisample							= glTexImage2DMultisample;
 gl->texImage3D										= glTexImage3D;
 gl->texImage3DMultisample							= glTexImage3DMultisample;
+gl->texImage3DOES									= glTexImage3DOES;
 gl->texPageCommitmentARB							= glTexPageCommitmentARB;
 gl->texParameterIiv									= glTexParameterIiv;
 gl->texParameterIuiv								= glTexParameterIuiv;
@@ -671,6 +676,7 @@
 gl->texSubImage1D									= glTexSubImage1D;
 gl->texSubImage2D									= glTexSubImage2D;
 gl->texSubImage3D									= glTexSubImage3D;
+gl->texSubImage3DOES								= glTexSubImage3DOES;
 gl->textureBarrier									= glTextureBarrier;
 gl->textureBuffer									= glTextureBuffer;
 gl->textureBufferEXT								= glTextureBufferEXT;
diff --git a/modules/egl/teglGetProcAddressTests.inl b/modules/egl/teglGetProcAddressTests.inl
index acefb72..b140f81 100644
--- a/modules/egl/teglGetProcAddressTests.inl
+++ b/modules/egl/teglGetProcAddressTests.inl
@@ -1115,6 +1115,12 @@
 	"glDrawTransformFeedbackInstancedEXT",
 };
 
+static const char* s_GL_EXT_external_buffer[] =
+{
+	"glBufferStorageExternalEXT",
+	"glNamedBufferStorageExternalEXT",
+};
+
 static const char* s_GL_EXT_geometry_shader[] =
 {
 	"glFramebufferTextureEXT",
@@ -1127,6 +1133,38 @@
 	"glVertexAttribDivisorEXT",
 };
 
+static const char* s_GL_EXT_memory_object[] =
+{
+	"glBufferStorageMemEXT",
+	"glCreateMemoryObjectsEXT",
+	"glDeleteMemoryObjectsEXT",
+	"glGetMemoryObjectParameterivEXT",
+	"glGetUnsignedBytevEXT",
+	"glGetUnsignedBytei_vEXT",
+	"glIsMemoryObjectEXT",
+	"glMemoryObjectParameterivEXT",
+	"glNamedBufferStorageMemEXT",
+	"glTexStorageMem2DEXT",
+	"glTexStorageMem2DMultisampleEXT",
+	"glTexStorageMem3DEXT",
+	"glTexStorageMem3DMultisampleEXT",
+	"glTextureStorageMem2DEXT",
+	"glTextureStorageMem2DMultisampleEXT",
+	"glTextureStorageMem3DEXT",
+	"glTextureStorageMem3DMultisampleEXT",
+};
+
+static const char* s_GL_EXT_memory_object_fd[] =
+{
+	"glImportMemoryFdEXT",
+};
+
+static const char* s_GL_EXT_memory_object_win32[] =
+{
+	"glImportMemoryWin32HandleEXT",
+	"glImportMemoryWin32NameEXT",
+};
+
 static const char* s_GL_EXT_multi_draw_indirect[] =
 {
 	"glMultiDrawArraysIndirectEXT",
@@ -1166,6 +1204,30 @@
 	"glRasterSamplesEXT",
 };
 
+static const char* s_GL_EXT_semaphore[] =
+{
+	"glDeleteSemaphoresEXT",
+	"glGenSemaphoresEXT",
+	"glGetSemaphoreParameterui64vEXT",
+	"glGetUnsignedBytevEXT",
+	"glGetUnsignedBytei_vEXT",
+	"glIsSemaphoreEXT",
+	"glSemaphoreParameterui64vEXT",
+	"glSignalSemaphoreEXT",
+	"glWaitSemaphoreEXT",
+};
+
+static const char* s_GL_EXT_semaphore_fd[] =
+{
+	"glImportSemaphoreFdEXT",
+};
+
+static const char* s_GL_EXT_semaphore_win32[] =
+{
+	"glImportSemaphoreWin32HandleEXT",
+	"glImportSemaphoreWin32NameEXT",
+};
+
 static const char* s_GL_EXT_separate_shader_objects[] =
 {
 	"glActiveShaderProgramEXT",
@@ -1259,6 +1321,12 @@
 	"glTextureViewEXT",
 };
 
+static const char* s_GL_EXT_win32_keyed_mutex[] =
+{
+	"glAcquireKeyedMutexWin32EXT",
+	"glReleaseKeyedMutexWin32EXT",
+};
+
 static const char* s_GL_EXT_window_rectangles[] =
 {
 	"glWindowRectanglesEXT",
@@ -1703,6 +1771,11 @@
 	"glFramebufferFoveationParametersQCOM",
 };
 
+static const char* s_GL_QCOM_shader_framebuffer_fetch_noncoherent[] =
+{
+	"glFramebufferFetchBarrierQCOM",
+};
+
 static const struct
 {
 	const char*			name;
@@ -1801,14 +1874,21 @@
 	{ "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_draw_transform_feedback",						DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_transform_feedback),					s_GL_EXT_draw_transform_feedback					},
+	{ "GL_EXT_external_buffer",								DE_LENGTH_OF_ARRAY(s_GL_EXT_external_buffer),							s_GL_EXT_external_buffer							},
 	{ "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_memory_object",								DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object),								s_GL_EXT_memory_object								},
+	{ "GL_EXT_memory_object_fd",							DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_fd),							s_GL_EXT_memory_object_fd							},
+	{ "GL_EXT_memory_object_win32",							DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_win32),						s_GL_EXT_memory_object_win32						},
 	{ "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_polygon_offset_clamp",						DE_LENGTH_OF_ARRAY(s_GL_EXT_polygon_offset_clamp),						s_GL_EXT_polygon_offset_clamp						},
 	{ "GL_EXT_primitive_bounding_box",						DE_LENGTH_OF_ARRAY(s_GL_EXT_primitive_bounding_box),					s_GL_EXT_primitive_bounding_box						},
 	{ "GL_EXT_raster_multisample",							DE_LENGTH_OF_ARRAY(s_GL_EXT_raster_multisample),						s_GL_EXT_raster_multisample							},
+	{ "GL_EXT_semaphore",									DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore),									s_GL_EXT_semaphore									},
+	{ "GL_EXT_semaphore_fd",								DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_fd),								s_GL_EXT_semaphore_fd								},
+	{ "GL_EXT_semaphore_win32",								DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_win32),							s_GL_EXT_semaphore_win32							},
 	{ "GL_EXT_separate_shader_objects",						DE_LENGTH_OF_ARRAY(s_GL_EXT_separate_shader_objects),					s_GL_EXT_separate_shader_objects					},
 	{ "GL_EXT_shader_pixel_local_storage2",					DE_LENGTH_OF_ARRAY(s_GL_EXT_shader_pixel_local_storage2),				s_GL_EXT_shader_pixel_local_storage2				},
 	{ "GL_EXT_sparse_texture",								DE_LENGTH_OF_ARRAY(s_GL_EXT_sparse_texture),							s_GL_EXT_sparse_texture								},
@@ -1817,6 +1897,7 @@
 	{ "GL_EXT_texture_buffer",								DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_buffer),							s_GL_EXT_texture_buffer								},
 	{ "GL_EXT_texture_filter_minmax",						DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_filter_minmax),						s_GL_EXT_texture_filter_minmax						},
 	{ "GL_EXT_texture_view",								DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_view),								s_GL_EXT_texture_view								},
+	{ "GL_EXT_win32_keyed_mutex",							DE_LENGTH_OF_ARRAY(s_GL_EXT_win32_keyed_mutex),							s_GL_EXT_win32_keyed_mutex							},
 	{ "GL_EXT_window_rectangles",							DE_LENGTH_OF_ARRAY(s_GL_EXT_window_rectangles),							s_GL_EXT_window_rectangles							},
 	{ "GL_IMG_bindless_texture",							DE_LENGTH_OF_ARRAY(s_GL_IMG_bindless_texture),							s_GL_IMG_bindless_texture							},
 	{ "GL_IMG_framebuffer_downsample",						DE_LENGTH_OF_ARRAY(s_GL_IMG_framebuffer_downsample),					s_GL_IMG_framebuffer_downsample						},
@@ -1867,4 +1948,5 @@
 	{ "GL_OVR_multiview_multisampled_render_to_texture",	DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview_multisampled_render_to_texture),	s_GL_OVR_multiview_multisampled_render_to_texture	},
 	{ "GL_QCOM_alpha_test",									DE_LENGTH_OF_ARRAY(s_GL_QCOM_alpha_test),								s_GL_QCOM_alpha_test								},
 	{ "GL_QCOM_framebuffer_foveated",						DE_LENGTH_OF_ARRAY(s_GL_QCOM_framebuffer_foveated),						s_GL_QCOM_framebuffer_foveated						},
+	{ "GL_QCOM_shader_framebuffer_fetch_noncoherent",		DE_LENGTH_OF_ARRAY(s_GL_QCOM_shader_framebuffer_fetch_noncoherent),		s_GL_QCOM_shader_framebuffer_fetch_noncoherent		},
 };
diff --git a/scripts/opengl/src_util.py b/scripts/opengl/src_util.py
index efc29df..0aea7e1 100644
--- a/scripts/opengl/src_util.py
+++ b/scripts/opengl/src_util.py
@@ -38,8 +38,8 @@
 GL_SOURCE			= khr_util.registry_cache.RegistrySource(
 						"https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry",
 						"xml/gl.xml",
-						"967f96c92bae15baa1a4326a55222984befdc9ed",
-						"f281f2dc6b2206a8852670d161e15fa43723dac5042a991ff4e1702e29d7403d")
+						"97558118d4a8ab2af749867899555273c20827ce",
+						"2475e1ff6d69048e67a49188d8be09195b261ed96b2b4108a0f7d7a459834674")
 
 EXTENSIONS			= [
 	'GL_KHR_texture_compression_astc_ldr',