Merge pull request #244 from dgkoch/dgkoch_svla2
Updates to ARB_shader_viewport_layer_array
diff --git a/extensions/ARB/ARB_gl_spirv.txt b/extensions/ARB/ARB_gl_spirv.txt
index 56c3c0a..9466e65 100644
--- a/extensions/ARB/ARB_gl_spirv.txt
+++ b/extensions/ARB/ARB_gl_spirv.txt
@@ -12,6 +12,7 @@
Daniel Koch, NVIDIA
Christophe Riccio, Unity
Graham Sellers, AMD
+ Alejandro Piñeiro, Igalia
Contact Point for Bug Reports
@@ -29,8 +30,8 @@
Version
- Last Modified Date: January 9, 2019
- Revision: 42
+ Last Modified Date: February 15, 2019
+ Revision: 44
Number
@@ -361,6 +362,11 @@
atomicCounterDecrement -> OpAtomicIDecrement (with post decrement)
atomicCounter -> OpAtomicLoad
+ Mapping of uniform initializers
+
+ Using the OpVariable initializer logic, but only from a constant
+ instruction (not a global one).
+
Mapping of other instructions
% -> OpUMod/OpSMod
@@ -382,6 +388,7 @@
version 4.5.)
+ *AtomicCounter* Storage Class can use the *Offset* decoration
+ OriginLowerLeft
+ + Uniforms support constant initializers.
Corresponding features that GLSL keeps, despite GL_KHR_vulkan_glsl removal:
. default uniforms (those not inside a uniform block)
@@ -2112,10 +2119,51 @@
ARB_compute_variable_group_size
- need new layout qualifiers and builtin variables
+28. Should a SPIR-V binary linked through this extension work with
+ ARB_get_program_binary? Do we need to define what would happen
+ with specialization constants?
+
+ RESOLVED. Yes it should work seamlessly, and no, it shouldn't be
+ required to add more details on how to store specialization
+ constants. It is expected that GetProgramBinary should operate
+ irrespective of how the program was created.
+
+ (from GL 4.6 spec section 7.5, Program Binaries):
+
+ GetProgramBinary returns a binary representation of the
+ program object's compiled and linked executable source,
+ henceforth referred to as its program binary.
+
+ There are two ways you can end up with a linked executable.
+
+ GLSL sources:
+ ShaderSource() -> CompileShader() -> AttachShader() -> LinkProgram()
+ SPIR-V binaries:
+ ShaderBinary() -> SpecializeShader() -> AttachShader() -> LinkProgram()
+
+ Exactly what is stored in a program binary is not defined by the
+ GL spec.
+
+ If the driver is storing the final compiled machine assembly for
+ the program in the program binary, it clearly shouldn't matter
+ which path it takes to get to the LinkProgram step.
+
+ If instead the driver is storing some higher level representation
+ of the shaders (say the original sources, or some IR) then it's up
+ to the implementation to store whatever it needs to reconstitute
+ the linked binary. If the given implementation happened to choose
+ to store the SPIR-V code then it would also need to store any
+ relevant specialization information with it as well.
+
+
Revision History
Rev. Date Author Changes
---- ----------- ------------ ---------------------------------
+ 44 15-Feb-2019 apinheiro Added issue 28, about interaction with
+ ARB_get_program_binary (internal API issue 100)
+ 43 15-Feb-2019 apinheiro Add uniform initializers reference and
+ mapping (internal API issue 99)
42 9-Jan-2019 JohnK Explicitly give rules for SPIR-V
uniform offsets (internal API issue
92)
diff --git a/extensions/ARB/ARB_texture_filter_anisotropic.txt b/extensions/ARB/ARB_texture_filter_anisotropic.txt
index b322e12..c0a9853 100644
--- a/extensions/ARB/ARB_texture_filter_anisotropic.txt
+++ b/extensions/ARB/ARB_texture_filter_anisotropic.txt
@@ -23,8 +23,8 @@
Version
- Last Modified Date: June 2, 2017
- Revision: 5
+ Last Modified Date: February 26, 2019
+ Revision: 6
Number
@@ -274,11 +274,13 @@
filtering performance or quality.
4) Should anything particular be said about anisotropic 3D texture
- filtering?
+ and cube texture filtering?
- Not sure. Does the implementation example shown in the spec for
- 2D anisotropic texture filtering readily extend to 3D anisotropic
- texture filtering?
+ RESOLUTION: NO. It was decided by the OpenGL working group to leave
+ anisotropic filtering for 3D or cube textures as undefined. Anisotropic
+ filtering is only well-defined for 2D and 2D array textures. For
+ defined results with 3D and cube textures isotropic filtering should
+ be used by setting the anisotropy level to 1.0.
5) Should the maximum degree of anisotropy be a sampler parameter?
@@ -289,6 +291,7 @@
Rev. Date Author Changes
---- ---------- --------- -----------------------------------------------
+ 6 2019-02-26 pdaniell Update issue 4 question and resolution.
5 2017-06-02 Jon Leech Include anisotropy state in sampler objects
(opengl/API/issues/15).
4 2017-05-29 dgkoch Minor typography/gramatical fixes from OpenGL 4.6.
diff --git a/extensions/NV/NV_scissor_exclusive.txt b/extensions/NV/NV_scissor_exclusive.txt
index d8cf838..3a1199f 100644
--- a/extensions/NV/NV_scissor_exclusive.txt
+++ b/extensions/NV/NV_scissor_exclusive.txt
@@ -13,6 +13,7 @@
Contributors
Mark Kilgard, NVIDIA
+ Pyarelal Knowles, NVIDIA
Status
@@ -20,19 +21,20 @@
Version
- Last Modified: September 15, 2018
- Revision: 1
+ Last Modified: February 6, 2019
+ Revision: 2
Number
OpenGL Extension #529
+ OpenGL ES Extension #311
Dependencies
This extension is written against the OpenGL 4.5 Specification
(Compatibility Profile), dated October 24, 2016.
- OpenGL 4.5 is required.
+ OpenGL 4.5 or OpenGL ES 3.2 is required.
This extension is written against the OpenGL Shading Language
Specification, version 4.50, dated April 14, 2016.
@@ -41,6 +43,9 @@
EXT_transform_feedback, NV_transform_feedback, and
EXT_direct_state_access.
+ If implemented in OpenGL ES, at least one of NV_viewport_array or
+ OES_viewport_array is required.
+
Overview
In unextended OpenGL, applications can enable a per-viewport scissor test
@@ -169,6 +174,24 @@
Ignore references to GetFloatIndexedvEXT and GetDoubleIndexedvEXT if
EXT_direct_state_access is not supported.
+Interactions with NV_viewport_array or OES_viewport_array
+
+ If NV_viewport_array is supported, references to MAX_VIEWPORTS and
+ GetFloati_v apply to MAX_VIEWPORTS_NV and GetFloati_vNV respecively.
+
+ If OES_viewport_array is supported, references to MAX_VIEWPORTS and
+ GetFloati_v apply to MAX_VIEWPORTS_OES and GetFloati_vOES respectively.
+
+Interactions with OpenGL ES 3.2
+
+ If implemented in OpenGL ES, remove all references to GetDoublev,
+ GetDoublei_v, EnableIndexedEXT, DisableIndexedEXT, IsEnabledIndexedEXT,
+ GetBooleanIndexedvEXT, GetIntegerIndexedvEXT, GetFloatIndexedvEXT and
+ GetDoubleIndexedv.
+
+ If implemented in OpenGL ES, remove all references to MAX_VIEWPORTS and
+ GetFloati_v.
+
Additions to the AGL/GLX/WGL Specifications
None
@@ -230,5 +253,8 @@
Revision History
+ Revision 2 (pknowles)
+ - Add ES interactions.
+
Revision 1 (pbrown)
- Internal revisions.
diff --git a/extensions/esext.php b/extensions/esext.php
index b9056e8..ec22283 100644
--- a/extensions/esext.php
+++ b/extensions/esext.php
@@ -643,4 +643,6 @@
</li>
<li value=309><a href="extensions/EXT/EXT_depth_clamp.txt">GL_EXT_depth_clamp</a>
</li>
+<li value=311><a href="extensions/NV/NV_scissor_exclusive.txt">GL_NV_scissor_exclusive</a>
+</li>
</ol>
diff --git a/extensions/registry.py b/extensions/registry.py
index c8f9d26..dfadca9 100644
--- a/extensions/registry.py
+++ b/extensions/registry.py
@@ -3616,6 +3616,7 @@
},
'GL_NV_scissor_exclusive' : {
'number' : 529,
+ 'esnumber' : 311,
'flags' : { 'public' },
'supporters' : { 'NVIDIA' },
'url' : 'extensions/NV/NV_scissor_exclusive.txt',
diff --git a/xml/genheaders.py b/xml/genheaders.py
index 269363a..977dac8 100755
--- a/xml/genheaders.py
+++ b/xml/genheaders.py
@@ -37,40 +37,6 @@
diagFilename = 'diag.txt'
regFilename = 'gl.xml'
-if __name__ == '__main__':
- i = 1
- while (i < len(sys.argv)):
- arg = sys.argv[i]
- i = i + 1
- if (arg == '-debug'):
- write('Enabling debug (-debug)', file=sys.stderr)
- debug = True
- elif (arg == '-dump'):
- write('Enabling dump (-dump)', file=sys.stderr)
- dump = True
- elif (arg == '-noprotect'):
- write('Disabling inclusion protection in output headers', file=sys.stderr)
- protect = False
- elif (arg == '-profile'):
- write('Enabling profiling (-profile)', file=sys.stderr)
- profile = True
- elif (arg == '-registry'):
- regFilename = sys.argv[i]
- i = i+1
- write('Using registry ', regFilename, file=sys.stderr)
- elif (arg == '-time'):
- write('Enabling timing (-time)', file=sys.stderr)
- timeit = True
- elif (arg == '-validate'):
- write('Enabling group validation (-validate)', file=sys.stderr)
- validate = True
- elif (arg[0:1] == '-'):
- write('Unrecognized argument:', arg, file=sys.stderr)
- exit(1)
- else:
- target = arg
- write('Using target', target, file=sys.stderr)
-
# Simple timer functions
startTime = None
def startTimer():
@@ -83,26 +49,6 @@
write(msg, endTime - startTime)
startTime = None
-# Load & parse registry
-reg = Registry()
-
-startTimer()
-tree = etree.parse(regFilename)
-endTimer('Time to make ElementTree =')
-
-startTimer()
-reg.loadElementTree(tree)
-endTimer('Time to parse ElementTree =')
-
-if (validate):
- reg.validateGroups()
-
-if (dump):
- write('***************************************')
- write('Performing Registry dump to regdump.txt')
- write('***************************************')
- reg.dumpReg(filehandle = open('regdump.txt','w'))
-
# Turn a list of strings into a regexp string matching exactly those strings
def makeREstring(list):
return '^(' + '|'.join(list) + ')$'
@@ -566,13 +512,6 @@
None
]
-# create error/warning & diagnostic files
-if (errFilename):
- errWarn = open(errFilename,'w')
-else:
- errWarn = sys.stderr
-diag = open(diagFilename, 'w')
-
def genHeaders():
# Loop over targets, building each
generated = 0
@@ -595,12 +534,74 @@
if (target and generated == 0):
write('Failed to generate target:', target)
-if (debug):
- pdb.run('genHeaders()')
-elif (profile):
- import cProfile, pstats
- cProfile.run('genHeaders()', 'profile.txt')
- p = pstats.Stats('profile.txt')
- p.strip_dirs().sort_stats('time').print_stats(50)
-else:
- genHeaders()
+
+if __name__ == '__main__':
+ i = 1
+ while (i < len(sys.argv)):
+ arg = sys.argv[i]
+ i = i + 1
+ if (arg == '-debug'):
+ write('Enabling debug (-debug)', file=sys.stderr)
+ debug = True
+ elif (arg == '-dump'):
+ write('Enabling dump (-dump)', file=sys.stderr)
+ dump = True
+ elif (arg == '-noprotect'):
+ write('Disabling inclusion protection in output headers', file=sys.stderr)
+ protect = False
+ elif (arg == '-profile'):
+ write('Enabling profiling (-profile)', file=sys.stderr)
+ profile = True
+ elif (arg == '-registry'):
+ regFilename = sys.argv[i]
+ i = i+1
+ write('Using registry ', regFilename, file=sys.stderr)
+ elif (arg == '-time'):
+ write('Enabling timing (-time)', file=sys.stderr)
+ timeit = True
+ elif (arg == '-validate'):
+ write('Enabling group validation (-validate)', file=sys.stderr)
+ validate = True
+ elif (arg[0:1] == '-'):
+ write('Unrecognized argument:', arg, file=sys.stderr)
+ exit(1)
+ else:
+ target = arg
+ write('Using target', target, file=sys.stderr)
+
+ # Load & parse registry
+ reg = Registry()
+
+ startTimer()
+ tree = etree.parse(regFilename)
+ endTimer('Time to make ElementTree =')
+
+ startTimer()
+ reg.loadElementTree(tree)
+ endTimer('Time to parse ElementTree =')
+
+ if (validate):
+ reg.validateGroups()
+
+ if (dump):
+ write('***************************************')
+ write('Performing Registry dump to regdump.txt')
+ write('***************************************')
+ reg.dumpReg(filehandle = open('regdump.txt','w'))
+
+ # create error/warning & diagnostic files
+ if (errFilename):
+ errWarn = open(errFilename,'w')
+ else:
+ errWarn = sys.stderr
+ diag = open(diagFilename, 'w')
+
+ if (debug):
+ pdb.run('genHeaders()')
+ elif (profile):
+ import cProfile, pstats
+ cProfile.run('genHeaders()', 'profile.txt')
+ p = pstats.Stats('profile.txt')
+ p.strip_dirs().sort_stats('time').print_stats(50)
+ else:
+ genHeaders()
diff --git a/xml/gl.xml b/xml/gl.xml
index b68f7a2..4037196 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -220,23 +220,22 @@
<enum name="GL_READ_WRITE"/>
</group>
- <group name="BufferAccessMask">
+ <group name="BufferStorageMask">
+ <enum name="GL_CLIENT_STORAGE_BIT"/>
+ <enum name="GL_CLIENT_STORAGE_BIT_EXT"/>
+ <enum name="GL_DYNAMIC_STORAGE_BIT"/>
+ <enum name="GL_DYNAMIC_STORAGE_BIT_EXT"/>
<enum name="GL_MAP_COHERENT_BIT"/>
<enum name="GL_MAP_COHERENT_BIT_EXT"/>
- <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
- <enum name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT"/>
- <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
- <enum name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT"/>
- <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
- <enum name="GL_MAP_INVALIDATE_RANGE_BIT_EXT"/>
<enum name="GL_MAP_PERSISTENT_BIT"/>
<enum name="GL_MAP_PERSISTENT_BIT_EXT"/>
<enum name="GL_MAP_READ_BIT"/>
<enum name="GL_MAP_READ_BIT_EXT"/>
- <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
- <enum name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
<enum name="GL_MAP_WRITE_BIT"/>
<enum name="GL_MAP_WRITE_BIT_EXT"/>
+ <enum name="GL_SPARSE_STORAGE_BIT_ARB"/>
+ <enum name="GL_LGPU_SEPARATE_STORAGE_BIT_NVX"/>
+ <enum name="GL_PER_GPU_STORAGE_BIT_NV"/>
</group>
<group name="ClearBufferMask">
@@ -1546,11 +1545,7 @@
<enum name="GL_XOR"/>
</group>
- <group name="MapBufferUsageMask">
- <enum name="GL_CLIENT_STORAGE_BIT"/>
- <enum name="GL_CLIENT_STORAGE_BIT_EXT"/>
- <enum name="GL_DYNAMIC_STORAGE_BIT"/>
- <enum name="GL_DYNAMIC_STORAGE_BIT_EXT"/>
+ <group name="MapBufferAccessMask">
<enum name="GL_MAP_COHERENT_BIT"/>
<enum name="GL_MAP_COHERENT_BIT_EXT"/>
<enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
@@ -1567,9 +1562,6 @@
<enum name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
<enum name="GL_MAP_WRITE_BIT"/>
<enum name="GL_MAP_WRITE_BIT_EXT"/>
- <enum name="GL_SPARSE_STORAGE_BIT_ARB"/>
- <enum name="GL_LGPU_SEPARATE_STORAGE_BIT_NVX"/>
- <enum name="GL_PER_GPU_STORAGE_BIT_NV"/>
</group>
<group name="MapTarget">
@@ -3552,8 +3544,17 @@
<enum value="0xFFFFFFFF" name="GL_ALL_ATTRIB_BITS" comment="Guaranteed to mark all attribute groups at once"/>
</enums>
- <enums namespace="GL" group="BufferAccessMask" type="bitmask" comment="GL_MAP_{COHERENT,FLUSH_EXPLICIT,INVALIDATE_BUFFER,INVALIDATE_RANGE,PERSISTENT,READ,UNSYNCHRONIZED,WRITE}_{BIT,BIT_EXT} also lie in this namespace">
- <!-- Also used: 0x000000ff for bits reused from MapBufferUsageMask below -->
+ <enums namespace="GL" group="BufferStorageMask" type="bitmask" comment="GL_MAP_{COHERENT,PERSISTENT,READ,WRITE}_{BIT,BIT_EXT} also lie in this namespace">
+ <enum value="0x0100" name="GL_DYNAMIC_STORAGE_BIT"/>
+ <enum value="0x0100" name="GL_DYNAMIC_STORAGE_BIT_EXT"/>
+ <enum value="0x0200" name="GL_CLIENT_STORAGE_BIT"/>
+ <enum value="0x0200" name="GL_CLIENT_STORAGE_BIT_EXT"/>
+ <enum value="0x0400" name="GL_SPARSE_STORAGE_BIT_ARB"/>
+ <enum value="0x0800" name="GL_LGPU_SEPARATE_STORAGE_BIT_NVX"/>
+ <enum value="0x0800" name="GL_PER_GPU_STORAGE_BIT_NV"/>
+ <unused start="0x1000" end="0x1000" comment="Reserved for NVIDIA"/>
+ <enum value="0x2000" name="GL_EXTERNAL_STORAGE_BIT_NVX"/>
+ <!-- Also used: 0x000000ff for bits reused from MapBufferAccessMask below -->
</enums>
<enums namespace="GL" group="ClearBufferMask" type="bitmask" comment="GL_{DEPTH,ACCUM,STENCIL,COLOR}_BUFFER_BIT also lie in this namespace">
@@ -3583,7 +3584,7 @@
<enum value="0x00000002" name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/>
</enums>
- <enums namespace="GL" group="MapBufferUsageMask" type="bitmask">
+ <enums namespace="GL" group="MapBufferAccessMask" type="bitmask">
<enum value="0x0001" name="GL_MAP_READ_BIT"/>
<enum value="0x0001" name="GL_MAP_READ_BIT_EXT"/>
<enum value="0x0002" name="GL_MAP_WRITE_BIT"/>
@@ -3600,15 +3601,6 @@
<enum value="0x0040" name="GL_MAP_PERSISTENT_BIT_EXT"/>
<enum value="0x0080" name="GL_MAP_COHERENT_BIT"/>
<enum value="0x0080" name="GL_MAP_COHERENT_BIT_EXT"/>
- <enum value="0x0100" name="GL_DYNAMIC_STORAGE_BIT"/>
- <enum value="0x0100" name="GL_DYNAMIC_STORAGE_BIT_EXT"/>
- <enum value="0x0200" name="GL_CLIENT_STORAGE_BIT"/>
- <enum value="0x0200" name="GL_CLIENT_STORAGE_BIT_EXT"/>
- <enum value="0x0400" name="GL_SPARSE_STORAGE_BIT_ARB"/>
- <enum value="0x0800" name="GL_LGPU_SEPARATE_STORAGE_BIT_NVX"/>
- <enum value="0x0800" name="GL_PER_GPU_STORAGE_BIT_NV"/>
- <unused start="0x1000" end="0x1000" comment="Reserved for NVIDIA"/>
- <enum value="0x2000" name="GL_EXTERNAL_STORAGE_BIT_NVX"/>
</enums>
<enums namespace="GL" group="MemoryBarrierMask" type="bitmask">
@@ -10301,7 +10293,8 @@
<enums namespace="GL" start="0x96A0" end="0x96AF" vendor="Qualcomm" comment="contact Maurice Ribble">
<unused start="0x96A0" end="0x96A1" vendor="Qualcomm"/>
<enum value="0x96A2" name="GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM"/>
- <unused start="0x96A3" end="0x96AF" vendor="Qualcomm"/>
+ <enum value="0x96A3" name="GL_VALIDATE_SHADER_BINARY_QCOM"/>
+ <unused start="0x96A4" end="0x96AF" vendor="Qualcomm"/>
</enums>
<!-- Enums reservable for future use. To reserve a new range, allocate one
@@ -11432,14 +11425,14 @@
<param group="BufferStorageTarget"><ptype>GLenum</ptype> <name>target</name></param>
<param><ptype>GLsizeiptr</ptype> <name>size</name></param>
<param len="size">const void *<name>data</name></param>
- <param group="MapBufferUsageMask"><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param group="BufferStorageMask"><ptype>GLbitfield</ptype> <name>flags</name></param>
</command>
<command>
<proto>void <name>glBufferStorageEXT</name></proto>
<param group="BufferStorageTarget"><ptype>GLenum</ptype> <name>target</name></param>
<param><ptype>GLsizeiptr</ptype> <name>size</name></param>
<param len="size">const void *<name>data</name></param>
- <param group="MapBufferUsageMask"><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param group="BufferStorageMask"><ptype>GLbitfield</ptype> <name>flags</name></param>
<alias name="glBufferStorage"/>
</command>
<command>
@@ -11448,7 +11441,7 @@
<param><ptype>GLintptr</ptype> <name>offset</name></param>
<param><ptype>GLsizeiptr</ptype> <name>size</name></param>
<param><ptype>GLeglClientBufferEXT</ptype> <name>clientBuffer</name></param>
- <param group="MapBufferUsageMask"><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param group="BufferStorageMask"><ptype>GLbitfield</ptype> <name>flags</name></param>
</command>
<command>
<proto>void <name>glBufferStorageMemEXT</name></proto>
@@ -14500,7 +14493,7 @@
<proto>void <name>glDrawElementsInstancedBaseVertexBaseInstance</name></proto>
<param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
<param><ptype>GLsizei</ptype> <name>count</name></param>
- <param group="PrimitiveType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
<param len="count">const void *<name>indices</name></param>
<param><ptype>GLsizei</ptype> <name>instancecount</name></param>
<param><ptype>GLint</ptype> <name>basevertex</name></param>
@@ -14510,7 +14503,7 @@
<proto>void <name>glDrawElementsInstancedBaseVertexBaseInstanceEXT</name></proto>
<param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
<param><ptype>GLsizei</ptype> <name>count</name></param>
- <param group="PrimitiveType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
<param len="count">const void *<name>indices</name></param>
<param><ptype>GLsizei</ptype> <name>instancecount</name></param>
<param><ptype>GLint</ptype> <name>basevertex</name></param>
@@ -20574,7 +20567,7 @@
<param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
<param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
<param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
- <param group="BufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
+ <param group="MapBufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
<glx type="single" opcode="205"/>
</command>
<command>
@@ -20582,7 +20575,7 @@
<param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
<param><ptype>GLintptr</ptype> <name>offset</name></param>
<param><ptype>GLsizeiptr</ptype> <name>length</name></param>
- <param group="BufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
+ <param group="MapBufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
<alias name="glMapBufferRange"/>
</command>
<command>
@@ -20660,14 +20653,14 @@
<param><ptype>GLuint</ptype> <name>buffer</name></param>
<param><ptype>GLintptr</ptype> <name>offset</name></param>
<param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
- <param group="BufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
+ <param group="MapBufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
</command>
<command>
<proto>void *<name>glMapNamedBufferRangeEXT</name></proto>
<param><ptype>GLuint</ptype> <name>buffer</name></param>
<param><ptype>GLintptr</ptype> <name>offset</name></param>
<param><ptype>GLsizeiptr</ptype> <name>length</name></param>
- <param group="BufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
+ <param group="MapBufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
</command>
<command>
<proto>void *<name>glMapObjectBufferATI</name></proto>
@@ -22311,7 +22304,7 @@
<param><ptype>GLuint</ptype> <name>buffer</name></param>
<param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
<param len="size">const void *<name>data</name></param>
- <param group="MapBufferUsageMask"><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param group="BufferStorageMask"><ptype>GLbitfield</ptype> <name>flags</name></param>
</command>
<command>
<proto>void <name>glNamedBufferStorageExternalEXT</name></proto>
@@ -22319,14 +22312,14 @@
<param><ptype>GLintptr</ptype> <name>offset</name></param>
<param><ptype>GLsizeiptr</ptype> <name>size</name></param>
<param><ptype>GLeglClientBufferEXT</ptype> <name>clientBuffer</name></param>
- <param group="MapBufferUsageMask"><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param group="BufferStorageMask"><ptype>GLbitfield</ptype> <name>flags</name></param>
</command>
<command>
<proto>void <name>glNamedBufferStorageEXT</name></proto>
<param><ptype>GLuint</ptype> <name>buffer</name></param>
<param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
<param len="size">const void *<name>data</name></param>
- <param group="MapBufferUsageMask"><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param group="BufferStorageMask"><ptype>GLbitfield</ptype> <name>flags</name></param>
<alias name="glNamedBufferStorage"/>
</command>
<command>
@@ -41625,7 +41618,7 @@
<require comment="Supported only if GL_EXT_direct_state_access is supported">
<command name="glNamedBufferPageCommitmentEXT"/>
</require>
- <require comment="Supported only if GL_ARb_direct_state_access or GL 4.5 is supported">
+ <require comment="Supported only if GL_ARB_direct_state_access or GL 4.5 is supported">
<command name="glNamedBufferPageCommitmentARB"/>
</require>
</extension>
@@ -47697,7 +47690,7 @@
</require>
</extension>
<extension name="GL_NV_sample_mask_override_coverage" supported="gl|glcore|gles2"/>
- <extension name="GL_NV_scissor_exclusive" supported="gl|glcore">
+ <extension name="GL_NV_scissor_exclusive" supported="gl|glcore|gles2">
<require>
<enum name="GL_SCISSOR_TEST_EXCLUSIVE_NV"/>
<enum name="GL_SCISSOR_BOX_EXCLUSIVE_NV"/>