[
{
"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",
"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": [{"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": [{"ext": "<core>"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_OES_vertex_array_object"}],
"WebGL": [{"min_version": [2, 0], "ext": "<core>"},
{ "ext": "GL_OES_vertex_array_object"},
{ "ext": "OES_vertex_array_object"}],
"functions": [
"BindVertexArray", "DeleteVertexArrays", "GenVertexArrays",
],
},
{
"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>"},
{ "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>"},
{ "ext": "GL_ARB_clear_texture"}],
"GLES": [{"ext": "GL_EXT_clear_texture", "suffix": "EXT"}],
"WebGL": null,
"functions": [
"ClearTexImage", "ClearTexSubImage",
],
"optional": [
"ClearTexImage", "ClearTexSubImage",
]
},
{
"GL": [{"min_version": [3, 1], "ext": "<core>"},
{ "ext": "GL_ARB_draw_instanced"},
{ "ext": "GL_EXT_draw_instanced"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_EXT_draw_instanced"}],
"WebGL": [{"min_version": [2, 0], "ext": "<core>"}],
"functions": [
"DrawArraysInstanced", "DrawElementsInstanced",
]
},
{
"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>"},
{ "ext": "GL_ARB_draw_indirect"}],
"GLES": [{"min_version": [3, 1], "ext": "<core>"}],
"WebGL": null,
"functions": [
"DrawArraysIndirect", "DrawElementsIndirect",
]
},
{
"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>"},
{ "ext": "GL_ARB_texture_multisample"}],
"GLES": [{"min_version": [3, 1], "ext": "<core>"}],
"WebGL": null,
"functions": [
"GetMultisamplefv",
]
},
{
"GL": [{"ext": "<core>"}],
"GLES": [{"min_version": [3, 1], "ext": "<core>"}],
"WebGL": null,
"functions": [
"GetTexLevelParameteriv",
]
},
{
"GL": [{"min_version": [4, 3], "ext": "<core>"},
{ "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>"},
{ "ext": "GL_OES_texture_buffer"},
{ "ext": "GL_EXT_texture_buffer"}],
"WebGL": null,
"functions": [
"TexBuffer",
]
},
{
"GL": [{"min_version": [4, 3], "ext": "<core>"}],
"GLES": [{"min_version": [3, 2], "ext": "<core>"},
{ "ext": "GL_OES_texture_buffer"},
{ "ext": "GL_EXT_texture_buffer"}],
"WebGL": null,
"functions": [
"TexBufferRange",
]
},
{
"GL": [{"min_version": [4, 2], "ext": "<core>"},
{ "ext": "GL_ARB_texture_storage"},
{ "ext": "GL_EXT_texture_storage"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_EXT_texture_storage"}],
"WebGL": [{"min_version": [2, 0], "ext": "<core>"}],
"functions": [
"TexStorage2D",
]
},
{
"GL": [{"min_version": [4, 5], "ext": "<core>"},
{ "ext": "GL_ARB_texture_barrier"},
{ "ext": "GL_NV_texture_barrier"}],
"GLES": [{"ext": "GL_NV_texture_barrier"}],
"WebGL": null,
"functions": [
"TextureBarrier",
]
},
{
"GL": null,
"GLES": [{"ext": "GL_EXT_discard_framebuffer"}],
"WebGL": null,
"functions": [
"DiscardFramebuffer",
]
},
{
"GL": [{"min_version": [3, 2], "ext": "<core>"},
{ "ext": "GL_ARB_instanced_arrays"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_EXT_instanced_arrays"}],
"WebGL": null,
"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",
]
},
{
"GL": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_ARB_framebuffer_object"},
{ "ext": "GL_EXT_framebuffer_object"}],
"GLES": [{"ext": "<core>"}],
"WebGL": [{"ext": "<core>"}],
"functions": [
"BindFramebuffer", "BindRenderbuffer", "CheckFramebufferStatus",
"DeleteFramebuffers", "DeleteRenderbuffers", "FramebufferRenderbuffer",
"FramebufferTexture2D", "GenFramebuffers", "GenRenderbuffers", "GenerateMipmap",
"GetFramebufferAttachmentParameteriv", "GetRenderbufferParameteriv",
"RenderbufferStorage",
],
},
{
"GL": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_ARB_framebuffer_object"},
{ "ext": "GL_EXT_framebuffer_blit"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_CHROMIUM_framebuffer_multisample"},
{ "ext": "GL_ANGLE_framebuffer_blit"}],
"functions": [
"BlitFramebuffer",
],
},
{
"GL": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_ARB_framebuffer_object"},
{ "ext": "GL_EXT_framebuffer_multisample"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_CHROMIUM_framebuffer_multisample"},
{ "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",
}
]
},
{
"GL": [{"ext": "<core>"}],
"GLES": [{"ext": "GL_OES_mapbuffer"}],
"WebGL": null,
"functions": [
"MapBuffer",
],
},
{
"GL": [{"ext": "<core>"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_OES_mapbuffer"}],
"WebGL": null,
"functions": [
"UnmapBuffer",
],
},
{
"GL": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_ARB_map_buffer_range"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_EXT_map_buffer_range"}],
"WebGL": null,
"functions": [
"MapBufferRange", "FlushMappedBufferRange",
],
},
{
"GL": [{"ext": "GL_EXT_debug_marker"}],
"GLES": [{"ext": "GL_EXT_debug_marker"}],
"WebGL": null,
"functions": [
"InsertEventMarker", "PushGroupMarker", "PopGroupMarker"
],
},
{
"GL": [{"min_version": [4, 3], "ext": "<core>"},
{ "ext": "GL_ARB_program_interface_query"}],
"GLES": [{"min_version": [3, 1], "ext": "<core>"}],
"WebGL": null,
"functions": [
"GetProgramResourceLocation",
],
},
{
"GL": [{"ext": "GL_NV_path_rendering", "suffix": "EXT"}],
"GLES": [{"ext": "GL_CHROMIUM_path_rendering"},
{"ext": "GL_NV_path_rendering", "suffix": "EXT"}],
"WebGL": null,
"functions": [
"MatrixLoadIdentity", "MatrixLoadf"
],
},
{
"GL": [{"ext": "GL_NV_path_rendering"}],
"GLES": [{"ext": "GL_CHROMIUM_path_rendering"},
{"ext": "GL_NV_path_rendering"}],
"WebGL": null,
"functions": [
"CoverFillPath", "CoverFillPathInstanced", "CoverStrokePath",
"CoverStrokePathInstanced", "DeletePaths", "GenPaths",
"IsPath", "PathCommands", "PathParameterf", "PathParameteri",
"PathStencilFunc", "ProgramPathFragmentInputGen", "StencilFillPath",
"StencilFillPathInstanced", "StencilStrokePath", "StencilStrokePathInstanced",
"StencilThenCoverFillPath", "StencilThenCoverFillPathInstanced",
"StencilThenCoverStrokePath", "StencilThenCoverStrokePathInstanced",
],
"optional": [
"ProgramPathFragmentInputGen", "StencilThenCoverFillPath",
"StencilThenCoverFillPathInstanced", "StencilThenCoverStrokePath",
"StencilThenCoverStrokePathInstanced",
],
},
{
"GL": null,
"GLES": [{"ext": "GL_CHROMIUM_path_rendering"}],
"WebGL": null,
"functions": [
"BindFragmentInputLocation",
],
},
{
"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>"},
{ "ext": "GL_KHR_debug", "suffix": ""}],
"GLES": [{"ext": "GL_KHR_debug"}],
"WebGL": null,
"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>"},
{ "ext": "GL_ARB_sync"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_APPLE_sync"}],
"WebGL": [{"min_version": [2, 0], "ext": "<core>"}],
"functions": [
"ClientWaitSync", "DeleteSync", "FenceSync",
"IsSync", "WaitSync"
],
},
{
"GL": [{"min_version": [4, 2], "ext": "<core>"},
{ "ext": "GL_ARB_internalformat_query"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"}],
"WebGL": null,
"functions": [
"GetInternalformativ"
],
},
{
"GL": [{"min_version": [4, 1], "ext": "<core>"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_OES_get_program_binary"}],
"WebGL": null,
"functions": [
"GetProgramBinary", "ProgramBinary",
],
},
{
"GL": [{"min_version": [4, 1], "ext": "<core>"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"}],
"WebGL": null,
"functions": [
"ProgramParameteri",
],
},
{
"GL": [{"min_version": [3, 2], "ext": "<core>"},
{ "ext": "GL_ARB_sampler_objects"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"}],
"WebGL": [{"min_version": [2, 0], "ext": "<core>"}],
"functions": [
"BindSampler", "DeleteSamplers", "GenSamplers",
"SamplerParameteri", "SamplerParameteriv",
],
},
{
"GL": [{"ext": "<core>"}],
"GLES": null,
"WebGL": null,
"functions": [
"GetQueryObjectiv",
],
},
{
"GL": [{"ext": "<core>"}],
"GLES": [{"min_version": [3, 0], "ext": "<core>"},
{ "ext": "GL_EXT_occlusion_query_boolean"}],
"WebGL": null,
"test_functions": [
"GenQueries", "DeleteQueries", "BeginQuery", "EndQuery",
"GetQueryObjectuiv", "GetQueryiv",
]
},
{
"GL": [{"min_version": [3, 3], "ext": "<core>"},
{ "ext": "GL_ARB_timer_query"},
{ "ext": "GL_EXT_timer_query"}],
"GLES": null,
"WebGL": null,
"functions": [
"GetQueryObjecti64v", "GetQueryObjectui64v",
],
},
{
"GL": [{"min_version": [3, 3], "ext": "<core>"},
{ "ext": "GL_ARB_timer_query"}],
"GLES": null,
"WebGL": null,
"functions": [
"QueryCounter",
],
},
{
"GL": [{"min_version": [4, 3], "ext": "<core>"},
{ "ext": "GL_ARB_invalidate_subdata"}],
"GLES": null,
"WebGL": null,
"functions": [
"InvalidateBufferData", "InvalidateBufferSubData", "InvalidateTexImage",
"InvalidateTexSubImage",
],
},
{
"GL": [{"min_version": [4, 3], "ext": "<core>"},
{ "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>"},
{ "ext": "GL_ARB_ES2_compatibility"}],
"GLES": [{"ext": "<core>"}],
"WebGL": [{"ext": "<core>"}],
"functions": [
"GetShaderPrecisionFormat",
],
},
]