Merge pull request #1 from KhronosGroup/master
update master
diff --git a/api/GL/glcorearb.h b/api/GL/glcorearb.h
index 8d691cc..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
@@ -4770,6 +4751,11 @@
#endif
#endif /* GL_INTEL_performance_query */
+#ifndef GL_MESA_framebuffer_flip_x
+#define GL_MESA_framebuffer_flip_x 1
+#define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC
+#endif /* GL_MESA_framebuffer_flip_x */
+
#ifndef GL_MESA_framebuffer_flip_y
#define GL_MESA_framebuffer_flip_y 1
#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
@@ -4781,6 +4767,11 @@
#endif
#endif /* GL_MESA_framebuffer_flip_y */
+#ifndef GL_MESA_framebuffer_swap_xy
+#define GL_MESA_framebuffer_swap_xy 1
+#define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD
+#endif /* GL_MESA_framebuffer_swap_xy */
+
#ifndef GL_NV_bindless_multi_draw_indirect
#define GL_NV_bindless_multi_draw_indirect 1
typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
@@ -5267,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 effbacd..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 20200319
+#define GL_GLEXT_VERSION 20200814
#include <KHR/khrplatform.h>
@@ -9285,6 +9266,11 @@
#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E
#endif /* GL_MESAX_texture_stack */
+#ifndef GL_MESA_framebuffer_flip_x
+#define GL_MESA_framebuffer_flip_x 1
+#define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC
+#endif /* GL_MESA_framebuffer_flip_x */
+
#ifndef GL_MESA_framebuffer_flip_y
#define GL_MESA_framebuffer_flip_y 1
#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
@@ -9296,6 +9282,11 @@
#endif
#endif /* GL_MESA_framebuffer_flip_y */
+#ifndef GL_MESA_framebuffer_swap_xy
+#define GL_MESA_framebuffer_swap_xy 1
+#define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD
+#endif /* GL_MESA_framebuffer_swap_xy */
+
#ifndef GL_MESA_pack_invert
#define GL_MESA_pack_invert 1
#define GL_PACK_INVERT_MESA 0x8758
@@ -10286,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
@@ -11251,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 63ef441..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 20200319
+#define GLX_GLXEXT_VERSION 20200813
/* Generated C header for:
* API: glx
diff --git a/api/GL/wgl.h b/api/GL/wgl.h
index d0758f3..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 20200319 */
+/* Generated on date 20200813 */
/* Generated C header for:
* API: wgl
diff --git a/api/GL/wglext.h b/api/GL/wglext.h
index 923093e..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 20200319
+#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 4c47e86..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 20200319 */
+/* Generated on date 20200814 */
/* Generated C header for:
* API: gles1
diff --git a/api/GLES/glext.h b/api/GLES/glext.h
index caa28fe..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 20200319 */
+/* 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 54d6ed0..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 20200319 */
+/* Generated on date 20200814 */
/* Generated C header for:
* API: gles2
diff --git a/api/GLES2/gl2ext.h b/api/GLES2/gl2ext.h
index e0bf0b8..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 20200319 */
+/* 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
@@ -2459,6 +2444,11 @@
#endif
#endif /* GL_INTEL_performance_query */
+#ifndef GL_MESA_framebuffer_flip_x
+#define GL_MESA_framebuffer_flip_x 1
+#define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC
+#endif /* GL_MESA_framebuffer_flip_x */
+
#ifndef GL_MESA_framebuffer_flip_y
#define GL_MESA_framebuffer_flip_y 1
#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
@@ -2470,6 +2460,11 @@
#endif
#endif /* GL_MESA_framebuffer_flip_y */
+#ifndef GL_MESA_framebuffer_swap_xy
+#define GL_MESA_framebuffer_swap_xy 1
+#define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD
+#endif /* GL_MESA_framebuffer_swap_xy */
+
#ifndef GL_MESA_program_binary_formats
#define GL_MESA_program_binary_formats 1
#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F
@@ -3008,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
@@ -3599,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
@@ -3777,6 +3803,18 @@
#endif
#endif /* GL_QCOM_framebuffer_foveated */
+#ifndef GL_QCOM_motion_estimation
+#define GL_QCOM_motion_estimation 1
+#define GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM 0x8C90
+#define GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM 0x8C91
+typedef void (GL_APIENTRYP PFNGLTEXESTIMATEMOTIONQCOMPROC) (GLuint ref, GLuint target, GLuint output);
+typedef void (GL_APIENTRYP PFNGLTEXESTIMATEMOTIONREGIONSQCOMPROC) (GLuint ref, GLuint target, GLuint output, GLuint mask);
+#ifdef GL_GLEXT_PROTOTYPES
+GL_APICALL void GL_APIENTRY glTexEstimateMotionQCOM (GLuint ref, GLuint target, GLuint output);
+GL_APICALL void GL_APIENTRY glTexEstimateMotionRegionsQCOM (GLuint ref, GLuint target, GLuint output, GLuint mask);
+#endif
+#endif /* GL_QCOM_motion_estimation */
+
#ifndef GL_QCOM_perfmon_global_mode
#define GL_QCOM_perfmon_global_mode 1
#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0
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 2b5fbdd..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 20200319 */
+/* 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/ANGLE/ANGLE_depth_texture.txt b/extensions/ANGLE/ANGLE_depth_texture.txt
index 23ef059..afbbcd7 100644
--- a/extensions/ANGLE/ANGLE_depth_texture.txt
+++ b/extensions/ANGLE/ANGLE_depth_texture.txt
@@ -8,7 +8,9 @@
Contributors
- Nicolas Capens, TransGaming
+ Nicolas Capens, TransGaming / Google
+ Daniel Koch, TransGaming / NVIDIA
+ Shannon Woods, TransGaming / Google
Kenneth Russell, Google
Vangelis Kokkevis, Google
Gregg Tavares, Google
@@ -17,7 +19,7 @@
Contact
- Daniel Koch, TransGaming (daniel 'at' transgaming.com)
+ Shannon Woods, Google (shannonwoods 'at' google.com)
Status
@@ -25,8 +27,8 @@
Version
- Last Modifed Date: June 4, 2012
- Revision: #3
+ Last Modified Date: February 25, 2013
+ Revision: #4
Number
@@ -89,7 +91,7 @@
If a vertex shader uses..."
-Additions to Chapter 3 of the OpenGL ES 2.0 specification (Rasterizatoin)
+Additions to Chapter 3 of the OpenGL ES 2.0 specification (Rasterization)
Add the following rows to Table 3.2 (page 62):
@@ -219,8 +221,7 @@
below. Otherwise, the texture unit operates in the normal manner.
Let <D_t> be the depth texture value, provided by the shader's texture lookup
- function. Then the effective texture value, <L_t> or <A_t> is computed
- as follows:
+ function. Then the effective texture value is computed as follows:
<Tau> = <D_t>
If the texture image has a base internal format of DEPTH_STENCIL_OES, then
@@ -228,10 +229,10 @@
not include a stencil index component, but includes only the depth
component.
- The resulting <Tau> is assigned to <L_t>. In some implementations,
- <Tau> is also assigned to <A_t>. Thus in table 3.12, textures with
- depth component data behave as if their base internal format is
- either LUMINANCE or LUMINANCE_ALPHA."
+ The resulting <Tau> is assigned to <R_t>. In some implementations, <Tau> is
+ also assigned to <G_t>, <B_t>, or <A_t>. Thus in table 3.12, textures with
+ depth component data behave as if their base internal format is RGBA, with
+ values in <G_t>, <B_t>, and <A_t> being implementation dependent."
Add the following to section 3.7.11 "Mipmap Generation":
@@ -363,8 +364,8 @@
RESOLVED: This extension:
- does not support loading pre-baked depth stencil data via
TexImage2D or TexSubImage2D.
- - allows variability in w-component of the sample results from
- depth textures.
+ - allows variability in the y-, z-, and w-components of the sample
+ results from depth textures.
- only supports one level textures.
- explicitly lists the errors for unsupported functionality.
Since these were not clearly specified in the OES_depth_texture
@@ -392,6 +393,8 @@
Revision History
+ 02/25/2013 swoods revise to allow texture lookup to guarantee depth values
+ only in red channel of sample result.
06/04/2012 dgkoch fix errors, disallow multi-level depth textures.
05/30/2012 dgkoch minor updates and add issues.
05/23/2012 dgkoch intial revision based on OES_depth_texture and
diff --git a/extensions/ARB/ARB_buffer_storage.txt b/extensions/ARB/ARB_buffer_storage.txt
index 5e4e947..0f814f4 100644
--- a/extensions/ARB/ARB_buffer_storage.txt
+++ b/extensions/ARB/ARB_buffer_storage.txt
@@ -409,7 +409,8 @@
INVALID_OPERATION is generated by MapBufferRange if MAP_PERSISTENT_BIT
is included in <access> but MAP_PERSISTENT_BIT is not
included in the buffer's storage flags, or if MAP_COHERENT_BIT is included
- in <access> but
+ in <access> but MAP_COHERENT_BIT is not
+ included in the buffer's storage flags.
OUT_OF_MEMORY is generated by BufferStorage and NamedBufferStorageEXT if
the GL is not able to allocate a data store with the properties requested
diff --git a/extensions/ARB/ARB_copy_image.txt b/extensions/ARB/ARB_copy_image.txt
index 86fc172..a41dc2e 100644
--- a/extensions/ARB/ARB_copy_image.txt
+++ b/extensions/ARB/ARB_copy_image.txt
@@ -268,7 +268,7 @@
Dependencies on OpenGL 4.2 and ARB_texture_compression_bptc:
If OpenGL 4.2 or later, and ARB_texture_compression_bptc is not
- supported, remove any references to the PBTC compressed texture
+ supported, remove any references to the BPTC compressed texture
formats.
Errors
diff --git a/extensions/ARB/ARB_shader_storage_buffer_object.txt b/extensions/ARB/ARB_shader_storage_buffer_object.txt
index 4200dd3..2cbb853 100644
--- a/extensions/ARB/ARB_shader_storage_buffer_object.txt
+++ b/extensions/ARB/ARB_shader_storage_buffer_object.txt
@@ -1022,7 +1022,7 @@
Get Value Type Get Command Minimum Value Description Sec.
----------------------- ---- ----------- ------------- ------------------------- -----
- MAX_COMBINED_SHADER_OUTPUT _ Z+ GetIntegerv 8 limit on active image 3.10.22
+ MAX_COMBINED_SHADER_OUTPUT_ Z+ GetIntegerv 8 limit on active image 3.10.22
RESOURCES units, shader storage
blocks, and fragment outputs
diff --git a/extensions/ARB/ARB_texture_query_lod.txt b/extensions/ARB/ARB_texture_query_lod.txt
index 5d8e648..7d1d809 100644
--- a/extensions/ARB/ARB_texture_query_lod.txt
+++ b/extensions/ARB/ARB_texture_query_lod.txt
@@ -16,6 +16,7 @@
Pat Brown, NVIDIA
Greg Roth, NVIDIA
Eric Werness, NVIDIA
+ Alejandro Piñeiro, Igalia, SL
Notice
@@ -38,8 +39,8 @@
Version
- Last Modified Date: 04/10/2013
- Revision: 7
+ Last Modified Date: 04/22/2020
+ Revision: 8
Number
@@ -47,7 +48,7 @@
Dependencies
- OpenGL 2.0 is required.
+ OpenGL 3.0 is required.
OpenGL Shading Language 1.30 is required
@@ -243,6 +244,10 @@
Rev. Date Author Changes
---- ---------- -------- -----------------------------------------
+ 8 04/22/2020 apinheiro Update OpenGL version required, to be
+ consistent with GLSL version required (internal API
+ issue 124)
+
7 04/10/2013 Jon Leech Add issue 3 regarding different spelling
of "LOD" vs. "Lod" in extension & core.
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/MESA/MESA_framebuffer_flip_x.txt b/extensions/MESA/MESA_framebuffer_flip_x.txt
new file mode 100644
index 0000000..344b75c
--- /dev/null
+++ b/extensions/MESA/MESA_framebuffer_flip_x.txt
@@ -0,0 +1,92 @@
+Name
+
+ MESA_framebuffer_flip_x
+
+Name Strings
+
+ GL_MESA_framebuffer_flip_x
+
+Contact
+
+ Cici Ruan <ruanc@chromium.org>
+
+Contributors
+
+ Cici Ruan, Google
+ Kristian Kristensen, Google
+ Fritz Koenig, Google
+ Rob Clark, Google
+ Chad Versace, Google
+
+Status
+
+ Proposal
+
+Version
+
+ Last Modified Date: April 8, 2020
+ Revision: 1
+
+Number
+
+ OpenGL Extension 548
+ OpenGL ES Extension 327
+
+Dependencies
+
+ Requires OpenGL ES 3.1 or OpenGL 4.3 for FramebufferParameteri.
+
+Overview
+
+ This extension defines a new framebuffer parameter,
+ GL_FRAMEBUFFER_FLIP_X_MESA, that changes the behavior of the reads and
+ writes to the framebuffer attachment points. When
+ GL_FRAMEBUFFER_FLIP_X_MESA is GL_TRUE, render commands and pixel transfer
+ operations access the backing store of each attachment point with an
+ x-inverted coordinate system. This x-inversion is relative to the
+ coordinate system set when GL_FRAMEBUFFER_FLIP_X_MESA is GL_FALSE.
+
+ Access through TexSubImage2D and similar calls will notice the effect of
+ the flip when they are not attached to framebuffer objects because
+ GL_FRAMEBUFFER_FLIP_X_MESA is associated with the framebuffer object and
+ not the attachment points.
+
+ This extension is mainly for pre-rotation and recommended to use it with
+ MESA_framebuffer_flip_y and MESA_framebuffer_swap_xy to have rotated
+ result.
+
+IP Status
+
+ None
+
+Issues
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Types
+
+ None
+
+New Tokens
+
+ Accepted by the <pname> argument of FramebufferParameteri and
+ GetFramebufferParameteriv:
+
+ GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC
+
+ Interactions with OpenGL ES 3.1 and any other versions and
+ extensions that provide the entry points FramebufferParameteri
+ and GetFramebufferParameteriv
+
+Errors
+
+ None
+
+Revision History
+
+ Version 1, 2020/04/08
+ - Initial draft (Cici Ruan)
diff --git a/extensions/MESA/MESA_framebuffer_swap_xy.txt b/extensions/MESA/MESA_framebuffer_swap_xy.txt
new file mode 100644
index 0000000..1990cf2
--- /dev/null
+++ b/extensions/MESA/MESA_framebuffer_swap_xy.txt
@@ -0,0 +1,98 @@
+Name
+
+ MESA_framebuffer_swap_xy
+
+Name Strings
+
+ GL_MESA_framebuffer_swap_xy
+
+Contact
+
+ Cici Ruan <ruanc@chromium.org>
+
+Contributors
+
+ Cici Ruan, Google
+ Kristian Kristensen, Google
+ Fritz Koenig, Google
+ Rob Clark, Google
+ Chad Versace, Google
+
+Status
+
+ Proposal
+
+Version
+
+ Last Modified Date: April 8, 2020
+ Revision: 1
+
+Number
+
+ OpenGL Extension 549
+ OpenGL ES Extension 328
+
+Dependencies
+
+ Requires OpenGL ES 3.1 or OpenGL 4.3 for FramebufferParameteri.
+
+Overview
+
+ This extension defines a new framebuffer parameter,
+ GL_FRAMEBUFFER_SWAP_XY_MESA, that changes the behavior of the reads and
+ writes to the framebuffer attachment points. When
+ GL_FRAMEBUFFER_SWAP_XY_MESA is GL_TRUE, render commands and pixel transfer
+ operations access the backing store of each attachment point with an
+ xy-swapped coordinate system. This xy-inversion is relative to the
+ coordinate system set when GL_FRAMEBUFFER_SWAP_XY_MESA is GL_FALSE.
+
+ Access through TexSubImage2D and similar calls will notice the effect of
+ the swap when they are not attached to framebuffer objects because
+ GL_FRAMEBUFFER_SWAP_XY_MESA is associated with the framebuffer object and
+ not the attachment points.
+
+ The application should notice the display width and height are also swapped
+ when GL_FRAMEBUFFER_SWAP_XY_MESA is GL_TRUE.
+
+ This extension is mainly for pre-rotation and recommended to use it with
+ MESA_framebuffer_flip_x and MESA_framebuffer_flip_y to have rotated
+ result.
+
+IP Status
+
+ None
+
+Issues
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Types
+
+ None
+
+New Tokens
+
+ Accepted by the <pname> argument of FramebufferParameteri and
+ GetFramebufferParameteriv:
+
+ GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD
+
+ Interactions with OpenGL ES 3.1 and any other versions and
+ extensions that provide the entry points FramebufferParameteri
+ and GetFramebufferParameteriv
+
+ Token GL_FRAMEBUFFER_SWAP_XY_MESA is accepted as the <pname> argument of
+ FramebufferParameteri and GetFramebufferParameteriv.
+
+Errors
+
+ None
+
+Revision History
+
+ Version 1, 2020/04/08
+ - Initial draft (Cici Ruan)
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_pixel_buffer_object.txt b/extensions/NV/NV_pixel_buffer_object.txt
index 632935d..9a99790 100644
--- a/extensions/NV/NV_pixel_buffer_object.txt
+++ b/extensions/NV/NV_pixel_buffer_object.txt
@@ -21,8 +21,8 @@
Version
- Last Modified Date: October 23rd, 2012
- Revision: 2.0
+ Last Modified Date: April 27th, 2020
+ Revision: 3.0
Number
@@ -552,11 +552,11 @@
glBindBuffer(GL_PIXEL_PACK_BUFFER_NV, imageBuffers[0]);
glBufferData(GL_PIXEL_PACK_BUFFER_NV, imageSize / 2, NULL,
- GL_STREAM_READ);
+ GL_STREAM_DRAW);
glBindBuffer(GL_PIXEL_PACK_BUFFER_NV, imageBuffers[1]);
glBufferData(GL_PIXEL_PACK_BUFFER_NV, imageSize / 2, NULL,
- GL_STREAM_READ);
+ GL_STREAM_DRAW);
// Render to framebuffer
glDrawBuffer(GL_BACK);
@@ -576,12 +576,12 @@
// Process partial images. Mapping the buffer waits for
// outstanding DMA transfers into the buffer to finish.
glBindBuffer(GL_PIXEL_PACK_BUFFER_NV, imageBuffers[0]);
- pboMemory1 = glMapBuffer(GL_PIXEL_PACK_BUFFER_NV,
- GL_READ_ONLY);
+ pboMemory1 = glMapBufferRangeEXT(GL_PIXEL_PACK_BUFFER_NV, 0,
+ imageSize/2, GL_MAP_READ_BIT_EXT);
processImage(pboMemory1);
glBindBuffer(GL_PIXEL_PACK_BUFFER_NV, imageBuffers[1]);
- pboMemory2 = glMapBuffer(GL_PIXEL_PACK_BUFFER_NV,
- GL_READ_ONLY);
+ pboMemory2 = glMapBufferRangeEXT(GL_PIXEL_PACK_BUFFER_NV, 0,
+ imageSize/2, GL_MAP_READ_BIT_EXT);
processImage(pboMemory2);
// Unmap the image buffers
@@ -750,6 +750,8 @@
Revision History
+ 3 04/27/2020 fix example code: GL_STREAM_READ is not available in ES2.0
+ glMapBufferOES does not allow reading from the mapped pointer.
2 10/23/2012 more cleanup, interaction with EXT_map_buffer_range
1 04/19/2012 initial revision
- took ARB_pixel_buffer_object, stripped everything not applicable to
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/OES/OES_get_program_binary.txt b/extensions/OES/OES_get_program_binary.txt
index 696cb07..8457d07 100644
--- a/extensions/OES/OES_get_program_binary.txt
+++ b/extensions/OES/OES_get_program_binary.txt
@@ -44,8 +44,8 @@
Version
- Last Modified Date: January 11, 2019
- Revision: #15
+ Last Modified Date: June 24, 2020
+ Revision: #16
Number
@@ -352,7 +352,7 @@
//
glGetProgramiv(newProgram, GL_PROGRAM_BINARY_LENGTH_OES, &binaryLength);
binary = (void*)malloc(binaryLength);
- glGetProgramBinaryOES(newProgram, &binaryLength, NULL, binaryFormat, binary);
+ glGetProgramBinaryOES(newProgram, binaryLength, NULL, binaryFormat, binary);
//
// Cache the program binary for future runs
@@ -416,6 +416,8 @@
Revision History
+ #16 24/06/2020 Arthur Tombs Fix typo: pass binaryLength by value
+ instead of by pointer in example code
#15 01/11/2019 Jon Leech Add an error for ProgramBinary if there
are no binary formats (Bug 16155).
#14 10/08/2013 Jon Leech Change GLvoid -> void (Bug 10412).
diff --git a/extensions/QCOM/QCOM_motion_estimation.txt b/extensions/QCOM/QCOM_motion_estimation.txt
new file mode 100644
index 0000000..7ea44e9
--- /dev/null
+++ b/extensions/QCOM/QCOM_motion_estimation.txt
@@ -0,0 +1,185 @@
+Name
+
+ QCOM_motion_estimation
+
+Name Strings
+
+ GL_QCOM_motion_estimation
+
+Contributors
+
+ Jonathan Wicks
+ Sam Holmes
+ Jeff Leger
+
+Contacts
+
+ Jeff Leger <jleger@qti.qualcomm.com>
+
+Status
+
+ Complete
+
+Version
+
+ Last Modified Date: March 19, 2020
+ Revision: 1.0
+
+Number
+
+ OpenGL ES Extension #326
+
+Dependencies
+
+ Requires OpenGL ES 2.0
+
+ This extension is written against the OpenGL ES 3.2 Specification.
+
+ This extension interacts with OES_EGL_image_external.
+
+Overview
+
+ Motion estimation, also referred to as optical flow, is the process of
+ producing motion vectors that convey the 2D transformation from a reference
+ image to a target image. There are various uses of motion estimation, such as
+ frame extrapolation, compression, object tracking, etc.
+
+ This extension adds support for motion estimation in OpenGL ES by adding
+ functions which take the reference and target images and populate an
+ output texture containing the corresponding motion vectors.
+
+New Procedures and Functions
+
+ void TexEstimateMotionQCOM(uint ref,
+ uint target,
+ uint output);
+
+ void TexEstimateMotionRegionsQCOM(uint ref,
+ uint target,
+ uint output,
+ uint mask);
+
+New Tokens
+
+ Accepted by the <pname> parameter of GetIntegerv, GetInteger64v, and GetFloatv:
+
+ MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM 0x8C90
+ MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM 0x8C91
+
+Additions to the OpenGL ES 3.2 Specification
+
+ Add two new rows in Table 21.40 "Implementation Dependent Values"
+
+ Get Value Type Get Command Minimum Value Description Sec
+ --------- ---- ----------- ------------- ----------- ------
+ MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM Z+ GetIntegerv 1 The block size in X 8.19
+ MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM Z+ GetIntegerv 1 The block size in Y 8.19
+
+Additions to Chapter 8 of the OpenGL ES 3.2 Specification
+
+ The commands
+
+ void TexEstimateMotionQCOM(uint ref,
+ uint target,
+ uint output);
+
+ void TexEstimateMotionRegionsQCOM(uint ref,
+ uint target,
+ uint output,
+ uint mask);
+
+ are called to perfom the motion estimation based on the contents of the two input
+ textures, <ref> and <target>. The results of the motion estimation are stored in
+ the <output> texture.
+
+ The <ref> and <target> must be either be GL_R8 2D textures, or backed by EGLImages where
+ the underlying format contain a luminance plane. The <ref> and <target> dimension must
+ be identical and must be an exact multiple of the search block size. While <ref> and <target>
+ can have multiple levels, the implementation only reads from the base level.
+
+ The resulting motion vectors are stored in a 2D texture <output> of the format GL_RGBA16F,
+ ready to be used by other application shaders and stages. While <output> can have multiple
+ levels, the implementation only writes to the base level. The <output> dimensions
+ must be set as follows so that it can hold one vector per search block:
+
+ output.width = ref.width / MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM
+ output.height = ref.height / MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM
+
+ Each texel in the <output> texture represents the estimated motion in pixels, for the supported
+ search block size, from the <ref> texture to the <target> target texture. Implementations may
+ generate sub-pixel motion vectors, in which case the returned vector components may have fractional
+ values. The motion vector X and Y components are provided in the R and G channels respectively.
+ The B and A components are currently undefined and left for future expansion. If no motion is
+ detected for a block, or if the <mask> texture indicates that the block should be skipped, then
+ the R and G channels will be set to zero, indicating no motion.
+
+ The <mask> texture is used to control the region-of-interest which can help to reduce the
+ overall workload. The <mask> texture dimensions must exactly match that of the <output>
+ texture and the format must be GL_R8UI. While <mask> can have multiple levels, the
+ implementation only reads from the base level. For any texel with a value of 0 in the <mask>
+ motion estimation will not be performed for the corresponding block. Any non-zero texel value
+ will produce a motion vector result in the <output> result. The <mask> only controls the vector
+ basepoint. Therefore it is possible for an unmasked block to produce a vector that lands in the
+ masked block.
+
+Errors
+
+ INVALID_OPERATION is generated if any of the textures passed in are invalid
+
+ INVALID_OPERATION is generated if the texture types are not TEXTURE_2D or TEXTURE_EXTERNAL_OES
+
+ INVALID_OPERATION is generated if <ref> is not of the format GL_R8, or when backed by an EGLImage,
+ when the underlying internal format does not contain a luminance plane.
+
+ INVALID_OPERATION is generated if <target> is not of the format GL_R8, or when backed by an EGLImage,
+ when the underlying internal format does not contain a luminance plane.
+
+ INVALID_OPERATION is generated if the <ref> and <target> textures do not have
+ identical dimensions
+
+ INVALID_OPERATION is generated if the <output> texture is not of the format GL_RGBA16F
+
+ INVALID_OPERATION is generated if the <mask> texture is not of the format GL_R8UI
+
+ INVALID_OPERATION is generated if the <output> or <mask> dimensions are not
+ ref.[width/height] / MOTION_ESTIMATION_SEARCH_BLOCK_[X,Y]_QCOM
+
+Interactions with OES_EGL_image_external
+
+ If OES_EGL_image_external is supported, then the <ref> and/or <target> parameters to
+ TexEstimateMotionQCOM and TexEstimateMotionRegionsQCOM may be backed by an EGLImage.
+
+Issues
+
+ (1) What should the pixel data of the input textures <ref> and <target> contain?
+
+ Resolved: Motion estimation tracks the brightness across the input textures. To produce
+ the best results, it is recommended that the texels in the <ref> and <target> textures
+ represent some measure of the luminance/luma. OpenGL ES does not currently expose
+ a Y8 or Y plane only format, so GL_R8 can be used. Alternatively, a texture backed by
+ and EGLImage, which has an underlying format where luminance is contained in a separate plane,
+ can also be used. If starting with an RGBA8 texture one way to convert it to GL_R8 would be
+ to perform a copy and use code such as the following:
+
+ fragColor = rgb_2_yuv(texture(tex, texcoord).rgb, itu_601_full_range).r;\n"
+
+ (2) Why use GL_RGBA16F instead of GL_RG16F for storing the motion vector output?
+
+ Resolved: While only the R and G channels are currently used, it was decided to use
+ a format with more channels for future expansion. A floating point format was chosen
+ to support implementations with sub-pixel precision without enforcing any particular precision
+ requirements other than what can be represented in a 16-bit floating point number.
+
+ (3) Why is the motion estimation quality not defined?
+
+ Resolved: The intention of this specification is to estimate the motion between
+ the two input textures. Implementations should aim to produce the highest quality estimations
+ but since the results are estimations there are no prescribed steps for how the vectors
+ must be generated.
+
+
+Revision History
+
+ Rev. Date Author Changes
+ ---- ---------- -------- -----------------------------------------
+ 1.0 03/19/2020 Jonathan Wicks Initial public version
diff --git a/extensions/QCOM/QCOM_shading_rate.txt b/extensions/QCOM/QCOM_shading_rate.txt
index 7fd4630..c2e58b6 100644
--- a/extensions/QCOM/QCOM_shading_rate.txt
+++ b/extensions/QCOM/QCOM_shading_rate.txt
@@ -21,8 +21,8 @@
Version
- Last Modified Date: March 17, 2020
- Revision: #1
+ Last Modified Date: April 22, 2020
+ Revision: #2
Number
@@ -227,7 +227,7 @@
1x1.
If the <W>x<H> value of SHADING_RATE_QCOM is expressed as <w, h> then the
- adjusted rate may be any <w', h'> as long as w' <= w and h' <= h. If
+ adjusted rate may be any <w', h'> as long as (w' * h') <= (w * h). If
PRESERVE_SHADING_RATE_ASPECT_RATIO is TRUE, then the implementation further
guarantees that (w'/h') equals (w/h) or that w'=1 and h'=1.
@@ -421,3 +421,5 @@
Rev. Date Author Changes
---- -------- -------- ----------------------------------------------
1 03/17/20 jleger Initial draft.
+ 2 04/22/20 jleger Relaxed the <w', h'> guarantee from "w'<=w and
+ h'<=h" to "w’*h’ <= w*h".
diff --git a/extensions/esext.php b/extensions/esext.php
index 290c8ad..3ed2597 100644
--- a/extensions/esext.php
+++ b/extensions/esext.php
@@ -677,4 +677,14 @@
</li>
<li value=325><a href="extensions/QCOM/QCOM_shading_rate.txt">GL_QCOM_shading_rate</a>
</li>
+<li value=326><a href="extensions/QCOM/QCOM_motion_estimation.txt">GL_QCOM_motion_estimation</a>
+</li>
+<li value=327><a href="extensions/MESA/MESA_framebuffer_flip_x.txt">GL_MESA_framebuffer_flip_x</a>
+</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 7110dba..e76db85 100644
--- a/extensions/glext.php
+++ b/extensions/glext.php
@@ -1033,4 +1033,12 @@
</li>
<li value=547><a href="extensions/INTEL/INTEL_shader_integer_functions2.txt">GL_INTEL_shader_integer_functions2</a>
</li>
+<li value=548><a href="extensions/MESA/MESA_framebuffer_flip_x.txt">GL_MESA_framebuffer_flip_x</a>
+</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 60abee2..8f3fa4e 100644
--- a/extensions/registry.py
+++ b/extensions/registry.py
@@ -2989,6 +2989,13 @@
'supporters' : { 'MESA' },
'url' : 'extensions/MESA/GLX_MESA_copy_sub_buffer.txt',
},
+ 'GL_MESA_framebuffer_flip_x' : {
+ 'number' : 548,
+ 'esnumber' : 327,
+ 'flags' : { 'public' },
+ 'supporters' : { 'MESA' },
+ 'url' : 'extensions/MESA/MESA_framebuffer_flip_x.txt',
+ },
'GL_MESA_framebuffer_flip_y' : {
'number' : 540,
'esnumber' : 302,
@@ -2996,6 +3003,13 @@
'supporters' : { 'MESA' },
'url' : 'extensions/MESA/MESA_framebuffer_flip_y.txt',
},
+ 'GL_MESA_framebuffer_swap_xy' : {
+ 'number' : 549,
+ 'esnumber' : 328,
+ 'flags' : { 'public' },
+ 'supporters' : { 'MESA' },
+ 'url' : 'extensions/MESA/MESA_framebuffer_swap_xy.txt',
+ },
'GL_MESA_pack_invert' : {
'number' : 300,
'flags' : { 'public' },
@@ -3517,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,
@@ -3923,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' },
@@ -4484,6 +4512,11 @@
'flags' : { 'public' },
'url' : 'extensions/QCOM/QCOM_framebuffer_foveated.txt',
},
+ 'GL_QCOM_motion_estimation' : {
+ 'esnumber' : 326,
+ 'flags' : { 'public' },
+ 'url' : 'extensions/QCOM/QCOM_motion_estimation.txt',
+ },
'GL_QCOM_performance_monitor_global_mode' : {
'esnumber' : 56,
'flags' : { 'public' },
diff --git a/index_gl.php b/index_gl.php
index d075085..db44f6b 100644
--- a/index_gl.php
+++ b/index_gl.php
@@ -221,7 +221,7 @@
<li> <a href="specs/gl/glspec14.pdf"> OpenGL 1.4 API Specification </a>
<li> <a href="specs/gl/glspec13.pdf"> OpenGL 1.3 API Specification </a>
<li> <a href="specs/gl/glspec121.pdf"> OpenGL 1.2.1 API Specification </a>
-<li> <a href="specs/gl/glspec11.ps"> OpenGL 1.1 API Specification (PostScript format) </a>
+<li> <a href="specs/gl/glspec11.pdf"> OpenGL 1.1 API Specification </a>
<li> <a href="specs/gl/glspec10.pdf"> OpenGL 1.0 API Specification </a>
<li> <b> Older GLX Specifications </b>
diff --git a/specs/gl/glspec11.pdf b/specs/gl/glspec11.pdf
new file mode 100644
index 0000000..a50c697
--- /dev/null
+++ b/specs/gl/glspec11.pdf
Binary files differ
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 d558234..4eef9df 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. -->
@@ -7524,7 +7511,7 @@
<enum value="0x84FF" name="GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT" alias="GL_MAX_TEXTURE_MAX_ANISOTROPY"/>
<enum value="0x8500" name="GL_TEXTURE_FILTER_CONTROL"/>
<enum value="0x8500" name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
- <enum value="0x8501" name="GL_TEXTURE_LOD_BIAS" group="TextureParameterName"/>
+ <enum value="0x8501" name="GL_TEXTURE_LOD_BIAS" group="TextureParameterName,SamplerParameterF"/>
<enum value="0x8501" name="GL_TEXTURE_LOD_BIAS_EXT"/>
<enum value="0x8502" name="GL_MODELVIEW1_STACK_DEPTH_EXT"/>
<enum value="0x8503" name="GL_COMBINE4_NV"/>
@@ -9291,6 +9278,8 @@
<enum value="0x8BB9" name="GL_TILE_RASTER_ORDER_INCREASING_X_MESA"/>
<enum value="0x8BBA" name="GL_TILE_RASTER_ORDER_INCREASING_Y_MESA"/>
<enum value="0x8BBB" name="GL_FRAMEBUFFER_FLIP_Y_MESA"/>
+ <enum value="0x8BBC" name="GL_FRAMEBUFFER_FLIP_X_MESA" />
+ <enum value="0x8BBD" name="GL_FRAMEBUFFER_SWAP_XY_MESA" />
</enums>
<enums namespace="GL" start="0x8BC0" end="0x8BFF" vendor="QCOM" comment="Reassigned from AMD to QCOM">
@@ -9377,7 +9366,7 @@
<enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB"/>
<enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT"/>
<enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES"/>
- <enum value="0x8C2A" name="GL_TEXTURE_BUFFER" group="CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER" group="TextureTarget,CopyBufferSubDataTarget,BufferTargetARB,BufferStorageTarget"/>
<enum value="0x8C2A" name="GL_TEXTURE_BUFFER_ARB"/>
<enum value="0x8C2A" name="GL_TEXTURE_BUFFER_EXT"/>
<enum value="0x8C2A" name="GL_TEXTURE_BUFFER_OES"/>
@@ -9526,7 +9515,8 @@
</enums>
<enums namespace="GL" start="0x8C90" end="0x8C9F" vendor="QCOM" comment="For Affie Munshi. Reassigned from AMD to QCOM (bug 5874)">
- <unused start="0x8C90" end="0x8C91" vendor="QCOM"/>
+ <enum value="0x8C90" name="GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM" group="GetPName"/>
+ <enum value="0x8C91" name="GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM" group="GetPName"/>
<enum value="0x8C92" name="GL_ATC_RGB_AMD"/>
<enum value="0x8C93" name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD"/>
<unused start="0x8C94" end="0x8C9F" vendor="QCOM"/>
@@ -9695,7 +9685,7 @@
<enum value="0x8CFD" name="GL_COLOR_ATTACHMENT29" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
<enum value="0x8CFE" name="GL_COLOR_ATTACHMENT30" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
<enum value="0x8CFF" name="GL_COLOR_ATTACHMENT31" group="ColorBuffer,DrawBufferMode,FramebufferAttachment,InvalidateFramebufferAttachment"/>
- <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT" group="InvalidateFramebufferAttachment"/>
+ <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT" group="InvalidateFramebufferAttachment,FramebufferAttachment"/>
<enum value="0x8D00" name="GL_DEPTH_ATTACHMENT_EXT" group="InvalidateFramebufferAttachment"/>
<enum value="0x8D00" name="GL_DEPTH_ATTACHMENT_OES" group="InvalidateFramebufferAttachment"/>
<unused start="0x8D01" end="0x8D1F" vendor="ARB" comment="For depth attachments 16-31"/>
@@ -10196,10 +10186,10 @@
<enum value="0x8E88" name="GL_TESS_CONTROL_SHADER" group="PipelineParameterName,ShaderType"/>
<enum value="0x8E88" name="GL_TESS_CONTROL_SHADER_EXT"/>
<enum value="0x8E88" name="GL_TESS_CONTROL_SHADER_OES"/>
- <enum value="0x8E89" name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS"/>
+ <enum value="0x8E89" name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS" group="GetPName"/>
<enum value="0x8E89" name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT"/>
<enum value="0x8E89" name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES"/>
- <enum value="0x8E8A" name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS"/>
+ <enum value="0x8E8A" name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS" group="GetPName"/>
<enum value="0x8E8A" name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT"/>
<enum value="0x8E8A" name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES"/>
<unused start="0x8E8B" vendor="NV"/>
@@ -10804,7 +10794,7 @@
<enum value="0x9124" name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT"/>
<enum value="0x9124" name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES"/>
<enum value="0x9125" name="GL_MAX_FRAGMENT_INPUT_COMPONENTS" group="GetPName"/>
- <enum value="0x9126" name="GL_CONTEXT_PROFILE_MASK"/>
+ <enum value="0x9126" name="GL_CONTEXT_PROFILE_MASK" group="GetPName"/>
<enum value="0x9127" name="GL_UNPACK_COMPRESSED_BLOCK_WIDTH"/>
<enum value="0x9128" name="GL_UNPACK_COMPRESSED_BLOCK_HEIGHT"/>
<enum value="0x9129" name="GL_UNPACK_COMPRESSED_BLOCK_DEPTH"/>
@@ -11568,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"/>
@@ -11595,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">
@@ -12809,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>
@@ -14964,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>
@@ -18776,37 +18786,37 @@
<command>
<proto>void <name>glGetNamedBufferParameteri64v</name></proto>
<param><ptype>GLuint</ptype> <name>buffer</name></param>
- <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
<param><ptype>GLint64</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetNamedBufferParameteriv</name></proto>
<param><ptype>GLuint</ptype> <name>buffer</name></param>
- <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
<param><ptype>GLint</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetNamedBufferParameterivEXT</name></proto>
<param><ptype>GLuint</ptype> <name>buffer</name></param>
- <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
<param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetNamedBufferParameterui64vNV</name></proto>
<param><ptype>GLuint</ptype> <name>buffer</name></param>
- <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
<param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetNamedBufferPointerv</name></proto>
<param><ptype>GLuint</ptype> <name>buffer</name></param>
- <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="BufferPointerNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
<param>void **<name>params</name></param>
</command>
<command>
<proto>void <name>glGetNamedBufferPointervEXT</name></proto>
<param><ptype>GLuint</ptype> <name>buffer</name></param>
- <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="BufferPointerNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
<param len="1">void **<name>params</name></param>
</command>
<command>
@@ -19707,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>
@@ -19793,6 +19809,11 @@
<proto><ptype>GLushort</ptype> <name>glGetStageIndexNV</name></proto>
<param group="ShaderType"><ptype>GLenum</ptype> <name>shadertype</name></param>
</command>
+ <!-- These commands represent strings as GLubyte* instead of GLchar* as represented elsewhere.
+ While functionally the same, these commands continue to use GLubyte* as there's no way to
+ change the signature of these commands without potentially breaking lots of applications
+ using these APIs. For more information, see public issue 363:
+ https://github.com/KhronosGroup/OpenGL-Registry/issues/363 -->
<command>
<proto group="String">const <ptype>GLubyte</ptype> *<name>glGetString</name></proto>
<param group="StringName"><ptype>GLenum</ptype> <name>name</name></param>
@@ -20181,7 +20202,7 @@
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
<param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
<param len="1"><ptype>GLsizei</ptype> *<name>size</name></param>
- <param group="GlslTypeToken" len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param group="AttributeType" len="1"><ptype>GLenum</ptype> *<name>type</name></param>
<param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
<glx type="single" opcode="213"/>
</command>
@@ -20192,7 +20213,7 @@
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
<param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
<param len="1"><ptype>GLsizei</ptype> *<name>size</name></param>
- <param group="GlslTypeToken" len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param group="AttributeType" len="1"><ptype>GLenum</ptype> *<name>type</name></param>
<param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
<alias name="glGetTransformFeedbackVarying"/>
</command>
@@ -22589,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>
@@ -23742,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>
@@ -27754,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>
@@ -28865,6 +28901,19 @@
<param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
</command>
<command>
+ <proto>void <name>glTexEstimateMotionQCOM</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>ref</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>target</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>output</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEstimateMotionRegionsQCOM</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>ref</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>target</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>output</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
<proto>void <name>glTexFilterFuncSGIS</name></proto>
<param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
<param group="TextureFilterSGIS"><ptype>GLenum</ptype> <name>filter</name></param>
@@ -29101,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>
@@ -29629,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>
@@ -32678,7 +32757,7 @@
<proto>void <name>glVertexAttribIPointer</name></proto>
<param><ptype>GLuint</ptype> <name>index</name></param>
<param><ptype>GLint</ptype> <name>size</name></param>
- <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="VertexAttribIType"><ptype>GLenum</ptype> <name>type</name></param>
<param><ptype>GLsizei</ptype> <name>stride</name></param>
<param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
</command>
@@ -32686,7 +32765,7 @@
<proto>void <name>glVertexAttribIPointerEXT</name></proto>
<param><ptype>GLuint</ptype> <name>index</name></param>
<param><ptype>GLint</ptype> <name>size</name></param>
- <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="VertexAttribIType"><ptype>GLenum</ptype> <name>type</name></param>
<param><ptype>GLsizei</ptype> <name>stride</name></param>
<param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
<alias name="glVertexAttribIPointer"/>
@@ -32911,7 +32990,7 @@
<proto>void <name>glVertexAttribLPointer</name></proto>
<param><ptype>GLuint</ptype> <name>index</name></param>
<param><ptype>GLint</ptype> <name>size</name></param>
- <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="VertexAttribLType"><ptype>GLenum</ptype> <name>type</name></param>
<param><ptype>GLsizei</ptype> <name>stride</name></param>
<param len="size">const void *<name>pointer</name></param>
</command>
@@ -32919,7 +32998,7 @@
<proto>void <name>glVertexAttribLPointerEXT</name></proto>
<param><ptype>GLuint</ptype> <name>index</name></param>
<param><ptype>GLint</ptype> <name>size</name></param>
- <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="VertexAttribLType"><ptype>GLenum</ptype> <name>type</name></param>
<param><ptype>GLsizei</ptype> <name>stride</name></param>
<param len="size">const void *<name>pointer</name></param>
<alias name="glVertexAttribLPointer"/>
@@ -45740,6 +45819,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"/>
@@ -46818,6 +46901,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"/>
@@ -47724,6 +47819,11 @@
<enum name="GL_TEXTURE_2D_STACK_BINDING_MESAX"/>
</require>
</extension>
+ <extension name="GL_MESA_framebuffer_flip_x" supported="gl|glcore|gles2">
+ <require>
+ <enum name="GL_FRAMEBUFFER_FLIP_X_MESA"/>
+ </require>
+ </extension>
<extension name="GL_MESA_framebuffer_flip_y" supported="gl|glcore|gles2">
<require>
<enum name="GL_FRAMEBUFFER_FLIP_Y_MESA"/>
@@ -47731,6 +47831,11 @@
<command name="glGetFramebufferParameterivMESA"/>
</require>
</extension>
+ <extension name="GL_MESA_framebuffer_swap_xy" supported="gl|glcore|gles2">
+ <require>
+ <enum name="GL_FRAMEBUFFER_SWAP_XY_MESA"/>
+ </require>
+ </extension>
<extension name="GL_MESA_pack_invert" supported="gl">
<require>
<enum name="GL_PACK_INVERT_MESA"/>
@@ -48625,6 +48730,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"/>
@@ -50956,6 +51071,15 @@
<command name="glFramebufferFoveationParametersQCOM"/>
</require>
</extension>
+ <extension name="GL_QCOM_motion_estimation" supported="gles2">
+ <require>
+ <enum name="GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM"/>
+ <enum name="GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM"/>
+ <enum name="GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM"/>
+ <command name="glTexEstimateMotionQCOM"/>
+ <command name="glTexEstimateMotionRegionsQCOM"/>
+ </require>
+ </extension>
<extension name="GL_QCOM_texture_foveated" supported="gles2">
<require>
<enum name="GL_FOVEATION_ENABLE_BIT_QCOM"/>
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. -->