glapi/copyimage: Implement CopyImageSubDataNV
[mesa.git] / src / mesa / main / tests / dispatch_sanity.cpp
index b1e80fd5dfbc34f263b71b8b8dc995a842c2cd55..e0324bd54d28750eaa8c42a584064bc71cc5f58a 100644 (file)
@@ -110,7 +110,7 @@ DispatchSanity_test::SetUpCtx(gl_api api, unsigned int version)
                             &visual,
                             NULL, // share_list
                             &driver_functions);
-   _vbo_CreateContext(&ctx);
+   _vbo_CreateContext(&ctx, false);
 
    _mesa_override_extensions(&ctx);
    ctx.Version = version;
@@ -546,6 +546,7 @@ const struct function common_desktop_functions_possible[] = {
 
    /* GL_ARB_instanced_arrays */
    { "glVertexAttribDivisorARB", 31, -1 },
+   { "glVertexArrayVertexAttribDivisorEXT", 31, -1 },
 
    /* GL_NV_texture_barrier */
    { "glTextureBarrierNV", 31, -1 },
@@ -558,6 +559,13 @@ const struct function common_desktop_functions_possible[] = {
    { "glEGLImageTargetRenderbufferStorageOES", 31, -1 },
    { "glEGLImageTargetTexture2DOES", 31, -1 },
 
+   /* EXT_EGL_image_storage */
+   { "glEGLImageTargetTexStorageEXT", 31, -1 },
+   { "glEGLImageTargetTextureStorageEXT", 31, -1 },
+
+   /* GL_NV_copy_image */
+   { "glCopyImageSubDataNV", 31, -1 },
+
    /* GL 3.2 */
    { "glGetInteger64i_v", 32, -1 },
    { "glGetBufferParameteri64v", 32, -1 },
@@ -616,6 +624,7 @@ const struct function common_desktop_functions_possible[] = {
    { "glVertexAttribL4dv", 41, -1 },
    { "glVertexAttribLPointer", 41, -1 },
    { "glGetVertexAttribLdv", 41, -1 },
+   { "glVertexArrayVertexAttribLOffsetEXT", 41, -1 },
 
    /* GL 4.3 */
    { "glIsRenderbuffer", 43, -1 },
@@ -673,12 +682,6 @@ const struct function common_desktop_functions_possible[] = {
    { "glBlendFunciARB", 43, -1 },
    { "glBlendFuncSeparateiARB", 43, -1 },
    { "glMinSampleShadingARB", 43, -1 },                 // XXX: Add to xml
-// { "glNamedStringARB", 43, -1 },                      // XXX: Add to xml
-// { "glDeleteNamedStringARB", 43, -1 },                // XXX: Add to xml
-// { "glCompileShaderIncludeARB", 43, -1 },             // XXX: Add to xml
-// { "glIsNamedStringARB", 43, -1 },                    // XXX: Add to xml
-// { "glGetNamedStringARB", 43, -1 },                   // XXX: Add to xml
-// { "glGetNamedStringivARB", 43, -1 },                 // XXX: Add to xml
    { "glBindFragDataLocationIndexed", 43, -1 },
    { "glGetFragDataIndex", 43, -1 },
    { "glGenSamplers", 43, -1 },
@@ -857,8 +860,8 @@ const struct function common_desktop_functions_possible[] = {
    { "glTextureStorage3DEXT", 43, -1 },
    { "glClearBufferData", 43, -1 },
    { "glClearBufferSubData", 43, -1 },
-// { "glClearNamedBufferDataEXT", 43, -1 },             // XXX: Add to xml
-// { "glClearNamedBufferSubDataEXT", 43, -1 },          // XXX: Add to xml
+   { "glClearNamedBufferDataEXT", 43, -1 },
+   { "glClearNamedBufferSubDataEXT", 43, -1 },
    { "glCopyImageSubData", 43, -1 },
    { "glTextureView", 43, -1 },
    { "glBindVertexBuffer", 43, -1 },
@@ -867,15 +870,16 @@ const struct function common_desktop_functions_possible[] = {
    { "glVertexAttribLFormat", 43, -1 },
    { "glVertexAttribBinding", 43, -1 },
    { "glVertexBindingDivisor", 43, -1 },
-// { "glVertexArrayBindVertexBufferEXT", 43, -1 },      // XXX: Add to xml
-// { "glVertexArrayVertexAttribFormatEXT", 43, -1 },    // XXX: Add to xml
-// { "glVertexArrayVertexAttribIFormatEXT", 43, -1 },   // XXX: Add to xml
-// { "glVertexArrayVertexAttribBindingEXT", 43, -1 },   // XXX: Add to xml
-// { "glVertexArrayVertexBindingDivisorEXT", 43, -1 },  // XXX: Add to xml
+   { "glVertexArrayBindVertexBufferEXT", 43, -1 },
+   { "glVertexArrayVertexAttribFormatEXT", 43, -1 },
+   { "glVertexArrayVertexAttribIFormatEXT", 43, -1 },
+   { "glVertexArrayVertexAttribLFormatEXT", 43, -1 },
+   { "glVertexArrayVertexAttribBindingEXT", 43, -1 },
+   { "glVertexArrayVertexBindingDivisorEXT", 43, -1 },
    { "glFramebufferParameteri", 43, -1 },
    { "glGetFramebufferParameteriv", 43, -1 },
-// { "glNamedFramebufferParameteriEXT", 43, -1 },       // XXX: Add to xml
-// { "glGetNamedFramebufferParameterivEXT", 43, -1 },   // XXX: Add to xml
+   { "glNamedFramebufferParameteriEXT", 43, -1 },
+   { "glGetNamedFramebufferParameterivEXT", 43, -1 },
 // { "glGetInternalformati64v", 43, -1 },               // XXX: Add to xml
    { "glInvalidateTexSubImage", 43, -1 },
    { "glInvalidateTexImage", 43, -1 },
@@ -892,11 +896,11 @@ const struct function common_desktop_functions_possible[] = {
    { "glGetProgramResourceLocation", 43, -1 },
    { "glGetProgramResourceLocationIndex", 43, -1 },
    { "glShaderStorageBlockBinding", 43, -1 },
-// { "glTextureBufferRangeEXT", 43, -1 },               // XXX: Add to xml
+   { "glTextureBufferRangeEXT", 43, -1 },
    { "glTexStorage2DMultisample", 43, -1 },
    { "glTexStorage3DMultisample", 43, -1 },
-// { "glTextureStorage2DMultisampleEXT", 43, -1 },      // XXX: Add to xml
-// { "glTextureStorage3DMultisampleEXT", 43, -1 },      // XXX: Add to xml
+   { "glTextureStorage2DMultisampleEXT", 43, -1 },
+   { "glTextureStorage3DMultisampleEXT", 43, -1 },
 
    { "glViewportArrayv", 43, -1 },
    { "glViewportIndexedf", 43, -1 },
@@ -1031,8 +1035,8 @@ const struct function common_desktop_functions_possible[] = {
    { "glMatrixPushEXT", 10, -1 },
    { "glMatrixPopEXT", 10, -1 },
    /* GL_EXT_direct_state_access - GL 1.1 */
-   //{ "glClientAttribDefaultEXT", 11, -1 },
-   //{ "glPushClientAttribDefaultEXT", 11, -1 },
+   { "glClientAttribDefaultEXT", 11, -1 },
+   { "glPushClientAttribDefaultEXT", 11, -1 },
    { "glTextureParameteriEXT", 11, -1 },
    { "glTextureParameterivEXT", 11, -1 },
    { "glTextureParameterfEXT", 11, -1 },
@@ -1056,70 +1060,70 @@ const struct function common_desktop_functions_possible[] = {
    { "glCopyTextureSubImage3DEXT", 12, -1 },
    /* GL_EXT_direct_state_access - GL 1.2.1 */
    { "glBindMultiTextureEXT", 12, -1 },
-   //{ "glMultiTexCoordPointerEXT", 12, -1 },
-   //{ "glMultiTexEnvfEXT", 12, -1 },
-   //{ "glMultiTexEnvfvEXT", 12, -1 },
-   //{ "glMultiTexEnviEXT", 12, -1 },
-   //{ "glMultiTexEnvivEXT", 12, -1 },
-   //{ "glMultiTexGendEXT", 12, -1 },
-   //{ "glMultiTexGendvEXT", 12, -1 },
-   //{ "glMultiTexGenfEXT", 12, -1 },
-   //{ "glMultiTexGenfvEXT", 12, -1 },
-   //{ "glMultiTexGeniEXT", 12, -1 },
-   //{ "glMultiTexGenivEXT", 12, -1 },
-   //{ "glGetMultiTexEnvfvEXT", 12, -1 },
-   //{ "glGetMultiTexEnvivEXT", 12, -1 },
-   //{ "glGetMultiTexGendvEXT", 12, -1 },
-   //{ "glGetMultiTexGenfvEXT", 12, -1 },
-   //{ "glGetMultiTexGenivEXT", 12, -1 },
+   { "glMultiTexCoordPointerEXT", 12, -1 },
+   { "glMultiTexEnvfEXT", 12, -1 },
+   { "glMultiTexEnvfvEXT", 12, -1 },
+   { "glMultiTexEnviEXT", 12, -1 },
+   { "glMultiTexEnvivEXT", 12, -1 },
+   { "glMultiTexGendEXT", 12, -1 },
+   { "glMultiTexGendvEXT", 12, -1 },
+   { "glMultiTexGenfEXT", 12, -1 },
+   { "glMultiTexGenfvEXT", 12, -1 },
+   { "glMultiTexGeniEXT", 12, -1 },
+   { "glMultiTexGenivEXT", 12, -1 },
+   { "glGetMultiTexEnvfvEXT", 12, -1 },
+   { "glGetMultiTexEnvivEXT", 12, -1 },
+   { "glGetMultiTexGendvEXT", 12, -1 },
+   { "glGetMultiTexGenfvEXT", 12, -1 },
+   { "glGetMultiTexGenivEXT", 12, -1 },
    { "glMultiTexParameterfEXT", 12, -1 },
    { "glMultiTexParameterfvEXT", 12, -1 },
    { "glMultiTexParameteriEXT", 12, -1 },
    { "glMultiTexParameterivEXT", 12, -1 },
    { "glMultiTexImage1DEXT", 12, -1 },
    { "glMultiTexImage2DEXT", 12, -1 },
-   //{ "glMultiTexSubImage1DEXT", 12, -1 },
-   //{ "glMultiTexSubImage2DEXT", 12, -1 },
-   //{ "glCopyMultiTexImage1DEXT", 12, -1 },
-   //{ "glCopyMultiTexImage2DEXT", 12, -1 },
-   //{ "glCopyMultiTexSubImage1DEXT", 12, -1 },
-   //{ "glCopyMultiTexSubImage2DEXT", 12, -1 },
+   { "glMultiTexSubImage1DEXT", 12, -1 },
+   { "glMultiTexSubImage2DEXT", 12, -1 },
+   { "glCopyMultiTexImage1DEXT", 12, -1 },
+   { "glCopyMultiTexImage2DEXT", 12, -1 },
+   { "glCopyMultiTexSubImage1DEXT", 12, -1 },
+   { "glCopyMultiTexSubImage2DEXT", 12, -1 },
    { "glGetMultiTexImageEXT", 12, -1 },
-   //{ "glGetMultiTexParameterfvEXT", 12, -1 },
-   //{ "glGetMultiTexParameterivEXT", 12, -1 },
-   //{ "glGetMultiTexLevelParameterfvEXT", 12, -1 },
-   //{ "glGetMultiTexLevelParameterivEXT", 12, -1 },
+   { "glGetMultiTexParameterfvEXT", 12, -1 },
+   { "glGetMultiTexParameterivEXT", 12, -1 },
+   { "glGetMultiTexLevelParameterfvEXT", 12, -1 },
+   { "glGetMultiTexLevelParameterivEXT", 12, -1 },
    { "glMultiTexImage3DEXT", 12, -1 },
-   //{ "glMultiTexSubImage3DEXT", 12, -1 },
-   //{ "glCopyMultiTexSubImage3DEXT", 12, -1 },
+   { "glMultiTexSubImage3DEXT", 12, -1 },
+   { "glCopyMultiTexSubImage3DEXT", 12, -1 },
    { "glEnableClientStateIndexedEXT", 12, -1 },
    { "glDisableClientStateIndexedEXT", 12, -1 },
    { "glGetPointerIndexedvEXT", 12, -1 },
    /* GL_EXT_direct_state_access - ARB_vertex_program */
-   //{ "glNamedProgramStringEXT", 10, -1 },
-   //{ "glNamedProgramLocalParameter4dEXT", 10, -1 },
-   //{ "glNamedProgramLocalParameter4dvEXT", 10, -1 },
-   //{ "glNamedProgramLocalParameter4fEXT", 10, -1 },
-   //{ "glNamedProgramLocalParameter4fvEXT", 10, -1 },
-   //{ "glGetNamedProgramLocalParameter4dvEXT", 10, -1 },
-   //{ "glGetNamedProgramLocalParameter4fvEXT", 10, -1 },
-   //{ "glGetNamedProgramivEXT", 10, -1 },
-   //{ "glGetNamedProgramStringEXT", 10, -1 },
+   { "glNamedProgramStringEXT", 10, -1 },
+   { "glNamedProgramLocalParameter4dEXT", 10, -1 },
+   { "glNamedProgramLocalParameter4dvEXT", 10, -1 },
+   { "glNamedProgramLocalParameter4fEXT", 10, -1 },
+   { "glNamedProgramLocalParameter4fvEXT", 10, -1 },
+   { "glGetNamedProgramLocalParameterdvEXT", 10, -1 },
+   { "glGetNamedProgramLocalParameterfvEXT", 10, -1 },
+   { "glGetNamedProgramivEXT", 10, -1 },
+   { "glGetNamedProgramStringEXT", 10, -1 },
    /* GL_EXT_direct_state_access - GL 1.3 */
-   //{ "glCompressedTextureImage1DEXT", 13, -1 },
-   //{ "glCompressedTextureImage2DEXT", 13, -1 },
-   //{ "glCompressedTextureImage3DEXT", 13, -1 },
-   //{ "glCompressedTextureSubImage1DEXT", 13, -1 },
+   { "glCompressedTextureImage1DEXT", 13, -1 },
+   { "glCompressedTextureImage2DEXT", 13, -1 },
+   { "glCompressedTextureImage3DEXT", 13, -1 },
+   { "glCompressedTextureSubImage1DEXT", 13, -1 },
    { "glCompressedTextureSubImage2DEXT", 13, -1 },
-   //{ "glCompressedTextureSubImage3DEXT", 13, -1 },
-   //{ "glGetCompressedTextureImageEXT", 13, -1 },
-   //{ "glCompressedMultiTexImage1DEXT", 13, -1 },
-   //{ "glCompressedMultiTexImage2DEXT", 13, -1 },
-   //{ "glCompressedMultiTexImage3DEXT", 13, -1 },
-   //{ "glCompressedMultiTexSubImage1DEXT", 13, -1 },
-   //{ "glCompressedMultiTexSubImage2DEXT", 13, -1 },
-   //{ "glCompressedMultiTexSubImage3DEXT", 13, -1 },
-   //{ "glGetCompressedMultiTexImageEXT", 13, -1 },
+   { "glCompressedTextureSubImage3DEXT", 13, -1 },
+   { "glGetCompressedTextureImageEXT", 13, -1 },
+   { "glCompressedMultiTexImage1DEXT", 13, -1 },
+   { "glCompressedMultiTexImage2DEXT", 13, -1 },
+   { "glCompressedMultiTexImage3DEXT", 13, -1 },
+   { "glCompressedMultiTexSubImage1DEXT", 13, -1 },
+   { "glCompressedMultiTexSubImage2DEXT", 13, -1 },
+   { "glCompressedMultiTexSubImage3DEXT", 13, -1 },
+   { "glGetCompressedMultiTexImageEXT", 13, -1 },
    { "glMatrixLoadTransposefEXT", 13, -1 },
    { "glMatrixLoadTransposedEXT", 13, -1 },
    { "glMatrixMultTransposefEXT", 13, -1 },
@@ -1133,93 +1137,61 @@ const struct function common_desktop_functions_possible[] = {
    { "glGetNamedBufferPointervEXT", 15, -1 },
    { "glGetNamedBufferSubDataEXT", 15, -1 },
    /* GL_EXT_direct_state_access - GL 2.0 */
-   //{ "glProgramUniform1iEXT", 20, -1 },
-   //{ "glProgramUniform1ivEXT", 20, -1 },
-   //{ "glProgramUniform1fEXT", 20, -1 },
-   //{ "glProgramUniform1fvEXT", 20, -1 },
-   //{ "glProgramUniform2iEXT", 20, -1 },
-   //{ "glProgramUniform2ivEXT", 20, -1 },
-   //{ "glProgramUniform2fEXT", 20, -1 },
-   //{ "glProgramUniform2fvEXT", 20, -1 },
-   //{ "glProgramUniform3iEXT", 20, -1 },
-   //{ "glProgramUniform3ivEXT", 20, -1 },
-   //{ "glProgramUniform3fEXT", 20, -1 },
-   //{ "glProgramUniform3fvEXT", 20, -1 },
-   //{ "glProgramUniform4iEXT", 20, -1 },
-   //{ "glProgramUniform4ivEXT", 20, -1 },
-   //{ "glProgramUniform4fEXT", 20, -1 },
-   //{ "glProgramUniform4fvEXT", 20, -1 },
-   //{ "glProgramUniformMatrix2fvEXT", 20, -1 },
-   //{ "glProgramUniformMatrix3fvEXT", 20, -1 },
-   //{ "glProgramUniformMatrix4fvEXT", 20, -1 },
+   /* Added glProgramUniform*EXT functions are aliases */
    /* GL_EXT_direct_state_access - GL 2.1 */
-   //{ "glProgramUniformMatrix2x3fvEXT", 21, -1 },
-   //{ "glProgramUniformMatrix3x2fvEXT", 21, -1 },
-   //{ "glProgramUniformMatrix2x4fvEXT", 21, -1 },
-   //{ "glProgramUniformMatrix4x2fvEXT", 21, -1 },
-   //{ "glProgramUniformMatrix3x4fvEXT", 21, -1 },
-   //{ "glProgramUniformMatrix4x3fvEXT", 21, -1 },
+   /* Added glProgramUniformMAtrix*EXT functions are aliases */
    /* GL_EXT_direct_state_access - EXT_texture_buffer_object */
-   //{ "glTextureBufferEXT", 10, -1 },
-   //{ "glMultiTexBufferEXT", 10, -1 },
+   { "glTextureBufferEXT", 10, -1 },
+   { "glMultiTexBufferEXT", 10, -1 },
    /* GL_EXT_direct_state_access - EXT_texture_integer */
-   //{ "glTextureParameterIivEXT", 10, -1 },
-   //{ "glTextureParameterIuivEXT", 10, -1 },
-   //{ "glGetTextureParameterIivEXT", 10, -1 },
-   //{ "glGetTextureParameterIuivEXT", 10, -1 },
-   //{ "glMultiTexParameterIivEXT", 10, -1 },
-   //{ "glMultiTexParameterIuivEXT", 10, -1 },
-   //{ "glGetMultiTexParameterIivEXT", 10, -1 },
-   //{ "glGetMultiTexParameterIuivEXT", 10, -1 },
+   { "glTextureParameterIivEXT", 10, -1 },
+   { "glTextureParameterIuivEXT", 10, -1 },
+   { "glGetTextureParameterIivEXT", 10, -1 },
+   { "glGetTextureParameterIuivEXT", 10, -1 },
+   { "glMultiTexParameterIivEXT", 10, -1 },
+   { "glMultiTexParameterIuivEXT", 10, -1 },
+   { "glGetMultiTexParameterIivEXT", 10, -1 },
+   { "glGetMultiTexParameterIuivEXT", 10, -1 },
    /* GL_EXT_direct_state_access - EXT_gpu_shader4 */
-   //{ "glProgramUniform1uiEXT", 10, -1 },
-   //{ "glProgramUniform1uivEXT", 10, -1 },
-   //{ "glProgramUniform2uiEXT", 10, -1 },
-   //{ "glProgramUniform2uivEXT", 10, -1 },
-   //{ "glProgramUniform3uiEXT", 10, -1 },
-   //{ "glProgramUniform3uivEXT", 10, -1 },
-   //{ "glProgramUniform4uiEXT", 10, -1 },
-   //{ "glProgramUniform4uivEXT", 10, -1 },
+   /* Added glProgramUniform*u*EXT functions are aliases */
    /* GL_EXT_direct_state_access - EXT_gpu_program_parameters */
-   //{ "glNamedProgramLocalParameters4fvEXT", 10, -1 },
+   { "glNamedProgramLocalParameters4fvEXT", 10, -1 },
    /* GL_EXT_direct_state_access - GL 3.0 */
-   //{ "glGetFloati_vEXT", 30, -1 },
-   //{ "glGetDoublei_vEXT", 30, -1 },
-   //{ "glNamedRenderbufferStorageEXT", 30, -1 },
-   //{ "glGetNamedRenderbufferParameterivEXT", 30, -1 },
-   //{ "glNamedRenderbufferStorageMultisampleEXT", 30, -1 },
+   { "glNamedRenderbufferStorageEXT", 30, -1 },
+   { "glGetNamedRenderbufferParameterivEXT", 30, -1 },
+   { "glNamedRenderbufferStorageMultisampleEXT", 30, -1 },
    { "glCheckNamedFramebufferStatusEXT", 30, -1 },
    { "glNamedFramebufferTexture1DEXT", 30, -1 },
    { "glNamedFramebufferTexture2DEXT", 30, -1 },
    { "glNamedFramebufferTexture3DEXT", 30, -1 },
    { "glNamedFramebufferRenderbufferEXT", 30, -1 },
    { "glGetNamedFramebufferAttachmentParameterivEXT", 30, -1 },
-   //{ "glGenerateTextureMipmapEXT", 30, -1 },
-   //{ "glGenerateMultiTexMipmapEXT", 30, -1 },
+   { "glGenerateTextureMipmapEXT", 30, -1 },
+   { "glGenerateMultiTexMipmapEXT", 30, -1 },
    { "glFramebufferDrawBufferEXT", 30, -1 },
    { "glFramebufferDrawBuffersEXT", 30, -1 },
    { "glFramebufferReadBufferEXT", 30, -1 },
    { "glGetFramebufferParameterivEXT", 30, -1 },
-   //{ "glNamedCopyBufferSubDataEXT", 30, -1 },
-   //{ "glVertexArrayVertexOffsetEXT", 30, -1 },
-   //{ "glVertexArrayColorOffsetEXT", 30, -1 },
-   //{ "glVertexArrayEdgeFlagOffsetEXT", 30, -1 },
-   //{ "glVertexArrayIndexOffsetEXT", 30, -1 },
-   //{ "glVertexArrayNormalOffsetEXT", 30, -1 },
-   //{ "glVertexArrayTexCoordOffsetEXT", 30, -1 },
-   //{ "glVertexArrayMultiTexCoordOffsetEXT", 30, -1 },
-   //{ "glVertexArrayFogCoordOffsetEXT", 30, -1 },
-   //{ "glVertexArraySecondColorOffsetEXT", 30, -1 },
-   //{ "glVertexArrayVertexAttribOffsetEXT", 30, -1 },
-   //{ "glVertexArrayVertexAttribIOffsetEXT", 30, -1 },
-   //{ "glEnableVertexArrayEXT", 30, -1 },
-   //{ "glDisableVertexArrayEXT", 30, -1 },
-   //{ "glEnableVertexArrayAttribEXT", 30, -1 },
-   //{ "glDisableVertexArrayAttribEXT", 30, -1 },
-   //{ "glGetVertexArrayIntegervEXT", 30, -1 },
-   //{ "glGetVertexArrayPointervEXT", 30, -1 },
-   //{ "glGetVertexArrayIntegeri_vEXT", 30, -1 },
-   //{ "glGetVertexArrayPointeri_vEXT", 30, -1 },
+   { "glNamedCopyBufferSubDataEXT", 30, -1 },
+   { "glVertexArrayVertexOffsetEXT", 30, -1 },
+   { "glVertexArrayColorOffsetEXT", 30, -1 },
+   { "glVertexArrayEdgeFlagOffsetEXT", 30, -1 },
+   { "glVertexArrayIndexOffsetEXT", 30, -1 },
+   { "glVertexArrayNormalOffsetEXT", 30, -1 },
+   { "glVertexArrayTexCoordOffsetEXT", 30, -1 },
+   { "glVertexArrayMultiTexCoordOffsetEXT", 30, -1 },
+   { "glVertexArrayFogCoordOffsetEXT", 30, -1 },
+   { "glVertexArraySecondaryColorOffsetEXT", 30, -1 },
+   { "glVertexArrayVertexAttribOffsetEXT", 30, -1 },
+   { "glVertexArrayVertexAttribIOffsetEXT", 30, -1 },
+   { "glEnableVertexArrayEXT", 30, -1 },
+   { "glDisableVertexArrayEXT", 30, -1 },
+   { "glEnableVertexArrayAttribEXT", 30, -1 },
+   { "glDisableVertexArrayAttribEXT", 30, -1 },
+   { "glGetVertexArrayIntegervEXT", 30, -1 },
+   { "glGetVertexArrayPointervEXT", 30, -1 },
+   { "glGetVertexArrayIntegeri_vEXT", 30, -1 },
+   { "glGetVertexArrayPointeri_vEXT", 30, -1 },
    { "glMapNamedBufferRangeEXT", 30, -1 },
    { "glFlushMappedNamedBufferRangeEXT", 30, -1 },
 
@@ -1237,6 +1209,14 @@ const struct function common_desktop_functions_possible[] = {
    { "glBindImageTextures", 44, -1 },
    { "glBindVertexBuffers", 44, -1 },
 
+   /* GL_ARB_shading_language_include */
+   { "glNamedStringARB", 20, -1 },
+   { "glDeleteNamedStringARB", 20, -1 },
+   { "glCompileShaderIncludeARB", 20, -1 },
+   { "glIsNamedStringARB", 20, -1 },
+   { "glGetNamedStringARB", 20, -1 },
+   { "glGetNamedStringivARB", 20, -1 },
+
    /* GL_KHR_debug/GL_ARB_debug_output */
    { "glPushDebugGroup", 11, -1 },
    { "glPopDebugGroup", 11, -1 },
@@ -1328,6 +1308,7 @@ const struct function common_desktop_functions_possible[] = {
    /* GL_ARB_sparse_buffer */
    { "glBufferPageCommitmentARB", 43, -1 },
    { "glNamedBufferPageCommitmentARB", 43, -1 },
+   { "glNamedBufferPageCommitmentEXT", 43, -1 },
 
    /* GL_ARB_bindless_texture */
    { "glGetTextureHandleARB", 40, -1 },
@@ -1409,6 +1390,51 @@ const struct function common_desktop_functions_possible[] = {
 
    { "glMaxShaderCompilerThreadsKHR", 11, -1 },
 
+   /* GL_EXT_shader_image_load_store */
+   { "glBindImageTextureEXT", 30, -1 },
+
+   /* GL_MESA_framebuffer_flip_y */
+   { "glFramebufferParameteriMESA", 43, -1 },
+   { "glGetFramebufferParameterivMESA", 43, -1 },
+
+   /* GL_ARB_gpu_shader_int64 */
+   { "glUniform1i64ARB", 40, -1 },
+   { "glUniform2i64ARB", 40, -1 },
+   { "glUniform3i64ARB", 40, -1 },
+   { "glUniform4i64ARB", 40, -1 },
+   { "glUniform1ui64ARB", 40, -1 },
+   { "glUniform2ui64ARB", 40, -1 },
+   { "glUniform3ui64ARB", 40, -1 },
+   { "glUniform4ui64ARB", 40, -1 },
+   { "glUniform1i64vARB", 40, -1 },
+   { "glUniform2i64vARB", 40, -1 },
+   { "glUniform3i64vARB", 40, -1 },
+   { "glUniform4i64vARB", 40, -1 },
+   { "glUniform1ui64vARB", 40, -1 },
+   { "glUniform2ui64vARB", 40, -1 },
+   { "glUniform3ui64vARB", 40, -1 },
+   { "glUniform4ui64vARB", 40, -1 },
+   { "glGetUniformi64vARB", 40, -1 },
+   { "glGetUniformui64vARB", 40, -1 },
+   { "glGetnUniformi64vARB", 40, -1 },
+   { "glGetnUniformui64vARB", 40, -1 },
+   { "glProgramUniform1i64ARB", 40, -1 },
+   { "glProgramUniform2i64ARB", 40, -1 },
+   { "glProgramUniform3i64ARB", 40, -1 },
+   { "glProgramUniform4i64ARB", 40, -1 },
+   { "glProgramUniform1ui64ARB", 40, -1 },
+   { "glProgramUniform2ui64ARB", 40, -1 },
+   { "glProgramUniform3ui64ARB", 40, -1 },
+   { "glProgramUniform4ui64ARB", 40, -1 },
+   { "glProgramUniform1i64vARB", 40, -1 },
+   { "glProgramUniform2i64vARB", 40, -1 },
+   { "glProgramUniform3i64vARB", 40, -1 },
+   { "glProgramUniform4i64vARB", 40, -1 },
+   { "glProgramUniform1ui64vARB", 40, -1 },
+   { "glProgramUniform2ui64vARB", 40, -1 },
+   { "glProgramUniform3ui64vARB", 40, -1 },
+   { "glProgramUniform4ui64vARB", 40, -1 },
+
    { NULL, 0, -1 }
 };
 
@@ -1895,44 +1921,6 @@ const struct function gl_core_functions_possible[] = {
    /* GL_ARB_ES3_2_compatibility */
    { "glPrimitiveBoundingBoxARB", 45, -1 },
 
-   /* GL_ARB_gpu_shader_int64 */
-   { "glUniform1i64ARB", 45, -1 },
-   { "glUniform2i64ARB", 45, -1 },
-   { "glUniform3i64ARB", 45, -1 },
-   { "glUniform4i64ARB", 45, -1 },
-   { "glUniform1ui64ARB", 45, -1 },
-   { "glUniform2ui64ARB", 45, -1 },
-   { "glUniform3ui64ARB", 45, -1 },
-   { "glUniform4ui64ARB", 45, -1 },
-   { "glUniform1i64vARB", 45, -1 },
-   { "glUniform2i64vARB", 45, -1 },
-   { "glUniform3i64vARB", 45, -1 },
-   { "glUniform4i64vARB", 45, -1 },
-   { "glUniform1ui64vARB", 45, -1 },
-   { "glUniform2ui64vARB", 45, -1 },
-   { "glUniform3ui64vARB", 45, -1 },
-   { "glUniform4ui64vARB", 45, -1 },
-   { "glGetUniformi64vARB", 45, -1 },
-   { "glGetUniformui64vARB", 45, -1 },
-   { "glGetnUniformi64vARB", 45, -1 },
-   { "glGetnUniformui64vARB", 45, -1 },
-   { "glProgramUniform1i64ARB", 45, -1 },
-   { "glProgramUniform2i64ARB", 45, -1 },
-   { "glProgramUniform3i64ARB", 45, -1 },
-   { "glProgramUniform4i64ARB", 45, -1 },
-   { "glProgramUniform1ui64ARB", 45, -1 },
-   { "glProgramUniform2ui64ARB", 45, -1 },
-   { "glProgramUniform3ui64ARB", 45, -1 },
-   { "glProgramUniform4ui64ARB", 45, -1 },
-   { "glProgramUniform1i64vARB", 45, -1 },
-   { "glProgramUniform2i64vARB", 45, -1 },
-   { "glProgramUniform3i64vARB", 45, -1 },
-   { "glProgramUniform4i64vARB", 45, -1 },
-   { "glProgramUniform1ui64vARB", 45, -1 },
-   { "glProgramUniform2ui64vARB", 45, -1 },
-   { "glProgramUniform3ui64vARB", 45, -1 },
-   { "glProgramUniform4ui64vARB", 45, -1 },
-
    /* GL_ARB_gl_spirv */
    { "glSpecializeShaderARB", 45, -1 },
 
@@ -2437,6 +2425,7 @@ const struct function gles2_functions_possible[] = {
    { "glGetQueryObjecti64vEXT", 20, -1 },
    { "glGetQueryObjectui64vEXT", 20, -1 },
    { "glQueryCounterEXT", 20, -1 },
+   { "glGetInteger64vEXT", 20, -1 },
 
    /* GL_EXT_shader_framebuffer_fetch_non_coherent */
    { "glFramebufferFetchBarrierEXT", 20, -1 },
@@ -2520,7 +2509,8 @@ const struct function gles3_functions_possible[] = {
    // { "glGetBufferPointerv", 30, -1 },
    { "glGetFragDataLocation", 30, -1 },
    { "glGetInteger64i_v", 30, -1 },
-   { "glGetInteger64v", 30, -1 },
+   // We check for the aliased -EXT version in GLES 2
+   //{ "glGetInteger64v", 30, -1 },
    { "glGetIntegeri_v", 30, -1 },
    { "glGetInternalformativ", 30, -1 },
    { "glGetInternalformati64v", 30, -1 },
@@ -2650,6 +2640,13 @@ const struct function gles3_functions_possible[] = {
    { "glRenderbufferStorageMultisampleAdvancedAMD", 11, -1 },
    { "glNamedRenderbufferStorageMultisampleAdvancedAMD", 11, -1 },
 
+   /* GL_MESA_framebuffer_flip_y */
+   { "glFramebufferParameteriMESA", 30, -1 },
+   { "glGetFramebufferParameterivMESA", 30, -1 },
+
+   /* EXT_EGL_image_storage */
+   { "glEGLImageTargetTexStorageEXT", 30, -1 },
+
    { NULL, 0, -1 }
 };