Merge branch 'master' into 280-group-warning
diff --git a/api/GL/glcorearb.h b/api/GL/glcorearb.h
index 88dc825..e568510 100755
--- a/api/GL/glcorearb.h
+++ b/api/GL/glcorearb.h
@@ -4763,6 +4763,12 @@
#ifndef GL_MESA_framebuffer_flip_y
#define GL_MESA_framebuffer_flip_y 1
#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
+typedef void (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFramebufferParameteriMESA (GLenum target, GLenum pname, GLint param);
+GLAPI void APIENTRY glGetFramebufferParameterivMESA (GLenum target, GLenum pname, GLint *params);
+#endif
#endif /* GL_MESA_framebuffer_flip_y */
#ifndef GL_NV_bindless_multi_draw_indirect
diff --git a/api/GL/glext.h b/api/GL/glext.h
index 6a8e07a..8aa0157 100644
--- a/api/GL/glext.h
+++ b/api/GL/glext.h
@@ -51,7 +51,7 @@
#define GLAPI extern
#endif
-#define GL_GLEXT_VERSION 20190728
+#define GL_GLEXT_VERSION 20190805
#include <KHR/khrplatform.h>
@@ -9278,6 +9278,12 @@
#ifndef GL_MESA_framebuffer_flip_y
#define GL_MESA_framebuffer_flip_y 1
#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
+typedef void (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFramebufferParameteriMESA (GLenum target, GLenum pname, GLint param);
+GLAPI void APIENTRY glGetFramebufferParameterivMESA (GLenum target, GLenum pname, GLint *params);
+#endif
#endif /* GL_MESA_framebuffer_flip_y */
#ifndef GL_MESA_pack_invert
diff --git a/api/GL/glxext.h b/api/GL/glxext.h
index a6f1c0c..ea970a0 100755
--- a/api/GL/glxext.h
+++ b/api/GL/glxext.h
@@ -34,7 +34,7 @@
** https://github.com/KhronosGroup/OpenGL-Registry
*/
-#define GLX_GLXEXT_VERSION 20190728
+#define GLX_GLXEXT_VERSION 20190822
/* Generated C header for:
* API: glx
@@ -555,6 +555,15 @@
#define GLX_FLOAT_COMPONENTS_NV 0x20B0
#endif /* GLX_NV_float_buffer */
+#ifndef GLX_NV_multigpu_context
+#define GLX_NV_multigpu_context 1
+#define GLX_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA
+#define GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB
+#define GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC
+#define GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD
+#define GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE
+#endif /* GLX_NV_multigpu_context */
+
#ifndef GLX_NV_multisample_coverage
#define GLX_NV_multisample_coverage 1
#define GLX_COVERAGE_SAMPLES_NV 100001
diff --git a/api/GLES/gl.h b/api/GLES/gl.h
index 50b4577..ea586eb 100644
--- a/api/GLES/gl.h
+++ b/api/GLES/gl.h
@@ -36,7 +36,7 @@
#include <GLES/glplatform.h>
-/* Generated on date 20190728 */
+/* Generated on date 20190805 */
/* Generated C header for:
* API: gles1
diff --git a/api/GLES/glext.h b/api/GLES/glext.h
index a79dbd5..be8a569 100644
--- a/api/GLES/glext.h
+++ b/api/GLES/glext.h
@@ -38,7 +38,7 @@
#define GL_APIENTRYP GL_APIENTRY*
#endif
-/* Generated on date 20190728 */
+/* Generated on date 20190805 */
/* Generated C header for:
* API: gles1
diff --git a/api/GLES2/gl2.h b/api/GLES2/gl2.h
index a5c6130..f1e3dc6 100644
--- a/api/GLES2/gl2.h
+++ b/api/GLES2/gl2.h
@@ -44,7 +44,7 @@
#define GL_GLES_PROTOTYPES 1
#endif
-/* Generated on date 20190728 */
+/* Generated on date 20190805 */
/* Generated C header for:
* API: gles2
diff --git a/api/GLES2/gl2ext.h b/api/GLES2/gl2ext.h
index 758d554..cab1c45 100644
--- a/api/GLES2/gl2ext.h
+++ b/api/GLES2/gl2ext.h
@@ -38,7 +38,7 @@
#define GL_APIENTRYP GL_APIENTRY*
#endif
-/* Generated on date 20190728 */
+/* Generated on date 20190805 */
/* Generated C header for:
* API: gles2
@@ -2455,6 +2455,12 @@
#ifndef GL_MESA_framebuffer_flip_y
#define GL_MESA_framebuffer_flip_y 1
#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
+typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param);
+typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GL_APICALL void GL_APIENTRY glFramebufferParameteriMESA (GLenum target, GLenum pname, GLint param);
+GL_APICALL void GL_APIENTRY glGetFramebufferParameterivMESA (GLenum target, GLenum pname, GLint *params);
+#endif
#endif /* GL_MESA_framebuffer_flip_y */
#ifndef GL_MESA_program_binary_formats
diff --git a/api/GLES3/gl3.h b/api/GLES3/gl3.h
index d8f71f3..838286c 100644
--- a/api/GLES3/gl3.h
+++ b/api/GLES3/gl3.h
@@ -44,7 +44,7 @@
#define GL_GLES_PROTOTYPES 1
#endif
-/* Generated on date 20190728 */
+/* Generated on date 20190805 */
/* Generated C header for:
* API: gles2
diff --git a/extensions/AMD/AMD_gpu_shader_half_float.txt b/extensions/AMD/AMD_gpu_shader_half_float.txt
index b59ace4..3cd05a3 100644
--- a/extensions/AMD/AMD_gpu_shader_half_float.txt
+++ b/extensions/AMD/AMD_gpu_shader_half_float.txt
@@ -122,7 +122,7 @@
| FLOAT16_MAT3x2_AMD | f16mat3x2 | * | * | * |
| FLOAT16_MAT3x4_AMD | f16mat3x4 | * | * | * |
| FLOAT16_MAT4x2_AMD | f16mat4x2 | * | * | * |
- | FLOAT16_MAT4x3_AMD | f16mat4x2 | * | * | * |
+ | FLOAT16_MAT4x3_AMD | f16mat4x3 | * | * | * |
+----------------------------+----------------+------+------+------+
diff --git a/extensions/ARB/ARB_draw_elements_base_vertex.txt b/extensions/ARB/ARB_draw_elements_base_vertex.txt
index f140691..245f050 100644
--- a/extensions/ARB/ARB_draw_elements_base_vertex.txt
+++ b/extensions/ARB/ARB_draw_elements_base_vertex.txt
@@ -40,8 +40,8 @@
Version
- Last Modified Date: August 2, 2009
- Version: 3
+ Last Modified Date: August 22, 2019
+ Version: 4
Number
@@ -120,16 +120,16 @@
New Procedures and Functions
void DrawElementsBaseVertex(enum mode, sizei count, enum type,
- void *indices, int basevertex);
+ const void *indices, int basevertex);
void DrawRangeElementsBaseVertex(enum mode, uint start, uint end,
- sizei count, enum type, void *indices, int basevertex);
+ sizei count, enum type, const void *indices, int basevertex);
void DrawElementsInstancedBaseVertex(enum mode, sizei count,
- enum type, const void *indices, sizei primcount, int basevertex);
+ enum type, const void *indices, sizei instancecount, int basevertex);
- void MultiDrawElementsBaseVertex(enum mode, sizei *count, enum type,
- void **indices, sizei primcount, int *basevertex)
+ void MultiDrawElementsBaseVertex(enum mode, const sizei *count, enum type,
+ const void *const *indices, sizei drawcount, const int *basevertex)
New Tokens
@@ -147,13 +147,13 @@
"The commands
void DrawElementsBaseVertex(enum mode, sizei count, enum type,
- void *indices, int basevertex);
+ const void *indices, int basevertex);
void DrawRangeElementsBaseVertex(enum mode, uint start, uint end,
- sizei count, enum type, void *indices, int basevertex);
+ sizei count, enum type, const void *indices, int basevertex);
void DrawElementsInstancedBaseVertex(enum mode, sizei count,
- enum type, const void *indices, sizei primcount, int basevertex);
+ enum type, const void *indices, sizei instancecount, int basevertex);
are equivalent to the commands with the same base name (without the
"BaseVertex" suffix) except that the <i>th element transferred by
@@ -171,14 +171,14 @@
The command
- void MultiDrawElementsBaseVertex(enum mode, sizei *count,
- enum type, void **indices, sizei primcount, int *basevertex);
+ void MultiDrawElementsBaseVertex(enum mode, const sizei *count,
+ enum type, const void *const *indices, sizei drawcount, const int *basevertex);
behaves identically to DrawElementsBaseVertex except that
- <primcount> separate lists of elements are specified instead. It has
+ <drawcount> separate lists of elements are specified instead. It has
the same effect as:
- for (i = 0; i < primcount; i++) {
+ for (i = 0; i < drawcount; i++) {
if (count[i] > 0)
DrawElementsBaseVertex(mode, count[i], type, indices[i],
basevertex[i]);
@@ -468,3 +468,4 @@
2 7/21/09 dgkoch resync language with 20090630 3.2 spec
3 8/02/09 Jon Leech Reformat to 80 columns and assign ARB
extension number.
+ 4 8/22/19 N Stewart Parameter naming and const aligned to 4.6 core spec.
diff --git a/extensions/MESA/MESA_framebuffer_flip_y.txt b/extensions/MESA/MESA_framebuffer_flip_y.txt
index 0866203..349e113 100644
--- a/extensions/MESA/MESA_framebuffer_flip_y.txt
+++ b/extensions/MESA/MESA_framebuffer_flip_y.txt
@@ -23,7 +23,7 @@
Version
- Version 2, June 4, 2019
+ Version 3, August, 2019
Number
@@ -32,7 +32,7 @@
Dependencies
- OpenGL ES 3.1 or OpenGL 4.3 is required, for FramebufferParameteri.
+ Requires OpenGL ES 3.0, OpenGL 4.3, or ARB_framebuffer_no_attachments.
Overview
@@ -59,7 +59,10 @@
New Procedures and Functions
- None
+ OpenGL ES must provide the following functions:
+
+ void FramebufferParameteriMESA(enum target, enum pname, int param);
+ void GetFramebufferParameterivMESA(enum target, enum pname, int *params);
New Types
@@ -67,20 +70,33 @@
New Tokens
- Accepted by the <pname> argument of FramebufferParameteri and
- GetFramebufferParameteriv:
+ Accepted by the <pname> argument of FramebufferParameteriMESA and
+ GetFramebufferParameterivMESA:
GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
+Interactions with OpenGL 4.3, OpenGL ES 3.1, ARB_framebuffer_no_attachments
+and any other versions and extensions that provide the entry points
+FramebufferParameteri and GetFramebufferParameteriv
+
+ Token GL_FRAMEBUFFER_FLIP_Y_MESA is accepted as the <pname> argument of
+ FramebufferParameteri and GetFramebufferParameteriv.
+
Errors
- An INVALID_OPERATION error is generated by GetFramebufferParameteriv if the
- default framebuffer is bound to <target> and <pname> is FRAMEBUFFER_FLIP_Y_MESA.
+ An INVALID_OPERATION error is generated by GetFramebufferParameteriv or
+ GetFramebufferParameterivMESA if the default framebuffer is bound
+ to <target> and <pname> is GL_FRAMEBUFFER_FLIP_Y_MESA.
Revision History
+ Version 3, August, 2019
+ Allow OpenGL ES 3.0 to implement by adding functions
+ FramebufferParameteriMESA and GetFramebufferParameterivMESA which were
+ previously only available in OpenGL ES 3.1.
+
Version 2, June, 2019
Enable extension for OpenGL 4.3 and beyond
diff --git a/extensions/NV/GLX_NV_multigpu_context.txt b/extensions/NV/GLX_NV_multigpu_context.txt
new file mode 100644
index 0000000..9830311
--- /dev/null
+++ b/extensions/NV/GLX_NV_multigpu_context.txt
@@ -0,0 +1,142 @@
+Name
+
+ NV_multigpu_context
+
+Name Strings
+
+ GLX_NV_multigpu_context
+
+Contact
+
+ Ben Quest (bquest 'at' nvidia.com)
+
+Contributors
+
+ Ben Quest, NVIDIA
+ Joshua Schnarr, NVIDIA
+ Ralf Biermann, NVIDIA
+ Ingo Esser, NVIDIA
+ Robert Menzel, NVIDIA
+ James Jones, NVIDIA
+
+Notice
+
+ Copyright (c) 2019 NVIDIA
+
+Status
+
+ Complete.
+
+Version
+
+ Last Modified Date: 2019-05-17
+ Author Revision: 1
+
+Number
+
+ OpenGL Extension #545
+
+Dependencies
+
+ GLX_NV_multigpu_context is written against the GLX 1.4 and
+ GLX_ARB_create_context specifications. Both are required.
+
+ This extension interacts with NV_gpu_multicast.
+
+Overview
+
+ This extension allows the creation of an OpenGL context in a multi-GPU
+ environment with a specified multi-GPU strategy (known as SLI mode) which
+ takes precedence over process-wide multi-GPU mode settings.
+
+ The multi-GPU mode denotes vendor specific techniques to allow distributed
+ rendering on multiple GPUs, further called AFR (alternate frame rendering)
+ and Multicast (as defined in NV_gpu_multicast).
+
+ OpenGL supports multiple contexts. The semantics of switching contexts
+ is generally left to window system binding APIs such as WGL, GLX and EGL.
+ The extension GLX_NV_multigpu_context allows to specify a preferred
+ multi-GPU rendering mode per context, thus context switching can also
+ switch the current multi-GPU rendering mode.
+
+ In addition to the modes described above, this extension allows creating
+ contexts in single mode to force all rendering to be done on a single GPU,
+ and multi-display multicast mode to allow multicast rendering on a
+ multi-display configuration where displays attached to multiple GPUs are
+ linked together in a desktop configuration spanning multiple GPUs.
+
+ The implementation is platform dependent and the actual multi-GPU rendering
+ mode of the created context may vary on different hardware and operation
+ system platforms.
+
+New Procedures and Functions
+
+ None
+
+New Tokens (GLX)
+
+ Accepted as an attribute name in the <*attrib_list> argument to
+ glXCreateContextAttribsARB:
+
+ GLX_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA
+
+ Accepted as an attribute value for GLX_CONTEXT_MULTIGPU_ATTRIB_NV in
+ the <*attrib_list> argument to glXCreateContextAttribsARB:
+
+ GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB
+ GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC
+ GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD
+ GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE
+
+Additions to the GLX 1.4 Specification
+
+ This extension modifies language specified in the GLX_ARB_create_context
+ extension.
+
+ Add a new paragraph to the description of glXCreateContextAttribsARB:
+
+ "The attribute name GLX_CONTEXT_MULTIGPU_ATTRIB_NV indicates the
+ preferred multi-GPU rendering mode for the OpenGL context.
+ This specified mode precedes other selected configuration settings."
+
+ Add a new context creation error to glXCreateContextAttribsARB:
+
+ "If attribute GLX_CONTEXT_MULTIGPU_ATTRIB_NV does not describe a valid and
+ supported SLI rendering mode, BadValue is generated."
+
+ Append a new paragraph to the end of section 3.5 "Rendering Contexts":
+
+ "When multiple contexts created with a multigpu context attribute are being
+ used, glXMakeCurrent and glXMakeContextCurrent will return FALSE if the
+ GLXDrawable is already current with a context using a different multigpu
+ attribute."
+
+GLX Errors
+
+ BadValue is generated if GLX_CONTEXT_MULTIGPU_ATTRIB_NV does not describe a
+ valid and supported SLI rendering mode.
+
+ GLXBadContextState is generated if glXMakeCurrent is called with a context
+ created with a different multigpu attribute than the context previously
+ current to the drawable.
+
+GLX Protocol
+
+ None
+
+New State
+
+ None
+
+Issues
+
+ All non-window-system dependent issues described in the
+ WGL_NV_multigpu_context extension specification apply equally to
+ GLX_NV_multigpu_context.
+
+Revision History
+
+ Rev. Date Author Changes
+ ---- ---------- -------- ---------------------------------------------
+ 1 2019-05-17 bquest Fork from WGL_NV_multigpu_context
+
diff --git a/extensions/NV/NV_compute_shader_derivatives.txt b/extensions/NV/NV_compute_shader_derivatives.txt
index 4bc891b..bdd9f6c 100644
--- a/extensions/NV/NV_compute_shader_derivatives.txt
+++ b/extensions/NV/NV_compute_shader_derivatives.txt
@@ -22,8 +22,8 @@
Version
- Last Modified: November 9, 2018
- Revision: 2
+ Last Modified: September 4, 2019
+ Revision: 3
Number
@@ -37,6 +37,8 @@
OpenGL 4.5 or OpenGL ES 3.2 is required.
+ This extension interacts with ARB_compute_variable_group_size.
+
This extension requires support for the OpenGL Shading Language (GLSL)
extension "NV_compute_shader_derivatives", which can be found at the
Khronos Group Github site here:
@@ -88,12 +90,62 @@
None
+Dependencies on ARB_compute_variable_group_size
+
+ If ARB_compute_variable_group_size is supported, the GLSL compiler/linker is
+ unable to enforce the following restrictions:
+
+ * Compute shaders using the "derivative_group_quadsNV" mode must have a
+ local workgroup size whose width and height are both multiples of two.
+
+ * Compute shaders using the "derivative_group_linearNV" mode must have a
+ local workgroup size whose total number of invocations is a multiple of four.
+
+ Instead, we need to enforce this restriction at run time.
+
+ Add the following to the list of errors under the heading of "insert at the
+ end of the first error block, shared between DispatchCompute and
+ DispatchComputeGroupSizeARB, p. 586" in ARB_compute_variable_group_size:
+
+ * An INVALID_VALUE error is generated by DispatchComputeGroupSizeARB if the
+ active program for the compute shader stage has a compute shader using the
+ "derivative_group_quadsNV" layout qualifier and <group_size_x> or
+ <group_size_y> is not a multiple of two.
+
+ * An INVALID_VALUE error is generated by DispatchComputeGroupSizeARB if the
+ active program for the compute shader stage has a compute shader using the
+ "derivative_group_linearNV" layout qualifier and the product of
+ <group_size_x>, <group_size_y>, and <group_size_z> is not a multiple of
+ four.
+
+ Note that as of September 2019, this issue does not apply to SPIR-V compute
+ shaders because SPIR-V does not provide a mechanism to specify variable
+ local group sizes. If this changes in the future, the INVALID_VALUE error
+ above would apply both to GLSL and SPIR-V compute shaders.
+
+
Issues
- None, but please refer to issues in the GLSL extension specification.
+ (1) How does this extension interact with ARB_compute_variable_group_size?
+
+ RESOLVED: For compute shaders with fixed group size, the GLSL
+ specification calls for a compile- or link-time error if the local group
+ size is inconsistent with the derivative mode specified using the
+ "derivative_group_quadsNV" or "derivative_group_linearNV" layout
+ qualifiers. However, this sort of error can not be generated if
+ "local_size_variable" is also specified because the local group size is
+ not known until DispatchComputeGroupSizeARB is called. To deal with this,
+ we specify an INVALID_VALUE error if DispatchComputeGroupSizeARB is called
+ with a bad local group size.
Revision History
+ Revision 3 (pbrown), 2019/09/04
+ - Add an interaction with ARB_compute_variable_group_size, specifying
+ that INVALID_VALUE is generated by DispatchComputeGroupSizeARB if the
+ derivative mode is inconsistent with the local group size specified in the
+ dispatch command.
+
Revision 2 (mchock)
- Added OpenGL ES support.
diff --git a/extensions/NV/NV_mesh_shader.txt b/extensions/NV/NV_mesh_shader.txt
index 7914378..5acf1cb 100644
--- a/extensions/NV/NV_mesh_shader.txt
+++ b/extensions/NV/NV_mesh_shader.txt
@@ -23,8 +23,8 @@
Version
- Last Modified Date: February 7, 2019
- NVIDIA Revision: 4
+ Last Modified Date: September 5, 2019
+ NVIDIA Revision: 5
Number
@@ -814,7 +814,7 @@
+------------------------------------------+-----------+---------------+---------------------+-----------------------------------------------------------------------+--------+
| Get Value | Type | Get Command | Minimum Value | Description | Sec. |
+------------------------------------------+-----------+---------------+---------------------+-----------------------------------------------------------------------+--------+
- | MAX_DRAW_MESH_TASKS_COUNT_NV | Z+ | GetIntegerv | 2^32 - 1 | Maximum number of work groups that may be drawn by a single | X.6 |
+ | MAX_DRAW_MESH_TASKS_COUNT_NV | Z+ | GetIntegerv | 2^16 - 1 | Maximum number of work groups that may be drawn by a single | X.6 |
| | | | | draw mesh tasks command | |
| MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV | Z+ | GetIntegerv | - | Per-vertex output allocation granularity for mesh shaders | X.3 |
| MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV | Z+ | GetIntegerv | - | Per-primitive output allocation granularity for mesh shaders | X.3 |
@@ -1098,6 +1098,9 @@
Revision History
+ Revision 5 (pdaniell)
+ - Fix minimum implementation limit of MAX_DRAW_MESH_TASKS_COUNT_NV.
+
Revision 4 (pknowles)
- Add ES interactions.
diff --git a/extensions/glext.php b/extensions/glext.php
index c0204bd..9baab5d 100644
--- a/extensions/glext.php
+++ b/extensions/glext.php
@@ -1027,4 +1027,6 @@
</li>
<li value=544><a href="extensions/NV/NV_shader_subgroup_partitioned.txt">GL_NV_shader_subgroup_partitioned</a>
</li>
+<li value=545><a href="extensions/NV/GLX_NV_multigpu_context.txt">GLX_NV_multigpu_context</a>
+</li>
</ol>
diff --git a/extensions/registry.py b/extensions/registry.py
index 1c176f4..acd3d7f 100644
--- a/extensions/registry.py
+++ b/extensions/registry.py
@@ -5544,4 +5544,10 @@
'supporters' : { 'NVIDIA' },
'url' : 'extensions/NV/WGL_NV_multigpu_context.txt',
},
+ 'GLX_NV_multigpu_context' : {
+ 'number' : 545,
+ 'flags' : { 'public' },
+ 'supporters' : { 'NVIDIA' },
+ 'url' : 'extensions/NV/GLX_NV_multigpu_context.txt',
+ },
}
diff --git a/xml/gl.xml b/xml/gl.xml
index 70dfa14..9422da3 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -93,6 +93,210 @@
-->
<groups>
+ <group name="EvalMapsModeNV">
+ <enum name="GL_FILL_NV"/>
+ </group>
+
+ <group name="ProgramTarget">
+ <enum name="GL_TEXT_FRAGMENT_SHADER"/>
+ </group>
+
+ <group name="CombinerStageNV">
+ <enum name="GL_COMBINER0_NV"/>
+ <enum name="GL_COMBINER1_NV"/>
+ <enum name="GL_COMBINER2_NV"/>
+ <enum name="GL_COMBINER3_NV"/>
+ <enum name="GL_COMBINER4_NV"/>
+ <enum name="GL_COMBINER5_NV"/>
+ <enum name="GL_COMBINER6_NV"/>
+ <enum name="GL_COMBINER7_NV"/>
+ </group>
+
+ <group name="CombinerPortionNV">
+ <enum name="GL_RGB_NV"/>
+ <enum name="GL_ALPHA_NV"/>
+ </group>
+
+ <group name="MapTypeNV">
+ <enum name="GL_FLOAT_NV"/>
+ <enum name="GL_DOUBLE_NV"/>
+ </group>
+
+ <group name="ScalarType">
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ </group>
+
+ <group name="VertexShaderTextureUnitParameter">
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ </group>
+
+ <group name="ProgramStringProperty">
+ <enum name="GL_PROGRAM_STRING"/>
+ </group>
+
+ <group name="ProgramFormat">
+ <enum name="GL_PROGRAM_FORMAT_ASCII"/>
+ </group>
+
+ <group name="PathColorFormat">
+ <enum name="GL_NONE"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_INTENSITY"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ </group>
+
+ <group name="ReplacementCodeTypeSUN">
+ <enum name="GL_UNSIGNED_BYTE_SUN"/>
+ <enum name="GL_UNSIGNED_SHORT_SUN"/>
+ <enum name="GL_UNSIGNED_INT_SUN"/>
+ </group>
+
+ <group name="SecondaryColorPointerTypeIBM">
+ <enum name="GL_SHORT_IBM"/>
+ <enum name="GL_INT_IBM"/>
+ <enum name="GL_FLOAT_IBM"/>
+ <enum name="GL_DOUBLE_IBM"/>
+ </group>
+
+ <group name="FragmentLightNameSGIX">
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ </group>
+
+ <group name="FragmentLightParameterSGIX">
+ <enum name="GL_SPOT_EXPONENT_SGIX"/>
+ <enum name="GL_SPOT_CUTOFF_SGIX"/>
+ <enum name="GL_CONSTANT_ATTENUATION_SGIX"/>
+ <enum name="GL_LINEAR_ATTENUATION_SGIX"/>
+ <enum name="GL_QUADRATIC_ATTENUATION_SGIX"/>
+ <enum name="GL_AMBIENT_SGIX"/>
+ <enum name="GL_DIFFUSE_SGIX"/>
+ <enum name="GL_SPECULAR_SGIX"/>
+ <enum name="GL_POSITION_SGIX"/>
+ <enum name="GL_SPOT_DIRECTION_SGIX"/>
+ <enum name="GL_SPOT_EXPONENT_SGIX"/>
+ <enum name="GL_SPOT_CUTOFF_SGIX"/>
+ <enum name="GL_CONSTANT_ATTENUATION_SGIX"/>
+ <enum name="GL_LINEAR_ATTENUATION_SGIX"/>
+ <enum name="GL_QUADRATIC_ATTENUATION_SGIX"/>
+ </group>
+
+ <group name="ElementPointerTypeATI">
+ <enum name="GL_UNSIGNED_BYTE_ATI"/>
+ <enum name="GL_UNSIGNED_SHORT_ATI"/>
+ <enum name="GL_UNSIGNED_INT_ATI"/>
+ </group>
+
+ <group name="MatrixIndexPointerTypeARB">
+ <enum name="GL_UNSIGNED_BYTE_ARB"/>
+ <enum name="GL_UNSIGNED_SHORT_ARB"/>
+ <enum name="GL_UNSIGNED_INT_ARB"/>
+ </group>
+
+ <group name="WeightPointerTypeARB">
+ <enum name="GL_BYTE_ARB"/>
+ <enum name="GL_UNSIGNED_BYTE_ARB"/>
+ <enum name="GL_SHORT_ARB"/>
+ <enum name="GL_UNSIGNED_SHORT_ARB"/>
+ <enum name="GL_INT_ARB"/>
+ <enum name="GL_UNSIGNED_INT_ARB"/>
+ <enum name="GL_FLOAT_ARB"/>
+ <enum name="GL_DOUBLE_ARB"/>
+ </group>
+
+ <group name="CullParameterEXT">
+ <enum name="GL_CULL_VERTEX_EYE_POSITION_EXT"/>
+ <enum name="GL_CULL_VERTEX_OBJECT_POSITION_EXT"/>
+ </group>
+
+ <group name="DataTypeEXT">
+ <enum name="GL_SCALAR_EXT"/>
+ <enum name="GL_VECTOR_EXT"/>
+ <enum name="GL_MATRIX_EXT"/>
+ </group>
+
+ <group name="ParameterRangeEXT">
+ <enum name="GL_NORMALIZED_RANGE_EXT"/>
+ <enum name="GL_FULL_RANGE_EXT"/>
+ </group>
+
+ <group name="GetVariantValueEXT">
+ <enum name="GL_VARIANT_VALUE_EXT"/>
+ <enum name="GL_VARIANT_DATATYPE_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_TYPE_EXT"/>
+ </group>
+
+ <group name="IndexFunctionEXT">
+ <enum name="GL_NEVER_EXT"/>
+ <enum name="GL_ALWAYS_EXT"/>
+ <enum name="GL_LESS_EXT"/>
+ <enum name="GL_LEQUAL_EXT"/>
+ <enum name="GL_EQUAL_EXT"/>
+ <enum name="GL_GEQUAL_EXT"/>
+ <enum name="GL_GREATER_EXT"/>
+ <enum name="GL_NOTEQUAL_EXT"/>
+ </group>
+
+ <group name="IndexMaterialParameterEXT">
+ <enum name="GL_INDEX_OFFSET"/>
+ </group>
+
+ <group name="VariantCapEXT">
+ <enum name="GL_VARIANT_ARRAY_EXT"/>
+ </group>
+
+ <group name="PixelTransformTargetEXT">
+ <enum name="GL_PIXEL_TRANSFORM_2D_EXT"/>
+ </group>
+
+ <group name="PixelTransformPNameEXT">
+ <enum name="GL_PIXEL_MAG_FILTER_EXT"/>
+ <enum name="GL_PIXEL_MIN_FILTER_EXT"/>
+ <enum name="GL_PIXEL_CUBIC_WEIGHT_EXT"/>
+ </group>
+
+ <group name="VertexWeightPointerTypeEXT">
+ <enum name="GL_FLOAT_EXT"/>
+ </group>
+
+ <group name="VertexShaderWriteMaskEXT">
+ <enum name="GL_TRUE_EXT"/>
+ <enum name="GL_FALSE_EXT"/>
+ </group>
+
+ <group name="CombinerComponentUsageNV">
+ <enum name="GL_RGB_NV"/>
+ <enum name="GL_ALPHA_NV"/>
+ <enum name="GL_BLUE_NV"/>
+ </group>
+
+ <group name="TangentPointerTypeEXT">
+ <enum name="GL_BYTE_EXT"/>
+ <enum name="GL_SHORT_EXT"/>
+ <enum name="GL_FLOAT_EXT"/>
+ <enum name="GL_DOUBLE_EXT"/>
+ </group>
+
+ <group name="BinormalPointerTypeEXT">
+ <enum name="GL_BYTE_EXT"/>
+ <enum name="GL_SHORT_EXT"/>
+ <enum name="GL_FLOAT_EXT"/>
+ <enum name="GL_DOUBLE_EXT"/>
+ </group>
+
<group name="TextureNormalModeEXT">
<enum name="GL_PERTURB_EXT"/>
</group>
@@ -2392,6 +2596,20 @@
<enum name="GL_DEPTH24_STENCIL8_OES"/>
<enum name="GL_DEPTH32F_STENCIL8"/>
<enum name="GL_DEPTH32F_STENCIL8_NV"/>
+ <!-- Base internal format: GL_STENCIL_INDEX -->
+ <enum name="GL_STENCIL_INDEX"/>
+ <enum name="GL_STENCIL_INDEX_OES"/>
+ <enum name="GL_STENCIL_INDEX1"/>
+ <enum name="GL_STENCIL_INDEX1_OES"/>
+ <enum name="GL_STENCIL_INDEX1_EXT"/>
+ <enum name="GL_STENCIL_INDEX4"/>
+ <enum name="GL_STENCIL_INDEX4_OES"/>
+ <enum name="GL_STENCIL_INDEX4_EXT"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ <enum name="GL_STENCIL_INDEX8_OES"/>
+ <enum name="GL_STENCIL_INDEX8_EXT"/>
+ <enum name="GL_STENCIL_INDEX16"/>
+ <enum name="GL_STENCIL_INDEX16_EXT"/>
<!-- Compressed base internal formats -->
<enum name="GL_COMPRESSED_RED"/>
<enum name="GL_COMPRESSED_RG"/>
@@ -2427,6 +2645,83 @@
<enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"/>
<enum name="GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"/>
<enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"/>
+ <!-- Compressed ASTC internal formats -->
+ <enum name="GL_COMPRESSED_RGBA_ASTC_3x3x3_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x3x3_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4x3_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4x4_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x4"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x4x4_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5x4_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5x5_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x5"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x5x5_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6x5_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6x6_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x5"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x6"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x8"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x10"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x5"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x6"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x8"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x10"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x12"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
</group>
<group name="PixelMap">
@@ -33441,6 +33736,18 @@
<proto>void <name>glSignalVkFenceNV</name></proto>
<param><ptype>GLuint64</ptype> <name>vkFence</name></param>
</command>
+ <command>
+ <proto>void <name>glFramebufferParameteriMESA</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferParameterivMESA</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachmentParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
</commands>
@@ -47114,6 +47421,8 @@
<extension name="GL_MESA_framebuffer_flip_y" supported="gl|glcore|gles2">
<require>
<enum name="GL_FRAMEBUFFER_FLIP_Y_MESA"/>
+ <command name="glFramebufferParameteriMESA"/>
+ <command name="glGetFramebufferParameterivMESA"/>
</require>
</extension>
<extension name="GL_MESA_pack_invert" supported="gl">
diff --git a/xml/glx.xml b/xml/glx.xml
index 0ce9cba..d9e504b 100644
--- a/xml/glx.xml
+++ b/xml/glx.xml
@@ -387,6 +387,11 @@
</enums>
<enums namespace="GLX" start="0x20A0" end="0x219F" vendor="NV" comment="Shared with WGL">
+ <enum value="0x20AA" name="GLX_CONTEXT_MULTIGPU_ATTRIB_NV"/>
+ <enum value="0x20AB" name="GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV"/>
+ <enum value="0x20AC" name="GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV"/>
+ <enum value="0x20AD" name="GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV"/>
+ <enum value="0x20AE" name="GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV"/>
<enum value="0x20B0" name="GLX_FLOAT_COMPONENTS_NV"/>
<enum value="0x20B1" name="GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT"/>
<enum value="0x20B2" name="GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB"/>
@@ -2198,5 +2203,14 @@
<command name="glXGetTransparentIndexSUN"/>
</require>
</extension>
+ <extension name="GLX_NV_multigpu_context" supported="glx">
+ <require>
+ <enum name="GLX_CONTEXT_MULTIGPU_ATTRIB_NV"/>
+ <enum name="GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV"/>
+ <enum name="GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV"/>
+ <enum name="GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV"/>
+ <enum name="GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV"/>
+ </require>
+ </extension>
</extensions>
</registry>