Merge pull request #415 from jvbsl/fix/missing-and-wrong-enums

Fix/missing and wrong enums
diff --git a/api/GL/glcorearb.h b/api/GL/glcorearb.h
index 7a44138..63235ef 100755
--- a/api/GL/glcorearb.h
+++ b/api/GL/glcorearb.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
@@ -5277,6 +5258,20 @@
 #endif
 #endif /* GL_NV_memory_attachment */
 
+#ifndef GL_NV_memory_object_sparse
+#define GL_NV_memory_object_sparse 1
+typedef void (APIENTRYP PFNGLBUFFERPAGECOMMITMENTMEMNVPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTMEMNVPROC) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+typedef void (APIENTRYP PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBufferPageCommitmentMemNV (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+GLAPI void APIENTRY glTexPageCommitmentMemNV (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+GLAPI void APIENTRY glNamedBufferPageCommitmentMemNV (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+GLAPI void APIENTRY glTexturePageCommitmentMemNV (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+#endif
+#endif /* GL_NV_memory_object_sparse */
+
 #ifndef GL_NV_mesh_shader
 #define GL_NV_mesh_shader 1
 #define GL_MESH_SHADER_NV                 0x9559
diff --git a/api/GL/glext.h b/api/GL/glext.h
index 4f395f6..3593419 100644
--- a/api/GL/glext.h
+++ b/api/GL/glext.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
@@ -51,7 +32,7 @@
 #define GLAPI extern
 #endif
 
-#define GL_GLEXT_VERSION 20200423
+#define GL_GLEXT_VERSION 20200814
 
 #include <KHR/khrplatform.h>
 
@@ -10296,6 +10277,20 @@
 #endif
 #endif /* GL_NV_memory_attachment */
 
+#ifndef GL_NV_memory_object_sparse
+#define GL_NV_memory_object_sparse 1
+typedef void (APIENTRYP PFNGLBUFFERPAGECOMMITMENTMEMNVPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTMEMNVPROC) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+typedef void (APIENTRYP PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBufferPageCommitmentMemNV (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+GLAPI void APIENTRY glTexPageCommitmentMemNV (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+GLAPI void APIENTRY glNamedBufferPageCommitmentMemNV (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+GLAPI void APIENTRY glTexturePageCommitmentMemNV (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+#endif
+#endif /* GL_NV_memory_object_sparse */
+
 #ifndef GL_NV_mesh_shader
 #define GL_NV_mesh_shader 1
 #define GL_MESH_SHADER_NV                 0x9559
@@ -11261,6 +11256,23 @@
 #define GL_FORCE_BLUE_TO_ONE_NV           0x8860
 #endif /* GL_NV_texture_shader3 */
 
+#ifndef GL_NV_timeline_semaphore
+#define GL_NV_timeline_semaphore 1
+#define GL_TIMELINE_SEMAPHORE_VALUE_NV    0x9595
+#define GL_SEMAPHORE_TYPE_NV              0x95B3
+#define GL_SEMAPHORE_TYPE_BINARY_NV       0x95B4
+#define GL_SEMAPHORE_TYPE_TIMELINE_NV     0x95B5
+#define GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6
+typedef void (APIENTRYP PFNGLCREATESEMAPHORESNVPROC) (GLsizei n, GLuint *semaphores);
+typedef void (APIENTRYP PFNGLSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLGETSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCreateSemaphoresNV (GLsizei n, GLuint *semaphores);
+GLAPI void APIENTRY glSemaphoreParameterivNV (GLuint semaphore, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glGetSemaphoreParameterivNV (GLuint semaphore, GLenum pname, GLint *params);
+#endif
+#endif /* GL_NV_timeline_semaphore */
+
 #ifndef GL_NV_transform_feedback
 #define GL_NV_transform_feedback 1
 #define GL_BACK_PRIMARY_COLOR_NV          0x8C77
diff --git a/api/GL/glxext.h b/api/GL/glxext.h
index 8dcc87c..e0dbe7f 100755
--- a/api/GL/glxext.h
+++ b/api/GL/glxext.h
@@ -6,35 +6,16 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
 **   https://github.com/KhronosGroup/OpenGL-Registry
 */
 
-#define GLX_GLXEXT_VERSION 20200408
+#define GLX_GLXEXT_VERSION 20200813
 
 /* Generated C header for:
  * API: glx
diff --git a/api/GL/wgl.h b/api/GL/wgl.h
index 07b4a8e..da02dbf 100644
--- a/api/GL/wgl.h
+++ b/api/GL/wgl.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
@@ -39,7 +20,7 @@
 #include <windows.h>
 #endif
 
-/* Generated on date 20200408 */
+/* Generated on date 20200813 */
 
 /* Generated C header for:
  * API: wgl
diff --git a/api/GL/wglext.h b/api/GL/wglext.h
index ac4b86b..70a2613 100755
--- a/api/GL/wglext.h
+++ b/api/GL/wglext.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
@@ -39,7 +20,7 @@
 #include <windows.h>
 #endif
 
-#define WGL_WGLEXT_VERSION 20200408
+#define WGL_WGLEXT_VERSION 20200813
 
 /* Generated C header for:
  * API: wgl
diff --git a/api/GLES/egl.h b/api/GLES/egl.h
index 86f644c..4f8903d 100644
--- a/api/GLES/egl.h
+++ b/api/GLES/egl.h
@@ -1,17 +1,6 @@
 /*
-** Copyright (c) 2008-2017 The Khronos Group Inc.
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** Copyright 2008-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
diff --git a/api/GLES/gl.h b/api/GLES/gl.h
index 914b8e7..55daa6a 100644
--- a/api/GLES/gl.h
+++ b/api/GLES/gl.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
@@ -36,7 +17,7 @@
 
 #include <GLES/glplatform.h>
 
-/* Generated on date 20200423 */
+/* Generated on date 20200814 */
 
 /* Generated C header for:
  * API: gles1
diff --git a/api/GLES/glext.h b/api/GLES/glext.h
index a51277c..9d53d9a 100644
--- a/api/GLES/glext.h
+++ b/api/GLES/glext.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
@@ -38,7 +19,7 @@
 #define GL_APIENTRYP GL_APIENTRY*
 #endif
 
-/* Generated on date 20200423 */
+/* Generated on date 20200814 */
 
 /* Generated C header for:
  * API: gles1
diff --git a/api/GLES/glplatform.h b/api/GLES/glplatform.h
index 16060a9..3155ef2 100644
--- a/api/GLES/glplatform.h
+++ b/api/GLES/glplatform.h
@@ -2,19 +2,8 @@
 #define __glplatform_h_
 
 /*
-** Copyright (c) 2017 The Khronos Group Inc.
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** Copyright 2017-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /* Platform-specific types and definitions for OpenGL ES 1.X  gl.h
diff --git a/api/GLES2/gl2.h b/api/GLES2/gl2.h
index 00aa7fc..3b1925a 100644
--- a/api/GLES2/gl2.h
+++ b/api/GLES2/gl2.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
@@ -44,7 +25,7 @@
 #define GL_GLES_PROTOTYPES 1
 #endif
 
-/* Generated on date 20200423 */
+/* Generated on date 20200814 */
 
 /* Generated C header for:
  * API: gles2
diff --git a/api/GLES2/gl2ext.h b/api/GLES2/gl2ext.h
index b573a9b..49c4460 100644
--- a/api/GLES2/gl2ext.h
+++ b/api/GLES2/gl2ext.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
@@ -38,7 +19,7 @@
 #define GL_APIENTRYP GL_APIENTRY*
 #endif
 
-/* Generated on date 20200423 */
+/* Generated on date 20200814 */
 
 /* Generated C header for:
  * API: gles2
@@ -350,12 +331,12 @@
 typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
 typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
 typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
-typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex);
+typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex);
 #ifdef GL_GLEXT_PROTOTYPES
 GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
 GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexOES (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
 GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
-GL_APICALL void GL_APIENTRY glMultiDrawElementsBaseVertexEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex);
+GL_APICALL void GL_APIENTRY glMultiDrawElementsBaseVertexEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex);
 #endif
 #endif /* GL_OES_draw_elements_base_vertex */
 
@@ -1624,6 +1605,10 @@
 #endif
 #endif /* GL_EXT_multisampled_render_to_texture */
 
+#ifndef GL_EXT_multisampled_render_to_texture2
+#define GL_EXT_multisampled_render_to_texture2 1
+#endif /* GL_EXT_multisampled_render_to_texture2 */
+
 #ifndef GL_EXT_multiview_draw_buffers
 #define GL_EXT_multiview_draw_buffers 1
 #define GL_COLOR_ATTACHMENT_EXT           0x90F0
@@ -3018,6 +3003,20 @@
 #endif
 #endif /* GL_NV_memory_attachment */
 
+#ifndef GL_NV_memory_object_sparse
+#define GL_NV_memory_object_sparse 1
+typedef void (GL_APIENTRYP PFNGLBUFFERPAGECOMMITMENTMEMNVPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+typedef void (GL_APIENTRYP PFNGLTEXPAGECOMMITMENTMEMNVPROC) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+typedef void (GL_APIENTRYP PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+#ifdef GL_GLEXT_PROTOTYPES
+GL_APICALL void GL_APIENTRY glBufferPageCommitmentMemNV (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+GL_APICALL void GL_APIENTRY glTexPageCommitmentMemNV (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+GL_APICALL void GL_APIENTRY glNamedBufferPageCommitmentMemNV (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+GL_APICALL void GL_APIENTRY glTexturePageCommitmentMemNV (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+#endif
+#endif /* GL_NV_memory_object_sparse */
+
 #ifndef GL_NV_mesh_shader
 #define GL_NV_mesh_shader 1
 #define GL_MESH_SHADER_NV                 0x9559
@@ -3609,6 +3608,23 @@
 #define GL_NV_texture_npot_2D_mipmap 1
 #endif /* GL_NV_texture_npot_2D_mipmap */
 
+#ifndef GL_NV_timeline_semaphore
+#define GL_NV_timeline_semaphore 1
+#define GL_TIMELINE_SEMAPHORE_VALUE_NV    0x9595
+#define GL_SEMAPHORE_TYPE_NV              0x95B3
+#define GL_SEMAPHORE_TYPE_BINARY_NV       0x95B4
+#define GL_SEMAPHORE_TYPE_TIMELINE_NV     0x95B5
+#define GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6
+typedef void (GL_APIENTRYP PFNGLCREATESEMAPHORESNVPROC) (GLsizei n, GLuint *semaphores);
+typedef void (GL_APIENTRYP PFNGLSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, const GLint *params);
+typedef void (GL_APIENTRYP PFNGLGETSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GL_APICALL void GL_APIENTRY glCreateSemaphoresNV (GLsizei n, GLuint *semaphores);
+GL_APICALL void GL_APIENTRY glSemaphoreParameterivNV (GLuint semaphore, GLenum pname, const GLint *params);
+GL_APICALL void GL_APIENTRY glGetSemaphoreParameterivNV (GLuint semaphore, GLenum pname, GLint *params);
+#endif
+#endif /* GL_NV_timeline_semaphore */
+
 #ifndef GL_NV_viewport_array
 #define GL_NV_viewport_array 1
 #define GL_MAX_VIEWPORTS_NV               0x825B
diff --git a/api/GLES2/gl2platform.h b/api/GLES2/gl2platform.h
index eb318dc..5bcce6d 100644
--- a/api/GLES2/gl2platform.h
+++ b/api/GLES2/gl2platform.h
@@ -2,19 +2,8 @@
 #define __gl2platform_h_
 
 /*
-** Copyright (c) 2017 The Khronos Group Inc.
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** Copyright 2017-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /* Platform-specific types and definitions for OpenGL ES 2.X  gl2.h
diff --git a/api/GLES3/gl3.h b/api/GLES3/gl3.h
index d96042b..8530c3e 100644
--- a/api/GLES3/gl3.h
+++ b/api/GLES3/gl3.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
@@ -44,7 +25,7 @@
 #define GL_GLES_PROTOTYPES 1
 #endif
 
-/* Generated on date 20200423 */
+/* Generated on date 20200814 */
 
 /* Generated C header for:
  * API: gles2
diff --git a/api/GLES3/gl31.h b/api/GLES3/gl31.h
index 0015bec..502d6fe 100644
--- a/api/GLES3/gl31.h
+++ b/api/GLES3/gl31.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
diff --git a/api/GLES3/gl32.h b/api/GLES3/gl32.h
index 3b2487e..ae56b0e 100644
--- a/api/GLES3/gl32.h
+++ b/api/GLES3/gl32.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
diff --git a/api/GLES3/gl3platform.h b/api/GLES3/gl3platform.h
index ca9d7a6..8699212 100644
--- a/api/GLES3/gl3platform.h
+++ b/api/GLES3/gl3platform.h
@@ -2,19 +2,8 @@
 #define __gl3platform_h_
 
 /*
-** Copyright (c) 2017 The Khronos Group Inc.
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** Copyright 2017-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /* Platform-specific types and definitions for OpenGL ES 3.X  gl3.h
diff --git a/api/GLSC2/gl2platform.h b/api/GLSC2/gl2platform.h
index 574c198..3c18223 100644
--- a/api/GLSC2/gl2platform.h
+++ b/api/GLSC2/gl2platform.h
@@ -2,19 +2,8 @@
 #define __gl2platform_h_
 
 /*
-** Copyright (c) 2017 The Khronos Group Inc.
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** Copyright 2017-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /* Platform-specific types and definitions for OpenGL SC 2.0 glsc2.h
diff --git a/api/GLSC2/glsc2.h b/api/GLSC2/glsc2.h
index 9806def..9480202 100644
--- a/api/GLSC2/glsc2.h
+++ b/api/GLSC2/glsc2.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
diff --git a/api/GLSC2/glsc2ext.h b/api/GLSC2/glsc2ext.h
index e858779..e7dd8d2 100644
--- a/api/GLSC2/glsc2ext.h
+++ b/api/GLSC2/glsc2ext.h
@@ -6,28 +6,9 @@
 #endif
 
 /*
-** Copyright (c) 2013-2018 The Khronos Group Inc.
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: MIT
 **
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-/*
 ** This header is generated from the Khronos OpenGL / OpenGL ES XML
 ** API Registry. The current version of the Registry, generator scripts
 ** used to make the header, and the header can be found at
diff --git a/extensions/EXT/EXT_draw_elements_base_vertex.txt b/extensions/EXT/EXT_draw_elements_base_vertex.txt
index e3a84a6..bf9aee0 100644
--- a/extensions/EXT/EXT_draw_elements_base_vertex.txt
+++ b/extensions/EXT/EXT_draw_elements_base_vertex.txt
@@ -29,8 +29,8 @@
 
 Version
 
-    Last Modified Date:  September 30, 2014
-    Version:             3
+    Last Modified Date:  August 11, 2020
+    Version:             4
 
 Number
 
@@ -138,7 +138,7 @@
                                         const sizei *count,
                                         enum type,
                                         const void * const *indices,
-                                        sizei primcount,
+                                        sizei drawcount,
                                         const int *basevertex);
 
 New Tokens
@@ -361,7 +361,12 @@
 Revision History
 
     Rev.    Date    Author     Changes
-    ----  -------- ---------  ----------------------------------------
+    ----  -------- ---------  ----------------------------------------------
+     4    08/11/20  pdaniell  Renamed the 'primcount' parameter of
+                              MultiDrawElementsBaseVertexEXT in the
+                              "New Procedures and Functions" section to
+                              'drawcount' to match the extension spec body.
+                              
      3    09/30/14  dkoch     Resolved issues 1, 2 as proposed.
                               Added issue 5. Mark complete.
 
diff --git a/extensions/NV/NV_memory_object_sparse.txt b/extensions/NV/NV_memory_object_sparse.txt
new file mode 100755
index 0000000..87b2087
--- /dev/null
+++ b/extensions/NV/NV_memory_object_sparse.txt
@@ -0,0 +1,187 @@
+Name
+
+    NV_memory_object_sparse
+
+Name Strings
+
+    GL_NV_memory_object_sparse
+
+Contributors
+
+    Carsten Rohde, NVIDIA
+    James Jones, NVIDIA
+
+Contact
+
+    Carsten Rohde, NVIDIA Corporation (crohde 'at' nvidia.com)
+
+Status
+
+    Complete
+
+Version
+
+    Last Modified Date: August 14, 2020
+    Revision:           2
+
+Number
+
+    550
+    OpenGL ES Extension #329
+
+Dependencies
+
+    Written against the OpenGL 4.6 and OpenGL ES 3.2 specifications
+    including ARB_sparse_texture and ARB_sparse_buffer.
+
+    GL_NV_memory_object_sparse requires GL_EXT_memory_object,
+    ARB_sparse_texture and/or ARB_sparse_buffer or a version of
+    OpenGL or OpenGL ES that incorporates it.
+
+    NV_memory_object_sparse interacts with ARB_direct_state_access (OpenGL)
+    when OpenGL < 4.6 is used.
+
+    ARB_sparse_texture (OpenGL) interacts with GL_EXT_memory_object_sparse.
+    ARB_sparse_buffer (OpenGL) interacts with GL_EXT_memory_object_sparse.
+    EXT_sparse_texture (OpenGL ES) interacts with GL_EXT_memory_object_sparse.
+
+Overview
+
+    This extension adds sparse support to EXT_memory_object extension.
+
+New Procedures and Functions
+
+    void BufferPageCommitmentMemNV(enum target,
+                                   intptr offset, sizeiptr size,
+                                   uint memory, uint64 memOffset,
+                                   boolean commit);
+
+    void NamedBufferPageCommitmentMemNV(uint buffer,
+                                        intptr offset, sizeiptr size,
+                                        uint memory, uint64 memOffset,
+                                        boolean commit);
+
+    void TexPageCommitmentMemNV(enum target,
+                                int layer, int level,
+                                int xoffset, int yoffset, int zoffset,
+                                sizei width, sizei height, sizei depth,
+                                uint memory, uint64 offset,
+                                boolean commit);
+
+    void TexturePageCommitmentMemNV(uint texture,
+                                    int layer, int level,
+                                    int xoffset, int yoffset, int zoffset,
+                                    sizei width, sizei height, sizei depth,
+                                    uint memory, uint64 offset,
+                                    boolean commit);
+
+
+New Tokens
+
+    None
+
+
+Additions to Chapter 6 of the OpenGL 4.4 (core) Specification (Buffer Objects)
+
+    In Section 6.2, "Creating and Modifying Buffer Object Data Stores", add
+    the following add the following to the end of the description of
+    BufferSubData:
+
+    If NV_memory_object_sparse is supported, additionally, the commands
+
+        void BufferPageCommitmentMemNV(enum target,
+                                       intptr offset, sizeiptr size,
+                                       uint memory, uint64 memOffset,
+                                       boolean commit);
+
+        void NamedBufferPageCommitmentMemNV(uint buffer,
+                                            intptr offset,
+                                            sizeiptr size,
+                                            uint memory, uint64 memOffset,
+                                            boolean commit);
+
+    behaves similarly to BufferPageCommitmentARB and
+    NamedBufferPageCommitmentMemARB except that the pages of the sparse buffer
+    are bound to the memory specified by <memory> and <memOffset>.
+
+    Errors (additionally to non-Mem variants)
+
+      An INVALID_OPERATION error is generated if <memory> is not the name of
+      an existing memory object.
+
+      An INVALID_OPERATION error is generated if <offset> + <size> exceeds the
+      size of the memory object.
+
+    Add the following to end of subsection 8.20.2. "Controlling Sparse Texture
+    Commitment":
+
+    If NV_memory_object_sparse is supported, additionally, the commands
+
+        void TexPageCommitmentMemNV(enum target,
+                                    int layer, int level,
+                                    int xoffset, int yoffset, int zoffset,
+                                    sizei width, sizei height, sizei depth,
+                                    uint memory, uint64 offset,
+                                    boolean commit);
+
+        void TexturePageCommitmentMemNV(uint texture,
+                                        int layer, int level,
+                                        int xoffset, int yoffset, int zoffset,
+                                        sizei width, sizei height, sizei depth,
+                                        uint memory, uint64 offset,
+                                        boolean commit);
+
+    behaves similarly to TexPageCommitmentMemARB and
+    TexturePageCommitmentEXT except that the tiles of the sparse texture
+    are bound to the memory specified by <memory> and <offset>.
+
+    <layer> indicates the layer of a texture array or cube texture,
+    <zoffset> must be 0 and <depth> must 1 in this case. For other textures
+    <layer> must be 0.
+
+    Errors (additionally to non-Mem variants)
+
+      An INVALID_OPERATION error is generated if <memory> is not the name of
+      an existing memory object.
+
+      An INVALID_OPERATION error is generated if <memory> is dedicated or
+      imported from a non-opaque handle.
+
+      An INVALID_OPERATION error is generated if <offset> plus the number of
+      bytes required for the tiles to commit exceeds the size of the memory
+      object.
+
+      An INVALID_VALUE error is generated if <layer> is not 0 and the texture
+      neither a texture array or a cube texture.
+
+      An INVALID_VALUE error is generated if <zoffset> is not 0 or <depth> is
+      not 1 if the texture is a texture array or a cube texture.
+
+      An INVALID_VALUE error is generated if <layer> is greater or equal than
+      the number of layers of the texture array.
+
+      An INVALID_VALUE error is generated if <layer> is greater or equal than
+      6 in case of a cube texture.
+
+Dependencies on EXT_direct_state_access
+
+    If EXT_direct_state_access is not supported, remove references to the
+    NamedBufferPageCommitmentMemNV and TexturePageCommitmentMemNV commands
+    added by this extension.
+
+Issues
+
+    (1) Should we a 'aspect' parameter to the new gl.*CommitMemNV() functions?
+
+    RESOLVED: No. This can be deferred to a future EXT extension because there
+              is currently no multi-planar texture support in GL and metadata
+              isn't required for NVIDIA hardware.
+
+Revision History
+
+    Revision 2, 2020-08-14 (Piers Daniell)
+        - Fix duplicate parameter names in BufferPageCommitmentMemNV and
+          NamedBufferPageCommitmentMemNV.
+
+    Revision 1, 2020-08-04 (Carsten Rohde)
+        - Initial draft.
diff --git a/extensions/NV/NV_timeline_semaphore.txt b/extensions/NV/NV_timeline_semaphore.txt
new file mode 100755
index 0000000..3479fa3
--- /dev/null
+++ b/extensions/NV/NV_timeline_semaphore.txt
@@ -0,0 +1,223 @@
+Name
+
+    NV_timeline_semaphore
+
+Name Strings
+
+    GL_NV_timeline_semaphore
+
+Contributors
+
+    Carsten Rohde, NVIDIA
+    James Jones, NVIDIA
+
+Contact
+
+    Carsten Rohde, NVIDIA Corporation (crohde 'at' nvidia.com)
+
+Status
+
+    Complete
+
+Version
+
+    Last Modified Date: Jul 10, 2020
+    Revision:           1
+
+Number
+
+    551
+    OpenGL ES Extension #330
+
+Dependencies
+
+    Written against the OpenGL 4.6 and OpenGL ES 3.2 specifications.
+
+    GL_NV_timeline_semaphore requires GL_EXT_semaphore or a version of
+    OpenGL or OpenGL ES that incorporates it.
+
+Overview
+
+    The Vulkan API introduces the concept of timeline semaphores.
+    This extension brings those concepts to the OpenGL API by adding
+    a semaphore type to the semaphore object. In OpenGL, timeline semaphore
+    signal and wait operations are similar to the corresponding operations on
+    imported Direct3D 12 fences defined in EXT_external_objects_win32.
+
+New Procedures and Functions
+
+    void CreateSemaphoresNV(sizei n, uint *semaphores);
+
+    void SemaphoreParameterivNV(uint semaphore,
+                                enum pname,
+                                const GLint *params);
+
+    void GetSemaphoreParameterivNV(uint semaphore,
+                                   enum pname,
+                                   int *params);
+
+New Tokens
+
+    Accepted by the <pname> parameter of SemaphoreParameterivNV
+    and GetSemaphoreParameterivNV:
+
+        SEMAPHORE_TYPE_NV                           0x95B3
+
+    Accepted by the <param> parameter of SemaphoreParameterivNV and
+    GetSemaphoreParameterivNV when <pname> parameter is SEMAPHORE_TYPE_NV:
+
+        SEMAPHORE_TYPE_BINARY_NV                    0x95B4
+        SEMAPHORE_TYPE_TIMELINE_NV                  0x95B5
+
+    Accepted by the <pname> parameter of SemaphoreParameterui64vNV
+    and GetSemaphoreParameterui64vNV:
+
+        TIMELINE_SEMAPHORE_VALUE_NV                 0x9595
+
+    Accepted by the <pname> parameter to GetIntegerv, GetFloatv, GetDoublev,
+    GetInteger64v, and GetBooleanv:
+
+        MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV  0x95B6
+
+
+Additions to Chapter 4 of the OpenGL 4.6 Specification (Event Model)
+
+    Add the following to section 4.2 Semaphore Objects after paragraph
+    which describes command GenSemaphoresEXT:
+
+        The command
+
+            void CreateSemaphoresNV(sizei n,
+                                    uint *semaphores);
+
+        returns <n> previously unused semaphore names in <semaphores>.
+        The semaphores named contain default state, but initially have no
+        external semaphores associated with them.
+
+    Replace section 4.2.2 Semaphore Parameters with the following:
+
+        Semaphore parameters control the type of the semaphore and how
+        semaphore wait and signal operations behave.
+        Table 4.3 defines which parameters are available for a semaphore
+        based on the external handle type from which it was imported.
+        Semaphore parameters are set using the commands
+
+            void SemaphoreParameterivNV(uint semaphore,
+                                        enum pname,
+                                        const int *params);
+
+        and
+
+            void SemaphoreParameterui64vEXT(uint semaphore,
+                                            enum pname,
+                                            const uint64 *params);
+
+        <semaphore> is the name of the semaphore object on which the
+        parameter <pname> will be set to the value(s) in <pname>.
+
+        Table 4.3: Semaphore parameters
+
+        | Name                        | Handle Types                | Legal Values                         |
+        +-----------------------------+-----------------------------+--------------------------------------+
+        | SEMAPHORE_TYPE_NV           | any handle type             | SEMAPHORE_TYPE_BINARY_NV (default)   |
+        |                             |                             | SEMAPHORE_TYPE_TIMELINE_NV           |
+        +-----------------------------+-----------------------------+--------------------------------------+
+        | TIMELINE_SEMAPHORE_VALUE_NV | any handle type             | any value                            |
+        +-----------------------------+-----------------------------+--------------------------------------+
+
+        The default type of a semaphore is SEMAPHORE_TYPE_BINARY_NV. Only when the semaphore is imported
+        from a D3D fence, the semaphore type defaults to SEMAPHORE_TYPE_TIMELINE_NV.
+
+        Parameters of a semaphore object may be queried with the commands
+
+            void GetSemaphoreParameteriEXT(uint semaphore,
+                                           enum pname,
+                                           uint64 *params);
+
+        and
+
+            void GetSemaphoreParameterui64EXT(uint semaphore,
+                                              enum pname,
+                                              uint64 *params);
+
+        <semaphore> is the semaphore object from with the parameter <pname>
+        is queried.  The value(s) of the parameter are returned in <params>.
+        <pname> may be any value in table 4.3.
+
+    Add the following after the first paragraph of section 4.2.3 "Waiting
+    for Semaphores"
+
+        If <semaphore> is of the type SEMAPHORE_TYPE_TIMELINE_NV, it will
+        reach the signaled state when its value is greater than or equal
+        to the value specified by its TIMELINE_SEMAPHORE_VALUE_NV parameter.
+
+    Add the following at the end of section 4.2.3 "Waiting for Semaphores":
+
+        When using binary semaphores, for every wait on a semaphore there must
+        be a prior signal of that semaphore that will not be consumed by a
+        different wait on the semaphore.
+        When using timeline semaphores, wait-before-signal behavior is
+        well-defined and applications can wait for semaphore before the
+        corresponding semaphore signal operation is flushed.
+
+        MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV indicates the maximum
+        difference allowed by the implementation between the current value
+        of a timeline semaphore and any pending wait operations
+
+    Add the following after the first paragraph of section 4.2.4 "Signaling
+    Semaphores"
+
+        If <semaphore> is of the type SEMAPHORE_TYPE_TIMELINE_NV, its value
+        will be set to the value specified by its TIMELINE_SEMAPHORE_VALUE_NV
+        parameter when the signal operation completes.
+
+    Add the following at the end of section 4.2.4 "Signaling for Semaphores":
+
+        MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV indicates the maximum
+        difference allowed by the implementation between the current value
+        of a timeline semaphore and any pending signal operations.
+
+
+Example
+
+    GLuint semapohre;
+    glCreateSemaphoresNV(1, &semaphore);
+    GLenum semaphoreType = GL_SEMAPHORE_TYPE_TIMELINE_NV;
+    glSemaphoreParameterivNV(semaphore, GL_SEMAPHORE_TYPE_NV, (GLint*)&semaphoreType);
+    glImportSemaphoreFdEXT(semaphore, GL_HANDLE_TYPE_OPAQUE_FD_EXT, fd); // or win32 equivalent
+
+    GLuint64 semaphoreValue = 0;
+
+    while (...) {
+        glSemaphoreParameterui64vEXT(semaphore, GL_TIMELINE_SEMAPHORE_VALUE_NV, &semaphoreValue);
+        glWaitSemaphoreEXT(semaphore, ...);
+
+        ...
+
+        semaphoreValue ++;
+        glSemaphoreParameterui64vEXT(semaphore, GL_TIMELINE_SEMAPHORE_VALUE_NV, &semaphoreValue);
+        glSignalSemaphoreEXT(semaphore, ...);
+    }
+
+    glDeleteSemaphoresEXT(1, &semaphore);
+
+
+Issues
+
+    (1) Should we add client functions to signal and wait for the semaphore on
+        the CPU?
+
+        RESOLVED: No. We already declined to add external Vulkan fence interop
+                  with GL on the basis that you can just do that with Vulkan
+                  if you need it.
+
+    (2) Should GetIntegerv and GetBooleanv be allowed to query
+        MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV?
+
+        RESOLVED: Yes. Although it's dangerous to use them they don't throw an
+                  error but you are advised to use GetInteger64v.
+
+Revision History
+
+    Revision 1, 2020-07-10 (Carsten Rohde)
+        - Initial draft.
diff --git a/extensions/esext.php b/extensions/esext.php
index 35de028..3ed2597 100644
--- a/extensions/esext.php
+++ b/extensions/esext.php
@@ -683,4 +683,8 @@
 </li>
 <li value=328><a href="extensions/MESA/MESA_framebuffer_swap_xy.txt">GL_MESA_framebuffer_swap_xy</a>
 </li>
+<li value=329><a href="extensions/NV/NV_memory_object_sparse.txt">GL_NV_memory_object_sparse</a>
+</li>
+<li value=330><a href="extensions/NV/NV_timeline_semaphore.txt">GL_NV_timeline_semaphore</a>
+</li>
 </ol>
diff --git a/extensions/glext.php b/extensions/glext.php
index 321dda8..e76db85 100644
--- a/extensions/glext.php
+++ b/extensions/glext.php
@@ -1037,4 +1037,8 @@
 </li>
 <li value=549><a href="extensions/MESA/MESA_framebuffer_swap_xy.txt">GL_MESA_framebuffer_swap_xy</a>
 </li>
+<li value=550><a href="extensions/NV/NV_memory_object_sparse.txt">GL_NV_memory_object_sparse</a>
+</li>
+<li value=551><a href="extensions/NV/NV_timeline_semaphore.txt">GL_NV_timeline_semaphore</a>
+</li>
 </ol>
diff --git a/extensions/registry.py b/extensions/registry.py
index c0bea5c..8f3fa4e 100644
--- a/extensions/registry.py
+++ b/extensions/registry.py
@@ -3531,6 +3531,13 @@
         'supporters' : { 'NVIDIA' },
         'url' : 'extensions/NV/NV_memory_attachment.txt',
     },
+    'GL_NV_memory_object_sparse' : {
+        'number' : 550,
+        'esnumber' : 329,
+        'flags' : { 'public' },
+        'supporters' : { 'NVIDIA' },
+        'url' : 'extensions/NV/NV_memory_object_sparse.txt',
+    },
     'GL_NV_mesh_shader' : {
         'number' : 527,
         'esnumber' : 312,
@@ -3937,6 +3944,13 @@
         'supporters' : { 'NVIDIA' },
         'url' : 'extensions/NV/NV_transform_feedback2.txt',
     },
+    'GL_NV_timeline_semaphore' : {
+        'number' : 551,
+        'esnumber' : 330,
+        'flags' : { 'public' },
+        'supporters' : { 'NVIDIA' },
+        'url' : 'extensions/NV/NV_timeline_semaphore.txt',
+    },
     'GL_NV_uniform_buffer_unified_memory' : {
         'number' : 459,
         'flags' : { 'public' },
diff --git a/xml/Makefile b/xml/Makefile
index 2e2dbd9..815813d 100644
--- a/xml/Makefile
+++ b/xml/Makefile
@@ -1,16 +1,5 @@
-# Copyright (c) 2013-2018 The Khronos Group Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# Copyright 2013-2020 The Khronos Group Inc.
+# SPDX-License-Identifier: Apache-2.0
 
 # Generator scripts and options
 # GENOPTS can be e.g. '-noprotect'
diff --git a/xml/genglvnd.py b/xml/genglvnd.py
index 5b3ab02..49b11e5 100755
--- a/xml/genglvnd.py
+++ b/xml/genglvnd.py
@@ -1,18 +1,7 @@
 #!/usr/bin/env python
 #
-# Copyright (c) 2013-2018 The Khronos Group Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# Copyright 2013-2020 The Khronos Group Inc.
+# SPDX-License-Identifier: Apache-2.0
 
 import sys, time, pdb, string, cProfile
 from reg import *
@@ -75,10 +64,10 @@
 startTime = None
 def startTimer():
     global startTime
-    startTime = time.clock()
+    startTime = time.process_time()
 def endTimer(msg):
     global startTime
-    endTime = time.clock()
+    endTime = time.process_time()
     if (timeit):
         write(msg, endTime - startTime)
         startTime = None
@@ -143,28 +132,9 @@
 # Copyright text prefixing all headers (list of strings).
 prefixStrings = [
     '/*',
-    '** Copyright (c) 2013-2018 The Khronos Group Inc.',
+    '** Copyright 2013-2020 The Khronos Group Inc.',
+    '** SPDX-' + 'License-Identifier: MIT',
     '**',
-    '** Permission is hereby granted, free of charge, to any person obtaining a',
-    '** copy of this software and/or associated documentation files (the',
-    '** "Materials"), to deal in the Materials without restriction, including',
-    '** without limitation the rights to use, copy, modify, merge, publish,',
-    '** distribute, sublicense, and/or sell copies of the Materials, and to',
-    '** permit persons to whom the Materials are furnished to do so, subject to',
-    '** the following conditions:',
-    '**',
-    '** The above copyright notice and this permission notice shall be included',
-    '** in all copies or substantial portions of the Materials.',
-    '**',
-    '** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,',
-    '** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF',
-    '** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.',
-    '** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY',
-    '** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,',
-    '** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE',
-    '** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.',
-    '*/',
-    '/*',
     '** This header is generated from the Khronos OpenGL / OpenGL ES XML',
     '** API Registry. The current version of the Registry, generator scripts',
     '** used to make the header, and the header can be found at',
diff --git a/xml/genheaders.py b/xml/genheaders.py
index bc60b59..f60b9a5 100755
--- a/xml/genheaders.py
+++ b/xml/genheaders.py
@@ -1,18 +1,7 @@
 #!/usr/bin/env python3
 #
-# Copyright (c) 2013-2018 The Khronos Group Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# Copyright 2013-2020 The Khronos Group Inc.
+# SPDX-License-Identifier: Apache-2.0
 
 import sys, time, pdb, string, cProfile
 from reg import *
@@ -41,10 +30,10 @@
 startTime = None
 def startTimer():
     global startTime
-    startTime = time.clock()
+    startTime = time.process_time()
 def endTimer(msg):
     global startTime
-    endTime = time.clock()
+    endTime = time.process_time()
     if (timeit):
         write(msg, endTime - startTime)
         startTime = None
@@ -80,28 +69,9 @@
 # Copyright text prefixing all headers (list of strings).
 prefixStrings = [
     '/*',
-    '** Copyright (c) 2013-2018 The Khronos Group Inc.',
+    '** Copyright 2013-2020 The Khronos Group Inc.',
+    '** SPDX-' + 'License-Identifier: MIT',
     '**',
-    '** Permission is hereby granted, free of charge, to any person obtaining a',
-    '** copy of this software and/or associated documentation files (the',
-    '** "Materials"), to deal in the Materials without restriction, including',
-    '** without limitation the rights to use, copy, modify, merge, publish,',
-    '** distribute, sublicense, and/or sell copies of the Materials, and to',
-    '** permit persons to whom the Materials are furnished to do so, subject to',
-    '** the following conditions:',
-    '**',
-    '** The above copyright notice and this permission notice shall be included',
-    '** in all copies or substantial portions of the Materials.',
-    '**',
-    '** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,',
-    '** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF',
-    '** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.',
-    '** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY',
-    '** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,',
-    '** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE',
-    '** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.',
-    '*/',
-    '/*',
     '** This header is generated from the Khronos OpenGL / OpenGL ES XML',
     '** API Registry. The current version of the Registry, generator scripts',
     '** used to make the header, and the header can be found at',
diff --git a/xml/gl.xml b/xml/gl.xml
index f3448e8..157565b 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -1,27 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <registry>
     <comment>
-Copyright (c) 2013-2019 The Khronos Group Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-------------------------------------------------------------------------
+Copyright 2013-2020 The Khronos Group Inc.
+SPDX-License-Identifier: Apache-2.0
 
 This file, gl.xml, is the OpenGL and OpenGL API Registry. The canonical
 version of the registry, together with documentation, schema, and Python
 generator scripts used to generate C header files for OpenGL and OpenGL ES,
 can always be found in the Khronos Registry at
-        https://github.com/KhronosGroup/OpenGL-Registry
+https://github.com/KhronosGroup/OpenGL-Registry
     </comment>
 
     <!-- SECTION: GL type definitions. -->
@@ -11571,6 +11558,7 @@
         <enum value="0x9593" name="GL_LAYOUT_TRANSFER_DST_EXT" group="TextureLayout"/>
         <enum value="0x9594" name="GL_HANDLE_TYPE_D3D12_FENCE_EXT" group="ExternalHandleType"/>
         <enum value="0x9595" name="GL_D3D12_FENCE_VALUE_EXT" group="SemaphoreParameterName"/>
+        <enum value="0x9595" name="GL_TIMELINE_SEMAPHORE_VALUE_NV" group="SemaphoreParameterName"/>
         <enum value="0x9596" name="GL_NUM_DEVICE_UUIDS_EXT" group="GetPName"/>
         <enum value="0x9597" name="GL_DEVICE_UUID_EXT" group="GetPName"/>
         <enum value="0x9598" name="GL_DRIVER_UUID_EXT" group="GetPName"/>
@@ -11598,7 +11586,12 @@
         <enum value="0x95AE" name="GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV"/>
         <enum value="0x95AF" name="GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV"/>
         <enum value="0x95B0" name="GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV"/>
-        <unused start="0x9581" end="0x962F" vendor="NV"/>
+        <unused start="0x95B1" end="0x95B2" vendor="NV"/>
+        <enum value="0x95B3" name="GL_SEMAPHORE_TYPE_NV" group="SemaphoreParameterName"/>
+        <enum value="0x95B4" name="GL_SEMAPHORE_TYPE_BINARY_NV" group="SemaphoreParameterName"/>
+        <enum value="0x95B5" name="GL_SEMAPHORE_TYPE_TIMELINE_NV" group="SemaphoreParameterName"/>
+        <enum value="0x95B6" name="GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV" group="GetPName"/>
+        <unused start="0x95B7" end="0x962F" vendor="NV"/>
     </enums>
 
     <enums namespace="GL" start="0x9630" end="0x963F" vendor="Oculus" comment="Email from Cass Everitt">
@@ -12812,6 +12805,15 @@
             <param group="Boolean"><ptype>GLboolean</ptype> <name>commit</name></param>
         </command>
         <command>
+            <proto>void <name>glBufferPageCommitmentMemNV</name></proto>
+            <param group="BufferStorageTarget"><ptype>GLenum</ptype> <name>target</name></param>
+            <param><ptype>GLintptr</ptype> <name>offset</name></param>
+            <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>memOffset</name></param>
+            <param group="Boolean"><ptype>GLboolean</ptype> <name>commit</name></param>
+        </command>
+        <command>
             <proto>void <name>glBufferParameteriAPPLE</name></proto>
             <param><ptype>GLenum</ptype> <name>target</name></param>
             <param><ptype>GLenum</ptype> <name>pname</name></param>
@@ -14967,6 +14969,11 @@
             <param len="n"><ptype>GLuint</ptype> *<name>samplers</name></param>
         </command>
         <command>
+            <proto>void <name>glCreateSemaphoresNV</name></proto>
+            <param><ptype>GLsizei</ptype> <name>n</name></param>
+            <param len="n"><ptype>GLuint</ptype> *<name>semaphores</name></param>
+        </command>
+        <command>
             <proto><ptype>GLuint</ptype> <name>glCreateShader</name></proto>
             <param group="ShaderType"><ptype>GLenum</ptype> <name>type</name></param>
         </command>
@@ -19710,6 +19717,12 @@
             <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
         </command>
         <command>
+            <proto>void <name>glGetSemaphoreParameterivNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>semaphore</name></param>
+            <param group="SemaphoreParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+            <param><ptype>GLint</ptype> *<name>params</name></param>
+        </command>
+        <command>
             <proto>void <name>glGetSemaphoreParameterui64vEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>semaphore</name></param>
             <param group="SemaphoreParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
@@ -22597,7 +22610,7 @@
             <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
             <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
             <param len="COMPSIZE(drawcount)">const void *const*<name>indices</name></param>
-            <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+            <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
             <param len="COMPSIZE(drawcount)">const <ptype>GLint</ptype> *<name>basevertex</name></param>
             <alias name="glMultiDrawElementsBaseVertex"/>
         </command>
@@ -23750,6 +23763,15 @@
             <param group="Boolean"><ptype>GLboolean</ptype> <name>commit</name></param>
         </command>
         <command>
+            <proto>void <name>glNamedBufferPageCommitmentMemNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>buffer</name></param>
+            <param><ptype>GLintptr</ptype> <name>offset</name></param>
+            <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>memOffset</name></param>
+            <param group="Boolean"><ptype>GLboolean</ptype> <name>commit</name></param>
+        </command>
+        <command>
             <proto>void <name>glNamedBufferStorage</name></proto>
             <param><ptype>GLuint</ptype> <name>buffer</name></param>
             <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
@@ -27762,6 +27784,12 @@
             <param len="numCounters"><ptype>GLuint</ptype> *<name>counterList</name></param>
         </command>
         <command>
+            <proto>void <name>glSemaphoreParameterivNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>semaphore</name></param>
+            <param group="SemaphoreParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+            <param>const <ptype>GLint</ptype> *<name>params</name></param>
+        </command>
+        <command>
             <proto>void <name>glSemaphoreParameterui64vEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>semaphore</name></param>
             <param group="SemaphoreParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
@@ -29122,6 +29150,21 @@
             <alias name="glTexPageCommitmentARB"/>
         </command>
         <command>
+            <proto>void <name>glTexPageCommitmentMemNV</name></proto>
+            <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+            <param><ptype>GLint</ptype> <name>layer</name></param>
+            <param><ptype>GLint</ptype> <name>level</name></param>
+            <param><ptype>GLint</ptype> <name>xoffset</name></param>
+            <param><ptype>GLint</ptype> <name>yoffset</name></param>
+            <param><ptype>GLint</ptype> <name>zoffset</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLsizei</ptype> <name>depth</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+            <param group="Boolean"><ptype>GLboolean</ptype> <name>commit</name></param>
+        </command>
+        <command>
             <proto>void <name>glTexParameterIiv</name></proto>
             <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
             <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
@@ -29650,6 +29693,21 @@
             <param group="Boolean"><ptype>GLboolean</ptype> <name>commit</name></param>
         </command>
         <command>
+            <proto>void <name>glTexturePageCommitmentMemNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>texture</name></param>
+            <param><ptype>GLint</ptype> <name>layer</name></param>
+            <param><ptype>GLint</ptype> <name>level</name></param>
+            <param><ptype>GLint</ptype> <name>xoffset</name></param>
+            <param><ptype>GLint</ptype> <name>yoffset</name></param>
+            <param><ptype>GLint</ptype> <name>zoffset</name></param>
+            <param><ptype>GLsizei</ptype> <name>width</name></param>
+            <param><ptype>GLsizei</ptype> <name>height</name></param>
+            <param><ptype>GLsizei</ptype> <name>depth</name></param>
+            <param><ptype>GLuint</ptype> <name>memory</name></param>
+            <param><ptype>GLuint64</ptype> <name>offset</name></param>
+            <param group="Boolean"><ptype>GLboolean</ptype> <name>commit</name></param>
+        </command>
+        <command>
             <proto>void <name>glTextureParameterIiv</name></proto>
             <param><ptype>GLuint</ptype> <name>texture</name></param>
             <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
@@ -45775,6 +45833,10 @@
                 <command name="glFramebufferTexture2DMultisampleEXT"/>
             </require>
         </extension>
+        <extension name="GL_EXT_multisampled_render_to_texture2" supported="gles2">
+            <require>
+            </require>
+        </extension>
         <extension name="GL_EXT_multiview_draw_buffers" supported="gles2">
             <require>
                 <enum name="GL_COLOR_ATTACHMENT_EXT"/>
@@ -46853,6 +46915,18 @@
                 <command name="glTextureViewEXT"/>
             </require>
         </extension>
+        <extension name="GL_NV_timeline_semaphore" supported="gl|gles2">
+            <require>
+                <enum name="GL_TIMELINE_SEMAPHORE_VALUE_NV"/>
+                <enum name="GL_SEMAPHORE_TYPE_NV"/>
+                <enum name="GL_SEMAPHORE_TYPE_BINARY_NV"/>
+                <enum name="GL_SEMAPHORE_TYPE_TIMELINE_NV"/>
+                <enum name="GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV"/>
+                <command name="glCreateSemaphoresNV"/>
+                <command name="glSemaphoreParameterivNV"/>
+                <command name="glGetSemaphoreParameterivNV"/>
+            </require>
+        </extension>
         <extension name="GL_EXT_timer_query" supported="gl">
             <require>
                 <enum name="GL_TIME_ELAPSED_EXT"/>
@@ -48670,6 +48744,16 @@
                 <command name="glNamedBufferAttachMemoryNV"/>
             </require>
         </extension>
+        <extension name="GL_NV_memory_object_sparse" supported="gl|glcore|gles2">
+            <require>
+                <command name="glBufferPageCommitmentMemNV"/>
+                <command name="glTexPageCommitmentMemNV"/>
+            </require>
+            <require comment="Supported only if GL_EXT_direct_state_access is supported">
+                <command name="glNamedBufferPageCommitmentMemNV"/>
+                <command name="glTexturePageCommitmentMemNV"/>
+            </require>
+        </extension>
         <extension name="GL_NV_mesh_shader" supported="gl|glcore|gles2">
             <require>
                 <enum name="GL_MESH_SHADER_NV"/>
diff --git a/xml/glx.xml b/xml/glx.xml
index 4ee1cae..797d51d 100644
--- a/xml/glx.xml
+++ b/xml/glx.xml
@@ -1,27 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <registry>
     <comment>
-Copyright (c) 2013-2019 The Khronos Group Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-------------------------------------------------------------------------
+Copyright 2013-2020 The Khronos Group Inc.
+SPDX-License-Identifier: Apache-2.0
 
 This file, glx.xml, is the GLX API Registry. The canonical version of the
 registry, together with documentation, schema, and Python generator scripts
 used to generate C header files for GLX, can always be found in the Khronos
-Registry at
-        https://github.com/KhronosGroup/OpenGL-Registry
+Registry at https://github.com/KhronosGroup/OpenGL-Registry
     </comment>
 
     <!-- SECTION: GLX type definitions. Does not include X or GL types. -->
diff --git a/xml/reg.py b/xml/reg.py
index 9e31e39..f5c0455 100755
--- a/xml/reg.py
+++ b/xml/reg.py
@@ -1,18 +1,7 @@
 #!/usr/bin/python3 -i
 #
-# Copyright (c) 2013-2018 The Khronos Group Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# Copyright 2013-2020 The Khronos Group Inc.
+# SPDX-License-Identifier: Apache-2.0
 
 import io,os,re,string,sys
 from lxml import etree
diff --git a/xml/registry.rnc b/xml/registry.rnc
index 24aceef..9a5dfc2 100644
--- a/xml/registry.rnc
+++ b/xml/registry.rnc
@@ -1,16 +1,5 @@
-# Copyright (c) 2013-2018 The Khronos Group Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# Copyright 2013-2020 The Khronos Group Inc.
+# SPDX-License-Identifier: Apache-2.0
 
 # Relax NG schema for Khronos Registry XML
 # See https://github.com/KhronosGroup/OpenGL-Registry
diff --git a/xml/wgl.xml b/xml/wgl.xml
index 88922eb..189b369 100644
--- a/xml/wgl.xml
+++ b/xml/wgl.xml
@@ -1,29 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <registry>
     <comment>
-Copyright (c) 2013-2019 The Khronos Group Inc.
+Copyright 2013-2020 The Khronos Group Inc.
+SPDX-License-Identifier: Apache-2.0
 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-------------------------------------------------------------------------
-
-This file, wgl.xml, is the WGL API Registry. The older ".spec" file
-format has been retired and will no longer be updated with new
-extensions and API versions. The canonical version of the registry,
-together with documentation, schema, and Python generator scripts used
-to generate C header files for WGL, can always be found in the Khronos
-Registry at
-        https://github.com/KhronosGroup/OpenGL-Registry
+This file, wgl.xml, is the WGL API Registry. The canonical version of the
+registry, together with documentation, schema, and Python generator scripts
+used to generate C header files for WGL, can always be found in the Khronos
+Registry at https://github.com/KhronosGroup/OpenGL-Registry
     </comment>
 
     <!-- SECTION: WGL type definitions. Does not include base Windows types. -->