mesa: enable ARB_direct_state_access in OpenGL 4.5 compat profile

Its unlikely anyone will add proper ARB_direct_state_access compat
support before we branch 18.2. Enabling the extension in 4.5 at
least allows users to make use of MESA_GL_VERSION_OVERRIDE=4.5COMPAT
for games like No Mans Sky.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Timothy Arceri 2018-07-04 11:06:41 +10:00
parent 39063334d3
commit 0cb6537dee
3 changed files with 197 additions and 197 deletions

View file

@ -152,103 +152,103 @@ functions = {
# OpenGL 4.5 / GL_ARB_direct_state_access. Mesa can expose the extension
# with core profile.
"CreateTransformFeedbacks": exec_info(core=31),
"TransformFeedbackBufferBase": exec_info(core=31),
"TransformFeedbackBufferRange": exec_info(core=31),
"GetTransformFeedbackiv": exec_info(core=31),
"GetTransformFeedbacki_v": exec_info(core=31),
"GetTransformFeedbacki64_v": exec_info(core=31),
"CreateBuffers": exec_info(core=31),
"NamedBufferStorage": exec_info(core=31),
"NamedBufferData": exec_info(core=31),
"NamedBufferSubData": exec_info(core=31),
"CopyNamedBufferSubData": exec_info(core=31),
"ClearNamedBufferData": exec_info(core=31),
"ClearNamedBufferSubData": exec_info(core=31),
"MapNamedBuffer": exec_info(core=31),
"MapNamedBufferRange": exec_info(core=31),
"UnmapNamedBuffer": exec_info(core=31),
"FlushMappedNamedBufferRange": exec_info(core=31),
"GetNamedBufferParameteriv": exec_info(core=31),
"GetNamedBufferParameteri64v": exec_info(core=31),
"GetNamedBufferPointerv": exec_info(core=31),
"GetNamedBufferSubData": exec_info(core=31),
"CreateFramebuffers": exec_info(core=31),
"NamedFramebufferRenderbuffer": exec_info(core=31),
"NamedFramebufferParameteri": exec_info(core=31),
"NamedFramebufferTexture": exec_info(core=31),
"NamedFramebufferTextureLayer": exec_info(core=31),
"NamedFramebufferDrawBuffer": exec_info(core=31),
"NamedFramebufferDrawBuffers": exec_info(core=31),
"NamedFramebufferReadBuffer": exec_info(core=31),
"InvalidateNamedFramebufferData": exec_info(core=31),
"InvalidateNamedFramebufferSubData": exec_info(core=31),
"ClearNamedFramebufferiv": exec_info(core=31),
"ClearNamedFramebufferuiv": exec_info(core=31),
"ClearNamedFramebufferfv": exec_info(core=31),
"ClearNamedFramebufferfi": exec_info(core=31),
"BlitNamedFramebuffer": exec_info(core=31),
"CheckNamedFramebufferStatus": exec_info(core=31),
"GetNamedFramebufferParameteriv": exec_info(core=31),
"GetNamedFramebufferAttachmentParameteriv": exec_info(core=31),
"CreateRenderbuffers": exec_info(core=31),
"NamedRenderbufferStorage": exec_info(core=31),
"NamedRenderbufferStorageMultisample": exec_info(core=31),
"GetNamedRenderbufferParameteriv": exec_info(core=31),
"CreateTextures": exec_info(core=31),
"TextureBuffer": exec_info(core=31),
"TextureBufferRange": exec_info(core=31),
"TextureStorage1D": exec_info(core=31),
"TextureStorage2D": exec_info(core=31),
"TextureStorage3D": exec_info(core=31),
"TextureStorage2DMultisample": exec_info(core=31),
"TextureStorage3DMultisample": exec_info(core=31),
"TextureSubImage1D": exec_info(core=31),
"TextureSubImage2D": exec_info(core=31),
"TextureSubImage3D": exec_info(core=31),
"CompressedTextureSubImage1D": exec_info(core=31),
"CompressedTextureSubImage2D": exec_info(core=31),
"CompressedTextureSubImage3D": exec_info(core=31),
"CopyTextureSubImage1D": exec_info(core=31),
"CopyTextureSubImage2D": exec_info(core=31),
"CopyTextureSubImage3D": exec_info(core=31),
"TextureParameterf": exec_info(core=31),
"TextureParameterfv": exec_info(core=31),
"TextureParameteri": exec_info(core=31),
"TextureParameterIiv": exec_info(core=31),
"TextureParameterIuiv": exec_info(core=31),
"TextureParameteriv": exec_info(core=31),
"GenerateTextureMipmap": exec_info(core=31),
"BindTextureUnit": exec_info(core=31),
"GetTextureImage": exec_info(core=31),
"GetCompressedTextureImage": exec_info(core=31),
"GetTextureLevelParameterfv": exec_info(core=31),
"GetTextureLevelParameteriv": exec_info(core=31),
"GetTextureParameterfv": exec_info(core=31),
"GetTextureParameterIiv": exec_info(core=31),
"GetTextureParameterIuiv": exec_info(core=31),
"GetTextureParameteriv": exec_info(core=31),
"CreateVertexArrays": exec_info(core=31),
"DisableVertexArrayAttrib": exec_info(core=31),
"EnableVertexArrayAttrib": exec_info(core=31),
"VertexArrayElementBuffer": exec_info(core=31),
"VertexArrayVertexBuffer": exec_info(core=31),
"VertexArrayVertexBuffers": exec_info(core=31),
"VertexArrayAttribFormat": exec_info(core=31),
"VertexArrayAttribIFormat": exec_info(core=31),
"VertexArrayAttribLFormat": exec_info(core=31),
"VertexArrayAttribBinding": exec_info(core=31),
"VertexArrayBindingDivisor": exec_info(core=31),
"GetVertexArrayiv": exec_info(core=31),
"GetVertexArrayIndexediv": exec_info(core=31),
"GetVertexArrayIndexed64iv": exec_info(core=31),
"CreateSamplers": exec_info(core=31),
"CreateProgramPipelines": exec_info(core=31),
"CreateQueries": exec_info(core=31),
"GetQueryBufferObjectiv": exec_info(core=31),
"GetQueryBufferObjectuiv": exec_info(core=31),
"GetQueryBufferObjecti64v": exec_info(core=31),
"GetQueryBufferObjectui64v": exec_info(core=31),
"CreateTransformFeedbacks": exec_info(compatibility=45, core=31),
"TransformFeedbackBufferBase": exec_info(compatibility=45, core=31),
"TransformFeedbackBufferRange": exec_info(compatibility=45, core=31),
"GetTransformFeedbackiv": exec_info(compatibility=45, core=31),
"GetTransformFeedbacki_v": exec_info(compatibility=45, core=31),
"GetTransformFeedbacki64_v": exec_info(compatibility=45, core=31),
"CreateBuffers": exec_info(compatibility=45, core=31),
"NamedBufferStorage": exec_info(compatibility=45, core=31),
"NamedBufferData": exec_info(compatibility=45, core=31),
"NamedBufferSubData": exec_info(compatibility=45, core=31),
"CopyNamedBufferSubData": exec_info(compatibility=45, core=31),
"ClearNamedBufferData": exec_info(compatibility=45, core=31),
"ClearNamedBufferSubData": exec_info(compatibility=45, core=31),
"MapNamedBuffer": exec_info(compatibility=45, core=31),
"MapNamedBufferRange": exec_info(compatibility=45, core=31),
"UnmapNamedBuffer": exec_info(compatibility=45, core=31),
"FlushMappedNamedBufferRange": exec_info(compatibility=45, core=31),
"GetNamedBufferParameteriv": exec_info(compatibility=45, core=31),
"GetNamedBufferParameteri64v": exec_info(compatibility=45, core=31),
"GetNamedBufferPointerv": exec_info(compatibility=45, core=31),
"GetNamedBufferSubData": exec_info(compatibility=45, core=31),
"CreateFramebuffers": exec_info(compatibility=45, core=31),
"NamedFramebufferRenderbuffer": exec_info(compatibility=45, core=31),
"NamedFramebufferParameteri": exec_info(compatibility=45, core=31),
"NamedFramebufferTexture": exec_info(compatibility=45, core=31),
"NamedFramebufferTextureLayer": exec_info(compatibility=45, core=31),
"NamedFramebufferDrawBuffer": exec_info(compatibility=45, core=31),
"NamedFramebufferDrawBuffers": exec_info(compatibility=45, core=31),
"NamedFramebufferReadBuffer": exec_info(compatibility=45, core=31),
"InvalidateNamedFramebufferData": exec_info(compatibility=45, core=31),
"InvalidateNamedFramebufferSubData": exec_info(compatibility=45, core=31),
"ClearNamedFramebufferiv": exec_info(compatibility=45, core=31),
"ClearNamedFramebufferuiv": exec_info(compatibility=45, core=31),
"ClearNamedFramebufferfv": exec_info(compatibility=45, core=31),
"ClearNamedFramebufferfi": exec_info(compatibility=45, core=31),
"BlitNamedFramebuffer": exec_info(compatibility=45, core=31),
"CheckNamedFramebufferStatus": exec_info(compatibility=45, core=31),
"GetNamedFramebufferParameteriv": exec_info(compatibility=45, core=31),
"GetNamedFramebufferAttachmentParameteriv": exec_info(compatibility=45, core=31),
"CreateRenderbuffers": exec_info(compatibility=45, core=31),
"NamedRenderbufferStorage": exec_info(compatibility=45, core=31),
"NamedRenderbufferStorageMultisample": exec_info(compatibility=45, core=31),
"GetNamedRenderbufferParameteriv": exec_info(compatibility=45, core=31),
"CreateTextures": exec_info(compatibility=45, core=31),
"TextureBuffer": exec_info(compatibility=45, core=31),
"TextureBufferRange": exec_info(compatibility=45, core=31),
"TextureStorage1D": exec_info(compatibility=45, core=31),
"TextureStorage2D": exec_info(compatibility=45, core=31),
"TextureStorage3D": exec_info(compatibility=45, core=31),
"TextureStorage2DMultisample": exec_info(compatibility=45, core=31),
"TextureStorage3DMultisample": exec_info(compatibility=45, core=31),
"TextureSubImage1D": exec_info(compatibility=45, core=31),
"TextureSubImage2D": exec_info(compatibility=45, core=31),
"TextureSubImage3D": exec_info(compatibility=45, core=31),
"CompressedTextureSubImage1D": exec_info(compatibility=45, core=31),
"CompressedTextureSubImage2D": exec_info(compatibility=45, core=31),
"CompressedTextureSubImage3D": exec_info(compatibility=45, core=31),
"CopyTextureSubImage1D": exec_info(compatibility=45, core=31),
"CopyTextureSubImage2D": exec_info(compatibility=45, core=31),
"CopyTextureSubImage3D": exec_info(compatibility=45, core=31),
"TextureParameterf": exec_info(compatibility=45, core=31),
"TextureParameterfv": exec_info(compatibility=45, core=31),
"TextureParameteri": exec_info(compatibility=45, core=31),
"TextureParameterIiv": exec_info(compatibility=45, core=31),
"TextureParameterIuiv": exec_info(compatibility=45, core=31),
"TextureParameteriv": exec_info(compatibility=45, core=31),
"GenerateTextureMipmap": exec_info(compatibility=45, core=31),
"BindTextureUnit": exec_info(compatibility=45, core=31),
"GetTextureImage": exec_info(compatibility=45, core=31),
"GetCompressedTextureImage": exec_info(compatibility=45, core=31),
"GetTextureLevelParameterfv": exec_info(compatibility=45, core=31),
"GetTextureLevelParameteriv": exec_info(compatibility=45, core=31),
"GetTextureParameterfv": exec_info(compatibility=45, core=31),
"GetTextureParameterIiv": exec_info(compatibility=45, core=31),
"GetTextureParameterIuiv": exec_info(compatibility=45, core=31),
"GetTextureParameteriv": exec_info(compatibility=45, core=31),
"CreateVertexArrays": exec_info(compatibility=45, core=31),
"DisableVertexArrayAttrib": exec_info(compatibility=45, core=31),
"EnableVertexArrayAttrib": exec_info(compatibility=45, core=31),
"VertexArrayElementBuffer": exec_info(compatibility=45, core=31),
"VertexArrayVertexBuffer": exec_info(compatibility=45, core=31),
"VertexArrayVertexBuffers": exec_info(compatibility=45, core=31),
"VertexArrayAttribFormat": exec_info(compatibility=45, core=31),
"VertexArrayAttribIFormat": exec_info(compatibility=45, core=31),
"VertexArrayAttribLFormat": exec_info(compatibility=45, core=31),
"VertexArrayAttribBinding": exec_info(compatibility=45, core=31),
"VertexArrayBindingDivisor": exec_info(compatibility=45, core=31),
"GetVertexArrayiv": exec_info(compatibility=45, core=31),
"GetVertexArrayIndexediv": exec_info(compatibility=45, core=31),
"GetVertexArrayIndexed64iv": exec_info(compatibility=45, core=31),
"CreateSamplers": exec_info(compatibility=45, core=31),
"CreateProgramPipelines": exec_info(compatibility=45, core=31),
"CreateQueries": exec_info(compatibility=45, core=31),
"GetQueryBufferObjectiv": exec_info(compatibility=45, core=31),
"GetQueryBufferObjectuiv": exec_info(compatibility=45, core=31),
"GetQueryBufferObjecti64v": exec_info(compatibility=45, core=31),
"GetQueryBufferObjectui64v": exec_info(compatibility=45, core=31),
# GL_ARB_gpu_shader_int64 - nominally requires OpenGL 4.0, and Mesa
# only supports 4.0 in core profile.

View file

@ -54,7 +54,7 @@ EXT(ARB_depth_buffer_float , ARB_depth_buffer_float
EXT(ARB_depth_clamp , ARB_depth_clamp , GLL, GLC, x , x , 2003)
EXT(ARB_depth_texture , ARB_depth_texture , GLL, x , x , x , 2001)
EXT(ARB_derivative_control , ARB_derivative_control , GLL, GLC, x , x , 2014)
EXT(ARB_direct_state_access , dummy_true , x , GLC, x , x , 2014)
EXT(ARB_direct_state_access , dummy_true , 45, GLC, x , x , 2014)
EXT(ARB_draw_buffers , dummy_true , GLL, GLC, x , x , 2002)
EXT(ARB_draw_buffers_blend , ARB_draw_buffers_blend , GLL, GLC, x , x , 2009)
EXT(ARB_draw_elements_base_vertex , ARB_draw_elements_base_vertex , GLL, GLC, x , x , 2009)

View file

@ -914,6 +914,105 @@ const struct function common_desktop_functions_possible[] = {
//{ "glGetnUniformuiv", 45, -1 },
{ "glMemoryBarrierByRegion", 45, -1 },
/* GL_ARB_direct_state_access */
{ "glCreateTransformFeedbacks", 45, -1 },
{ "glTransformFeedbackBufferBase", 45, -1 },
{ "glTransformFeedbackBufferRange", 45, -1 },
{ "glGetTransformFeedbackiv", 45, -1 },
{ "glGetTransformFeedbacki_v", 45, -1 },
{ "glGetTransformFeedbacki64_v", 45, -1 },
{ "glCreateBuffers", 45, -1 },
{ "glNamedBufferStorage", 45, -1 },
{ "glNamedBufferData", 45, -1 },
{ "glNamedBufferSubData", 45, -1 },
{ "glCopyNamedBufferSubData", 45, -1 },
{ "glClearNamedBufferData", 45, -1 },
{ "glClearNamedBufferSubData", 45, -1 },
{ "glMapNamedBuffer", 45, -1 },
{ "glMapNamedBufferRange", 45, -1 },
{ "glUnmapNamedBuffer", 45, -1 },
{ "glFlushMappedNamedBufferRange", 45, -1 },
{ "glGetNamedBufferParameteriv", 45, -1 },
{ "glGetNamedBufferParameteri64v", 45, -1 },
{ "glGetNamedBufferPointerv", 45, -1 },
{ "glGetNamedBufferSubData", 45, -1 },
{ "glCreateFramebuffers", 45, -1 },
{ "glNamedFramebufferRenderbuffer", 45, -1 },
{ "glNamedFramebufferParameteri", 45, -1 },
{ "glNamedFramebufferTexture", 45, -1 },
{ "glNamedFramebufferTextureLayer", 45, -1 },
{ "glNamedFramebufferDrawBuffer", 45, -1 },
{ "glNamedFramebufferDrawBuffers", 45, -1 },
{ "glNamedFramebufferReadBuffer", 45, -1 },
{ "glInvalidateNamedFramebufferSubData", 45, -1 },
{ "glInvalidateNamedFramebufferData", 45, -1 },
{ "glClearNamedFramebufferiv", 45, -1 },
{ "glClearNamedFramebufferuiv", 45, -1 },
{ "glClearNamedFramebufferfv", 45, -1 },
{ "glClearNamedFramebufferfi", 45, -1 },
{ "glBlitNamedFramebuffer", 45, -1 },
{ "glCheckNamedFramebufferStatus", 45, -1 },
{ "glGetNamedFramebufferParameteriv", 45, -1 },
{ "glGetNamedFramebufferAttachmentParameteriv", 45, -1 },
{ "glCreateRenderbuffers", 45, -1 },
{ "glNamedRenderbufferStorage", 45, -1 },
{ "glNamedRenderbufferStorageMultisample", 45, -1 },
{ "glGetNamedRenderbufferParameteriv", 45, -1 },
{ "glCreateTextures", 45, -1 },
{ "glTextureStorage1D", 45, -1 },
{ "glTextureStorage2D", 45, -1 },
{ "glTextureStorage3D", 45, -1 },
{ "glTextureSubImage1D", 45, -1 },
{ "glTextureSubImage2D", 45, -1 },
{ "glTextureSubImage3D", 45, -1 },
{ "glBindTextureUnit", 45, -1 },
{ "glTextureParameterf", 45, -1 },
{ "glTextureParameterfv", 45, -1 },
{ "glTextureParameteri", 45, -1 },
{ "glTextureParameterIiv", 45, -1 },
{ "glTextureParameterIuiv", 45, -1 },
{ "glTextureParameteriv", 45, -1 },
{ "glGetTextureLevelParameterfv", 45, -1 },
{ "glGetTextureLevelParameteriv", 45, -1 },
{ "glGetTextureParameterfv", 45, -1 },
{ "glGetTextureParameterIiv", 45, -1 },
{ "glGetTextureParameterIuiv", 45, -1 },
{ "glGetTextureParameteriv", 45, -1 },
{ "glCopyTextureSubImage1D", 45, -1 },
{ "glCopyTextureSubImage2D", 45, -1 },
{ "glCopyTextureSubImage3D", 45, -1 },
{ "glGetTextureImage", 45, -1 },
{ "glGetCompressedTextureImage", 45, -1 },
{ "glCompressedTextureSubImage1D", 45, -1 },
{ "glCompressedTextureSubImage2D", 45, -1 },
{ "glCompressedTextureSubImage3D", 45, -1 },
{ "glGenerateTextureMipmap", 45, -1 },
{ "glTextureStorage2DMultisample", 45, -1 },
{ "glTextureStorage3DMultisample", 45, -1 },
{ "glTextureBuffer", 45, -1 },
{ "glTextureBufferRange", 45, -1 },
{ "glCreateVertexArrays", 45, -1 },
{ "glDisableVertexArrayAttrib", 45, -1 },
{ "glEnableVertexArrayAttrib", 45, -1 },
{ "glVertexArrayElementBuffer", 45, -1 },
{ "glVertexArrayVertexBuffer", 45, -1 },
{ "glVertexArrayVertexBuffers", 45, -1 },
{ "glVertexArrayAttribFormat", 45, -1 },
{ "glVertexArrayAttribIFormat", 45, -1 },
{ "glVertexArrayAttribLFormat", 45, -1 },
{ "glVertexArrayAttribBinding", 45, -1 },
{ "glVertexArrayBindingDivisor", 45, -1 },
{ "glGetVertexArrayiv", 45, -1 },
{ "glGetVertexArrayIndexediv", 45, -1 },
{ "glGetVertexArrayIndexed64iv", 45, -1 },
{ "glCreateSamplers", 45, -1 },
{ "glCreateProgramPipelines", 45, -1 },
{ "glCreateQueries", 45, -1 },
{ "glGetQueryBufferObjectiv", 45, -1 },
{ "glGetQueryBufferObjectuiv", 45, -1 },
{ "glGetQueryBufferObjecti64v", 45, -1 },
{ "glGetQueryBufferObjectui64v", 45, -1 },
/* GL_ARB_internalformat_query */
{ "glGetInternalformativ", 30, -1 },
@ -1839,105 +1938,6 @@ const struct function gl_core_functions_possible[] = {
/* GL 4.5 */
{ "glMemoryBarrierByRegion", 45, -1 },
/* GL_ARB_direct_state_access */
{ "glCreateTransformFeedbacks", 45, -1 },
{ "glTransformFeedbackBufferBase", 45, -1 },
{ "glTransformFeedbackBufferRange", 45, -1 },
{ "glGetTransformFeedbackiv", 45, -1 },
{ "glGetTransformFeedbacki_v", 45, -1 },
{ "glGetTransformFeedbacki64_v", 45, -1 },
{ "glCreateBuffers", 45, -1 },
{ "glNamedBufferStorage", 45, -1 },
{ "glNamedBufferData", 45, -1 },
{ "glNamedBufferSubData", 45, -1 },
{ "glCopyNamedBufferSubData", 45, -1 },
{ "glClearNamedBufferData", 45, -1 },
{ "glClearNamedBufferSubData", 45, -1 },
{ "glMapNamedBuffer", 45, -1 },
{ "glMapNamedBufferRange", 45, -1 },
{ "glUnmapNamedBuffer", 45, -1 },
{ "glFlushMappedNamedBufferRange", 45, -1 },
{ "glGetNamedBufferParameteriv", 45, -1 },
{ "glGetNamedBufferParameteri64v", 45, -1 },
{ "glGetNamedBufferPointerv", 45, -1 },
{ "glGetNamedBufferSubData", 45, -1 },
{ "glCreateFramebuffers", 45, -1 },
{ "glNamedFramebufferRenderbuffer", 45, -1 },
{ "glNamedFramebufferParameteri", 45, -1 },
{ "glNamedFramebufferTexture", 45, -1 },
{ "glNamedFramebufferTextureLayer", 45, -1 },
{ "glNamedFramebufferDrawBuffer", 45, -1 },
{ "glNamedFramebufferDrawBuffers", 45, -1 },
{ "glNamedFramebufferReadBuffer", 45, -1 },
{ "glInvalidateNamedFramebufferSubData", 45, -1 },
{ "glInvalidateNamedFramebufferData", 45, -1 },
{ "glClearNamedFramebufferiv", 45, -1 },
{ "glClearNamedFramebufferuiv", 45, -1 },
{ "glClearNamedFramebufferfv", 45, -1 },
{ "glClearNamedFramebufferfi", 45, -1 },
{ "glBlitNamedFramebuffer", 45, -1 },
{ "glCheckNamedFramebufferStatus", 45, -1 },
{ "glGetNamedFramebufferParameteriv", 45, -1 },
{ "glGetNamedFramebufferAttachmentParameteriv", 45, -1 },
{ "glCreateRenderbuffers", 45, -1 },
{ "glNamedRenderbufferStorage", 45, -1 },
{ "glNamedRenderbufferStorageMultisample", 45, -1 },
{ "glGetNamedRenderbufferParameteriv", 45, -1 },
{ "glCreateTextures", 45, -1 },
{ "glTextureStorage1D", 45, -1 },
{ "glTextureStorage2D", 45, -1 },
{ "glTextureStorage3D", 45, -1 },
{ "glTextureSubImage1D", 45, -1 },
{ "glTextureSubImage2D", 45, -1 },
{ "glTextureSubImage3D", 45, -1 },
{ "glBindTextureUnit", 45, -1 },
{ "glTextureParameterf", 45, -1 },
{ "glTextureParameterfv", 45, -1 },
{ "glTextureParameteri", 45, -1 },
{ "glTextureParameterIiv", 45, -1 },
{ "glTextureParameterIuiv", 45, -1 },
{ "glTextureParameteriv", 45, -1 },
{ "glGetTextureLevelParameterfv", 45, -1 },
{ "glGetTextureLevelParameteriv", 45, -1 },
{ "glGetTextureParameterfv", 45, -1 },
{ "glGetTextureParameterIiv", 45, -1 },
{ "glGetTextureParameterIuiv", 45, -1 },
{ "glGetTextureParameteriv", 45, -1 },
{ "glCopyTextureSubImage1D", 45, -1 },
{ "glCopyTextureSubImage2D", 45, -1 },
{ "glCopyTextureSubImage3D", 45, -1 },
{ "glGetTextureImage", 45, -1 },
{ "glGetCompressedTextureImage", 45, -1 },
{ "glCompressedTextureSubImage1D", 45, -1 },
{ "glCompressedTextureSubImage2D", 45, -1 },
{ "glCompressedTextureSubImage3D", 45, -1 },
{ "glGenerateTextureMipmap", 45, -1 },
{ "glTextureStorage2DMultisample", 45, -1 },
{ "glTextureStorage3DMultisample", 45, -1 },
{ "glTextureBuffer", 45, -1 },
{ "glTextureBufferRange", 45, -1 },
{ "glCreateVertexArrays", 45, -1 },
{ "glDisableVertexArrayAttrib", 45, -1 },
{ "glEnableVertexArrayAttrib", 45, -1 },
{ "glVertexArrayElementBuffer", 45, -1 },
{ "glVertexArrayVertexBuffer", 45, -1 },
{ "glVertexArrayVertexBuffers", 45, -1 },
{ "glVertexArrayAttribFormat", 45, -1 },
{ "glVertexArrayAttribIFormat", 45, -1 },
{ "glVertexArrayAttribLFormat", 45, -1 },
{ "glVertexArrayAttribBinding", 45, -1 },
{ "glVertexArrayBindingDivisor", 45, -1 },
{ "glGetVertexArrayiv", 45, -1 },
{ "glGetVertexArrayIndexediv", 45, -1 },
{ "glGetVertexArrayIndexed64iv", 45, -1 },
{ "glCreateSamplers", 45, -1 },
{ "glCreateProgramPipelines", 45, -1 },
{ "glCreateQueries", 45, -1 },
{ "glGetQueryBufferObjectiv", 45, -1 },
{ "glGetQueryBufferObjectuiv", 45, -1 },
{ "glGetQueryBufferObjecti64v", 45, -1 },
{ "glGetQueryBufferObjectui64v", 45, -1 },
/* GL_ARB_indirect_parameters */
{ "glMultiDrawArraysIndirectCountARB", 31, -1 },
{ "glMultiDrawElementsIndirectCountARB", 31, -1 },