mesa: enable ARB_direct_state_access in OpenGL 4.5 compat profile
authorTimothy Arceri <tarceri@itsqueeze.com>
Wed, 4 Jul 2018 01:06:41 +0000 (11:06 +1000)
committerTimothy Arceri <tarceri@itsqueeze.com>
Thu, 5 Jul 2018 03:15:34 +0000 (13:15 +1000)
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>
src/mapi/glapi/gen/apiexec.py
src/mesa/main/extensions_table.h
src/mesa/main/tests/dispatch_sanity.cpp

index 44552f43f294fc61f58ab86eb6526a91de6b3f22..b163d88549ba937c29bb2833200e25a4676ed923 100644 (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.
index 8ed1308182e4e8a6e3dd00333cc857786deff002..e24287b85814ada9aa9bdbf2a56e1be8a911b0d2 100644 (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                             ,  , 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)
index 542dbbdee0f5da86539566c117986c7e9ae49b93..ec4f9dd08f57702cab16b18ce53d0b920e988565 100644 (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 },