// This file specifies which functions should be attached to GrGLInterface
// for a given standard (OpenGL, OpenGL ES, etc). It allows specifing
// how and when to attach them (e.g. only if an extension is present).
// It is used for both the assemble and validate step.
//
// To regenerate the Assemble/Validate code after editing this file, execute:
//
//   make -C tools/gpu/gl/interface generate
//
// Currently it assumes the minimum versions:
//   - GL: 2.0
//   - GLES: 2.0
//   - WebGL: [WIP] 1.0
//
// http://web.eecs.umich.edu/~sugih/courses/eecs487/common/notes/APITables.xml
// is a handy reference comparing GL and GLES API
[
  {
    "GL":    [{"ext": "<core>"}],
    "GLES":  [{"ext": "<core>"}],
    "WebGL": [{"ext": "<core>"}],

    "functions": [
      "ActiveTexture", "AttachShader", "BindAttribLocation", "BindBuffer",
      "BindTexture", "BlendColor", "BlendEquation", "BlendFunc",
      "BufferData", "BufferSubData", "Clear", "ClearColor",
      "ClearStencil", "ColorMask", "CompileShader", "CompressedTexImage2D",
      "CompressedTexSubImage2D", "CopyTexSubImage2D", "CreateProgram", "CreateShader",
      "CullFace", "DeleteBuffers", "DeleteProgram",
      "DeleteShader", "DeleteTextures", "DepthMask", "Disable",
      "DisableVertexAttribArray", "DrawArrays", "DrawElements", "Enable",
      "EnableVertexAttribArray", "Finish", "Flush",
      "FrontFace", "GenBuffers",
      "GenTextures", "GetBufferParameteriv", "GetError",
      "GetFloatv", "GetIntegerv", "GetProgramInfoLog",
      "GetProgramiv", "GetShaderInfoLog",
      "GetShaderiv", "GetString",
      "GetUniformLocation", "IsTexture", "LineWidth", "LinkProgram", "PixelStorei",
      "ReadPixels", "Scissor", "ShaderSource", "StencilFunc",
      "StencilFuncSeparate", "StencilMask", "StencilMaskSeparate", "StencilOp",
      "StencilOpSeparate", "TexImage2D", "TexParameterf", "TexParameterfv", "TexParameteri",
      "TexParameteriv", "TexSubImage2D", "Uniform1f", "Uniform1fv", "Uniform1i", "Uniform1iv",
      "Uniform2f", "Uniform2fv", "Uniform2i", "Uniform2iv", "Uniform3f", "Uniform3fv", "Uniform3i",
      "Uniform3iv", "Uniform4f", "Uniform4fv", "Uniform4i", "Uniform4iv", "UniformMatrix2fv",
      "UniformMatrix3fv", "UniformMatrix4fv", "UseProgram", "VertexAttrib1f",
      "VertexAttrib2fv", "VertexAttrib3fv", "VertexAttrib4fv", "VertexAttribPointer",
      "Viewport",
    ],
  },
  { // GL exclusive core functions
    "GL":    [{"ext": "<core>"}],
    "GLES":  null,

    "functions": [
      "DrawBuffer", "PolygonMode",
    ],
  },
  {
    "GL":    [{"min_version": [3, 0], "ext": "<core>"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"}],

    "functions": [
      "GetStringi",
    ]
  },
  {
    "GL":    [{"min_version": [4, 2], "ext": "<core>"}],
    "GLES":  [{"min_version": [3, 1], "ext": "<core>"}],
    "WebGL": null,

    "functions": [
      "MemoryBarrier",
    ],
    // TODO: Remove 'optional' once Chrome sets this function in the interface.
    "optional": [
      "MemoryBarrier",
    ]
  },

  {
    "GL":    [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_vertex_array_object"},
              {/*    else if      */  "ext": "GL_APPLE_vertex_array_object"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_OES_vertex_array_object"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_OES_vertex_array_object"},
              {/*    else if      */  "ext": "OES_vertex_array_object"}],

    // WebGL uses createVertexArray instead of genVertexArrays, but Emscripten
    // creates an alias called genVertexArray which papers over this difference.
    "functions": [
      "BindVertexArray", "DeleteVertexArrays", "GenVertexArrays",
    ],
  },

  {
    "GL":    [{"min_version": [4, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_tessellation_shader"}],
    "GLES":  [{"min_version": [3, 2], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_OES_tessellation_shader"}],
    "WebGL": null,

    "functions": [
      "PatchParameteri",
    ],
  },

  {
    "GL":    [{"min_version": [3, 0], "ext": "<core>"}],
    "GLES":  [{"min_version": [3, 0], "ext": "GL_EXT_blend_func_extended"}],
    "WebGL": null,

    "functions": [
      "BindFragDataLocation",
    ],
  },
  {
    "GL":    [{"min_version": [3, 3], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_blend_func_extended"}],
    "GLES":  [{"min_version": [3, 0], "ext": "GL_EXT_blend_func_extended"}],
    "WebGL": null,

    "functions": [
      "BindFragDataLocationIndexed",
    ],
  },

  {
    "GL":    [{"ext": "GL_KHR_blend_equation_advanced"},
              {"ext": "GL_NV_blend_equation_advanced"}],
    "GLES":  [{"ext": "GL_KHR_blend_equation_advanced"},
              {"ext": "GL_NV_blend_equation_advanced"}],
    "WebGL": null,

    "functions": [
      "BlendBarrier",
    ],
  },

  {
    "GL":    [{"min_version": [4, 4], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_clear_texture"}],
    "GLES":  [{"ext": "GL_EXT_clear_texture", "suffix": "EXT"}],
    "WebGL": null,

    "functions": [
      "ClearTexImage", "ClearTexSubImage",
    ],
    // https://bugs.chromium.org/p/skia/issues/detail?id=8913
    "optional": [
      "ClearTexImage", "ClearTexSubImage",
    ]
  },

  {
    "GL":    [{"min_version": [3, 1], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_draw_instanced"},
              {/*    else if      */  "ext": "GL_EXT_draw_instanced"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_EXT_draw_instanced"},
              {/*    else if      */  "ext": "GL_ANGLE_instanced_arrays"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"}],

    "functions": [
      "DrawArraysInstanced", "DrawElementsInstanced",
    ]
  },

  {
    "GL":    [{"min_version": [4, 2], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_base_instance"}],
    "GLES":  [{"ext": "GL_EXT_base_instance"},
              {/*    else if      */  "ext": "GL_ANGLE_base_vertex_base_instance"}],
    "WebGL": [{"ext": "GL_WEBGL_draw_instanced_base_vertex_base_instance"}],

    "functions": [
      "DrawArraysInstancedBaseInstance", "DrawElementsInstancedBaseVertexBaseInstance"
    ]
  },

  { // ES 3.0 has glDrawBuffers but not glDrawBuffer
    "GL":    [{"ext": "<core>"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"}],

    "functions": [
      "DrawBuffers", "ReadBuffer",
    ]
  },

  {
    "GL":    [{"min_version": [4, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_draw_indirect"}],
    "GLES":  [{"min_version": [3, 1], "ext": "<core>"}],
    "WebGL": null,

    "functions": [
      "DrawArraysIndirect", "DrawElementsIndirect",
    ]
  },

  {
    "GL":    null,
    "GLES":  [{"ext": "GL_ANGLE_base_vertex_base_instance"}],
    "WebGL": [{"ext": "GL_WEBGL_multi_draw_instanced_base_vertex_base_instance"}],

    "functions": [
      "MultiDrawArraysInstancedBaseInstance", "MultiDrawElementsInstancedBaseVertexBaseInstance",
    ]
  },

  { // glDrawRangeElements was added to ES in 3.0.
    "GL":    [{"ext": "<core>"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"}],

    "functions": [
      "DrawRangeElements",
    ]
  },

  {
    "GL":    [{"min_version": [3, 2], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_texture_multisample"}],
    "GLES":  [{"min_version": [3, 1], "ext": "<core>"}],
    "WebGL": null,

    "functions": [
      "GetMultisamplefv",
    ]
  },

  // glGetTexLevelParameteriv was added to ES in 3.1.
  {
    "GL":    [{"ext": "<core>"}],
    "GLES":  [{"min_version": [3, 1], "ext": "<core>"}],
    "WebGL": null,

    "functions": [
      "GetTexLevelParameteriv",
    ]
  },

  {
    "GL":    [{"min_version": [4, 3], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_multi_draw_indirect"}],
    "GLES":  [{"ext": "GL_EXT_multi_draw_indirect"}],
    "WebGL": null,

    "functions": [
      "MultiDrawArraysIndirect", "MultiDrawElementsIndirect",
    ]
  },

  {
    "GL":    [{"min_version": [3, 1], "ext": "<core>"}],
    "GLES":  [{"min_version": [3, 2], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_OES_texture_buffer"},
              {/*    else if      */  "ext": "GL_EXT_texture_buffer"}],
    "WebGL": null,

    "functions": [
      "TexBuffer",
    ]
  },
  {
    "GL":    [{"min_version": [4, 3], "ext": "<core>"}],
    "GLES":  [{"min_version": [3, 2], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_OES_texture_buffer"},
              {/*    else if      */  "ext": "GL_EXT_texture_buffer"}],
    "WebGL": null,

    "functions": [
      "TexBufferRange",
    ]
  },

    // GL_EXT_texture_storage is part of desktop 4.2
    // There is a desktop ARB extension and an ES+desktop EXT extension
  {
    "GL":    [{"min_version": [4, 2], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_texture_storage"},
              {/*    else if      */  "ext": "GL_EXT_texture_storage"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_EXT_texture_storage"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"}],

    "functions": [
      "TexStorage2D",
    ]
  },

  // glTextureBarrier is part of desktop 4.5. There are also ARB and NV extensions.
  {
    "GL":    [{"min_version": [4, 5], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_texture_barrier"},
              {/*    else if      */  "ext": "GL_NV_texture_barrier"}],
    "GLES":  [{"ext": "GL_NV_texture_barrier"}],
    "WebGL": null,

    "functions": [
      "TextureBarrier",
    ]
  },

  {
    "GL":    null, // Not supported
    "GLES":  [{"ext": "GL_EXT_discard_framebuffer"}],
    "WebGL": null,

    "functions": [
      "DiscardFramebuffer",
    ]
  },

  {
    "GL":    null, // Not supported
    "GLES":  [{"ext": "GL_QCOM_tiled_rendering"}],
    "WebGL": null,

    "functions": [
      "StartTiling", "EndTiling",
    ],
    // https://github.com/flutter/flutter/issues/47164
    // https://github.com/flutter/flutter/issues/47804
    "optional": [
      "StartTiling", "EndTiling",
    ]
  },

  {
    "GL":    [{"min_version": [3, 2], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_instanced_arrays"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_EXT_instanced_arrays"},
              {/*    else if      */  "ext": "GL_ANGLE_instanced_arrays"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"}],

    "functions": [
      "VertexAttribDivisor",
    ]
  },
  {
    "GL":    [{"min_version": [3, 0], "ext": "<core>"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"}],

    "functions": [
      "VertexAttribIPointer",
    ]
  },

  // FrameBuffer Object (FBO) related calls
  {
    "GL":    [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_framebuffer_object"},
              {/*    else if      */  "ext": "GL_EXT_framebuffer_object"}],
    "GLES":  [{"ext": "<core>"}], // These are all in ES 2.0 and above
    "WebGL": [{"ext": "<core>"}],

    "functions": [
      "BindFramebuffer", "BindRenderbuffer", "CheckFramebufferStatus",
      "DeleteFramebuffers", "DeleteRenderbuffers", "FramebufferRenderbuffer",
      "FramebufferTexture2D", "GenFramebuffers", "GenRenderbuffers", "GenerateMipmap",
      "GetFramebufferAttachmentParameteriv", "GetRenderbufferParameteriv",
      "RenderbufferStorage",
    ],
  },
  {
    "GL":    [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_framebuffer_object"},
              {/*    else if      */  "ext": "GL_EXT_framebuffer_blit"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_NV_framebuffer_blit"},
              {/*    else if      */  "ext": "GL_CHROMIUM_framebuffer_multisample"},
              {/*    else if      */  "ext": "GL_ANGLE_framebuffer_blit"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"}],

    "functions": [
      "BlitFramebuffer",
    ],
  },
  {
    "GL":    [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_framebuffer_object"},
              {/*    else if      */  "ext": "GL_EXT_framebuffer_multisample"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_CHROMIUM_framebuffer_multisample"},
              {/*    else if      */  "ext": "GL_ANGLE_framebuffer_multisample"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"}],

    "functions": [
      "RenderbufferStorageMultisample",
    ],
  },

  {
    "GL":    null,
    "GLES":  [{"ext": "GL_CHROMIUM_map_sub"}],
    "WebGL": null,

    "functions": [
      "MapBufferSubData", "MapTexSubImage2D", "UnmapBufferSubData",
      "UnmapTexSubImage2D"
    ],
  },

  {
    "GL":    null,
    "GLES":  [{"ext": "GL_EXT_multisampled_render_to_texture"},
              {"ext": "GL_IMG_multisampled_render_to_texture"}],
    "WebGL": null,

    "functions": [
      "FramebufferTexture2DMultisample",
    ],
  },
  {
    "GL":    null,
    "GLES":  [{"ext": "GL_EXT_multisampled_render_to_texture"}],
    "WebGL": null,

    "hardcode_functions" : [
      {
        "ptr_name": "fRenderbufferStorageMultisampleES2EXT",
        "cast_name": "GrGLRenderbufferStorageMultisampleFn",
        "get_name": "glRenderbufferStorageMultisampleEXT",
      }
    ]
  },
  {
    "GL":    null,
    "GLES":  [{"ext": "GL_IMG_multisampled_render_to_texture"}],
    "WebGL": null,

    "hardcode_functions" : [
      {
        "ptr_name": "fRenderbufferStorageMultisampleES2EXT",
        "cast_name": "GrGLRenderbufferStorageMultisampleFn",
        "get_name": "glRenderbufferStorageMultisampleIMG",
      }
    ]
  },
  {
    "GL":    null,
    "GLES":  [{"ext": "GL_APPLE_framebuffer_multisample"}],
    "WebGL": null,

    "functions" : ["ResolveMultisampleFramebuffer"],
    "hardcode_functions" : [
      {
        "ptr_name": "fRenderbufferStorageMultisampleES2APPLE",
        "cast_name": "GrGLRenderbufferStorageMultisampleFn",
        "get_name": "glRenderbufferStorageMultisampleAPPLE",
      }
    ]
  },

    // There are several APIs for buffer mapping:
    // ES2 + GL_OES_mapbuffer: MapBufferOES and UnmapBufferOES
    // ES2 + GL_EXT_map_buffer_range: Adds MapBufferRangeEXT and FlushMappedBufferRangeEXT
    // ES3: MapBufferRange, FlushMappedBufferRange, and UnmapBuffer are core (so no suffix).
    //
    // MapBuffer is not part of ES3, but implementations may still report the OES versions of
    // MapBuffer and UnmapBuffer, per the older GL_OES_mapbuffer extension. Some implementations
    // let us mix the newer MapBufferRange with the older UnmapBufferOES, but we've hit others that
    // don't permit it. Note that in GrGLBuffer, we choose which API to use based on version and
    // extensions. This code is written so that we never mix OES and non-OES functions.
  {
    "GL":    [{"ext": "<core>"}],
    "GLES":  [{"ext": "GL_OES_mapbuffer"}],
    "WebGL": null,

    "functions": [
      "MapBuffer",
    ],
  },
  {
    "GL":    [{"ext": "<core>"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_OES_mapbuffer"}],
    "WebGL": null, // explicitly removed https://www.khronos.org/registry/webgl/specs/2.0/#5.14

    "functions": [
      "UnmapBuffer",
    ],
  },
  {
    "GL":    [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_map_buffer_range"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_EXT_map_buffer_range"}],
    "WebGL": null, // explicitly removed https://www.khronos.org/registry/webgl/specs/2.0/#5.14

    "functions": [
      // These functions are added to the 3.0 version of both GLES and GL.
      "MapBufferRange", "FlushMappedBufferRange",
    ],
  },

  {
    "GL":    [{"ext": "GL_EXT_debug_marker"}],
    "GLES":  [{"ext": "GL_EXT_debug_marker"}],
    "WebGL": null,

    "functions": [
      "InsertEventMarker", "PushGroupMarker", "PopGroupMarker"
    ],
  },

  {
    "GL":    [{"min_version": [3, 1], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_copy_buffer"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_NV_copy_buffer"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"},],

    "functions": ["CopyBufferSubData",],
  },

  {
    "GL":    [{"ext": "GL_NV_framebuffer_mixed_samples"}],
    "GLES":  [{"ext": "GL_CHROMIUM_framebuffer_mixed_samples"},
              {"ext": "GL_NV_framebuffer_mixed_samples"}],
    "WebGL": null,

    "functions": [
      "CoverageModulation",
    ],
  },

  {
    "GL":    [{"min_version": [4, 3], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_KHR_debug", "suffix": ""}],
    "GLES":  [{"ext": "GL_KHR_debug"}],
    "WebGL": null,

    // In OpenGL (but not ES), KHR_debug defines these methods to have no suffix.
    "functions": [
      "DebugMessageControl", "DebugMessageInsert", "DebugMessageCallback",
      "GetDebugMessageLog", "PushDebugGroup", "PopDebugGroup", "ObjectLabel",
    ],
  },

  {
    "GL":    null,
    "GLES":  [{"ext": "GL_CHROMIUM_bind_uniform_location"}],
    "WebGL": null,

    "functions": [
      "BindUniformLocation",
    ],
  },

  {
    "GL":    [{"ext": "GL_EXT_window_rectangles"}],
    "GLES":  [{"ext": "GL_EXT_window_rectangles"}],
    "WebGL": null,

    "functions": [
      "WindowRectangles",
    ],
  },

  {
    "GL":    [{"min_version": [3, 2], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_sync"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_APPLE_sync"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"}],

    "functions": [
      "ClientWaitSync", "DeleteSync", "FenceSync",
      "IsSync", "WaitSync"
    ],
  },

  {  // getInternalformativ was added in GL 4.2, ES 3.0, and with
     // extension ARB_internalformat_query
    "GL":    [{"min_version": [4, 2], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_internalformat_query"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"}],
    "WebGL": null,

    "functions": [
      "GetInternalformativ"
    ],
  },

  // GetProgramBinary and ProgramBinary are available with an ES2 extension...
  {
    "GL":    [{"min_version": [4, 1], "ext": "<core>"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_OES_get_program_binary"}],
    "WebGL": null, // explicitly not supported in WebGL 2.0

    "functions": [
      "GetProgramBinary", "ProgramBinary",
    ],
  },

  // ... but the related ProgramParameteri is only in ES3
  {
    "GL":    [{"min_version": [4, 1], "ext": "<core>"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"}],
    "WebGL": null, // explicitly not supported in WebGL 2.0

    "functions": [
      "ProgramParameteri",
    ],
  },

  {
    "GL":    [{"min_version": [3, 2], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_sampler_objects"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"}],
    "WebGL":  [{"min_version": [2, 0], "ext": "<core>"}],

    "functions": [
      "BindSampler", "DeleteSamplers", "GenSamplers",
      "SamplerParameterf", "SamplerParameteri", "SamplerParameteriv",
    ],
  },

  {
    "GL":    [{"ext": "<core>"}],
    "GLES":  null, // not in ES
    "WebGL": null,

    "functions": [
      "GetQueryObjectiv",
    ],
  },
  {
    "GL":    [{"ext": "<core>"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_EXT_occlusion_query_boolean"}],
    "WebGL": null,

    // We only use these in our test tools
    "test_functions": [
      "GenQueries", "DeleteQueries", "BeginQuery", "EndQuery",
      "GetQueryObjectuiv", "GetQueryiv",
    ]
  },
  {
    "GL":    [{"min_version": [3, 3], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_timer_query"},
              {/*    else if      */  "ext": "GL_EXT_timer_query"}],
    "GLES":  null,
    "WebGL": null,

    "functions": [
      "GetQueryObjecti64v", "GetQueryObjectui64v",
    ],
  },
  {
    "GL":    [{"min_version": [3, 3], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_timer_query"}],
    "GLES":  null,
    "WebGL": null,

    "functions": [
      "QueryCounter",
    ],
  },

  {
    "GL":    [{"min_version": [4, 3], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_invalidate_subdata"}],
    "GLES":  null,
    "WebGL": null,

    "functions": [
      "InvalidateBufferData", "InvalidateBufferSubData", "InvalidateTexImage",
      "InvalidateTexSubImage",
    ],
  },
  {  // ES 3.0 adds the framebuffer functions but not the others.
    "GL":    [{"min_version": [4, 3], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_invalidate_subdata"}],
    "GLES":  [{"min_version": [3, 0], "ext": "<core>"}],
    "WebGL": [{"min_version": [2, 0], "ext": "<core>"}],

    "functions": [
      "InvalidateFramebuffer", "InvalidateSubFramebuffer",
    ],
  },

  {
    "GL":    [{"min_version": [4, 3], "ext": "<core>"},
              {/*    else if      */  "ext": "GL_ARB_ES2_compatibility"}],
    "GLES":  [{"ext": "<core>"}],
    "WebGL": [{"ext": "<core>"}],

    "functions": [
      "GetShaderPrecisionFormat",
    ],
  },

  {
    "GL":    [{"ext": "GL_NV_fence"}],
    "GLES":  [{"ext": "GL_NV_fence"}],
    "WebGL": null,

    "functions": [
      "DeleteFences", "FinishFence", "GenFences", "SetFence", "TestFence",
    ],
  }
]
