101e04c3fSmrg# Copyright (C) 2015 Intel Corporation 201e04c3fSmrg# 301e04c3fSmrg# Permission is hereby granted, free of charge, to any person obtaining a 401e04c3fSmrg# copy of this software and associated documentation files (the "Software"), 501e04c3fSmrg# to deal in the Software without restriction, including without limitation 601e04c3fSmrg# the rights to use, copy, modify, merge, publish, distribute, sublicense, 701e04c3fSmrg# and/or sell copies of the Software, and to permit persons to whom the 801e04c3fSmrg# Software is furnished to do so, subject to the following conditions: 901e04c3fSmrg# 1001e04c3fSmrg# The above copyright notice and this permission notice (including the next 1101e04c3fSmrg# paragraph) shall be included in all copies or substantial portions of the 1201e04c3fSmrg# Software. 1301e04c3fSmrg# 1401e04c3fSmrg# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1501e04c3fSmrg# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1601e04c3fSmrg# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 1701e04c3fSmrg# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1801e04c3fSmrg# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 1901e04c3fSmrg# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 2001e04c3fSmrg# IN THE SOFTWARE. 2101e04c3fSmrg 2201e04c3fSmrgclass exec_info(): 2301e04c3fSmrg """Information relating GL APIs to a function. 2401e04c3fSmrg 2501e04c3fSmrg Each of the four attributes of this class, compatibility, core, es1, and 2601e04c3fSmrg es2, specify the minimum API version where a function can possibly exist 2701e04c3fSmrg in Mesa. The version is specified as an integer of (real GL version * 2801e04c3fSmrg 10). For example, glCreateProgram was added in OpenGL 2.0, so 2901e04c3fSmrg compatibility=20 and core=31. 3001e04c3fSmrg 3101e04c3fSmrg If the attribute is None, then it cannot be supported by that 3201e04c3fSmrg API. For example, glNewList was removed from core profiles, so 3301e04c3fSmrg compatibility=10 and core=None. 3401e04c3fSmrg 3501e04c3fSmrg Each of the attributes that is not None must have a valid value. The 3601e04c3fSmrg valid ranges are: 3701e04c3fSmrg 3801e04c3fSmrg compatibility: [10, ) 3901e04c3fSmrg core: [31, ) 4001e04c3fSmrg es1: [10, 11] 4101e04c3fSmrg es2: [20, ) 4201e04c3fSmrg 4301e04c3fSmrg These ranges are enforced by the constructor. 4401e04c3fSmrg """ 4501e04c3fSmrg def __init__(self, compatibility=None, core=None, es1=None, es2=None): 4601e04c3fSmrg if compatibility is not None: 4701e04c3fSmrg assert isinstance(compatibility, int) 4801e04c3fSmrg assert compatibility >= 10 4901e04c3fSmrg 5001e04c3fSmrg if core is not None: 5101e04c3fSmrg assert isinstance(core, int) 5201e04c3fSmrg assert core >= 31 5301e04c3fSmrg 5401e04c3fSmrg if es1 is not None: 5501e04c3fSmrg assert isinstance(es1, int) 5601e04c3fSmrg assert es1 == 10 or es1 == 11 5701e04c3fSmrg 5801e04c3fSmrg if es2 is not None: 5901e04c3fSmrg assert isinstance(es2, int) 6001e04c3fSmrg assert es2 >= 20 6101e04c3fSmrg 6201e04c3fSmrg self.compatibility = compatibility 6301e04c3fSmrg self.core = core 6401e04c3fSmrg self.es1 = es1 6501e04c3fSmrg self.es2 = es2 6601e04c3fSmrg 6701e04c3fSmrgfunctions = { 6801e04c3fSmrg # OpenGL 3.1 / GL_ARB_texture_buffer_object. 6901e04c3fSmrg "TexBuffer": exec_info(compatibility=20, core=31, es2=31), 7001e04c3fSmrg 7101e04c3fSmrg # OpenGL 3.2 / GL_OES_geometry_shader. 7201e04c3fSmrg "FramebufferTexture": exec_info(compatibility=32, core=32, es2=31), 7301e04c3fSmrg 7401e04c3fSmrg # OpenGL 4.0 / GL_ARB_shader_subroutines. Mesa only exposes this 7501e04c3fSmrg # extension with core profile. 7601e04c3fSmrg "GetSubroutineUniformLocation": exec_info(compatibility=31, core=31), 7701e04c3fSmrg "GetSubroutineIndex": exec_info(compatibility=31, core=31), 7801e04c3fSmrg "GetActiveSubroutineUniformiv": exec_info(compatibility=31, core=31), 7901e04c3fSmrg "GetActiveSubroutineUniformName": exec_info(compatibility=31, core=31), 8001e04c3fSmrg "GetActiveSubroutineName": exec_info(compatibility=31, core=31), 8101e04c3fSmrg "UniformSubroutinesuiv": exec_info(compatibility=31, core=31), 8201e04c3fSmrg "GetUniformSubroutineuiv": exec_info(compatibility=31, core=31), 8301e04c3fSmrg "GetProgramStageiv": exec_info(compatibility=31, core=31), 8401e04c3fSmrg 8501e04c3fSmrg # OpenGL 4.0 / GL_ARB_gpu_shader_fp64. The extension spec says: 8601e04c3fSmrg # 8701e04c3fSmrg # "OpenGL 3.2 and GLSL 1.50 are required." 8801e04c3fSmrg "Uniform1d": exec_info(compatibility=32, core=32), 8901e04c3fSmrg "Uniform2d": exec_info(compatibility=32, core=32), 9001e04c3fSmrg "Uniform3d": exec_info(compatibility=32, core=32), 9101e04c3fSmrg "Uniform4d": exec_info(compatibility=32, core=32), 9201e04c3fSmrg "Uniform1dv": exec_info(compatibility=32, core=32), 9301e04c3fSmrg "Uniform2dv": exec_info(compatibility=32, core=32), 9401e04c3fSmrg "Uniform3dv": exec_info(compatibility=32, core=32), 9501e04c3fSmrg "Uniform4dv": exec_info(compatibility=32, core=32), 9601e04c3fSmrg "UniformMatrix2dv": exec_info(compatibility=32, core=32), 9701e04c3fSmrg "UniformMatrix3dv": exec_info(compatibility=32, core=32), 9801e04c3fSmrg "UniformMatrix4dv": exec_info(compatibility=32, core=32), 9901e04c3fSmrg "UniformMatrix2x3dv": exec_info(compatibility=32,core=32), 10001e04c3fSmrg "UniformMatrix2x4dv": exec_info(compatibility=32, core=32), 10101e04c3fSmrg "UniformMatrix3x2dv": exec_info(compatibility=32, core=32), 10201e04c3fSmrg "UniformMatrix3x4dv": exec_info(compatibility=32, core=32), 10301e04c3fSmrg "UniformMatrix4x2dv": exec_info(compatibility=32, core=32), 10401e04c3fSmrg "UniformMatrix4x3dv": exec_info(compatibility=32, core=32), 10501e04c3fSmrg "GetUniformdv": exec_info(compatibility=32, core=32), 10601e04c3fSmrg 10701e04c3fSmrg # OpenGL 4.1 / GL_ARB_vertex_attrib_64bit. The extension spec says: 10801e04c3fSmrg # 10901e04c3fSmrg # "OpenGL 3.0 and GLSL 1.30 are required. 11001e04c3fSmrg # 11101e04c3fSmrg # ARB_gpu_shader_fp64 (or equivalent functionality) is required." 11201e04c3fSmrg # 11301e04c3fSmrg # For Mesa this effectively means OpenGL 3.2 is required. It seems 11401e04c3fSmrg # unlikely that Mesa will ever get support for any of the NV extensions 11501e04c3fSmrg # that add "equivalent functionality." 11601e04c3fSmrg "VertexAttribL1d": exec_info(compatibility=32, core=32), 11701e04c3fSmrg "VertexAttribL2d": exec_info(compatibility=32, core=32), 11801e04c3fSmrg "VertexAttribL3d": exec_info(compatibility=32, core=32), 11901e04c3fSmrg "VertexAttribL4d": exec_info(compatibility=32, core=32), 12001e04c3fSmrg "VertexAttribL1dv": exec_info(compatibility=32, core=32), 12101e04c3fSmrg "VertexAttribL2dv": exec_info(compatibility=32, core=32), 12201e04c3fSmrg "VertexAttribL3dv": exec_info(compatibility=32, core=32), 12301e04c3fSmrg "VertexAttribL4dv": exec_info(compatibility=32, core=32), 12401e04c3fSmrg "VertexAttribLPointer": exec_info(compatibility=32, core=32), 12501e04c3fSmrg "GetVertexAttribLdv": exec_info(compatibility=32, core=32), 12601e04c3fSmrg 12701e04c3fSmrg # OpenGL 4.1 / GL_ARB_viewport_array. The extension spec says: 12801e04c3fSmrg # 12901e04c3fSmrg # "OpenGL 3.2 or the EXT_geometry_shader4 or ARB_geometry_shader4 13001e04c3fSmrg # extensions are required." 13101e04c3fSmrg # 13201e04c3fSmrg # Mesa does not support either of the geometry shader extensions, so 13301e04c3fSmrg # OpenGL 3.2 is required. 13401e04c3fSmrg "ViewportArrayv": exec_info(compatibility=32, core=32, es2=31), 13501e04c3fSmrg "ViewportIndexedf": exec_info(compatibility=32, core=32, es2=31), 13601e04c3fSmrg "ViewportIndexedfv": exec_info(compatibility=32, core=32, es2=31), 13701e04c3fSmrg "ScissorArrayv": exec_info(compatibility=32, core=32, es2=31), 13801e04c3fSmrg "ScissorIndexed": exec_info(compatibility=32, core=32, es2=31), 13901e04c3fSmrg "ScissorIndexedv": exec_info(compatibility=32, core=32, es2=31), 14001e04c3fSmrg "DepthRangeArrayv": exec_info(compatibility=32, core=32), 14101e04c3fSmrg "DepthRangeIndexed": exec_info(compatibility=32, core=32), 14201e04c3fSmrg # GetFloati_v also GL_ARB_shader_atomic_counters 14301e04c3fSmrg # GetDoublei_v also GL_ARB_shader_atomic_counters 14401e04c3fSmrg 14501e04c3fSmrg # OpenGL 4.3 / GL_ARB_texture_buffer_range. 14601e04c3fSmrg "TexBufferRange": exec_info(compatibility=20, core=31, es2=31), 14701e04c3fSmrg 14801e04c3fSmrg # OpenGL 4.3 / GL_ARB_framebuffer_no_attachments. Mesa can expose the 14901e04c3fSmrg # extension with OpenGL 3.0. 15001e04c3fSmrg "FramebufferParameteri": exec_info(compatibility=30, core=31, es2=31), 1517ec681f3Smrg "GetFramebufferParameteriv": exec_info(compatibility=30, core=31, es2=31), 1527ec681f3Smrg 1537ec681f3Smrg # OpenGL 4.3 / GL_MESA_framebuffer_flip_y. 1547ec681f3Smrg "FramebufferParameteriMESA": exec_info(core=31, es2=30), 1557ec681f3Smrg "GetFramebufferParameterivMESA": exec_info(core=31, es2=30), 15601e04c3fSmrg 15701e04c3fSmrg # OpenGL 4.5 / GL_ARB_direct_state_access. Mesa can expose the extension 15801e04c3fSmrg # with core profile. 15901e04c3fSmrg "CreateTransformFeedbacks": exec_info(compatibility=31, core=31), 16001e04c3fSmrg "TransformFeedbackBufferBase": exec_info(compatibility=31, core=31), 16101e04c3fSmrg "TransformFeedbackBufferRange": exec_info(compatibility=31, core=31), 16201e04c3fSmrg "GetTransformFeedbackiv": exec_info(compatibility=31, core=31), 16301e04c3fSmrg "GetTransformFeedbacki_v": exec_info(compatibility=31, core=31), 16401e04c3fSmrg "GetTransformFeedbacki64_v": exec_info(compatibility=31, core=31), 16501e04c3fSmrg "CreateBuffers": exec_info(compatibility=31, core=31), 16601e04c3fSmrg "NamedBufferStorage": exec_info(compatibility=31, core=31), 16701e04c3fSmrg "NamedBufferData": exec_info(compatibility=31, core=31), 16801e04c3fSmrg "NamedBufferSubData": exec_info(compatibility=31, core=31), 16901e04c3fSmrg "CopyNamedBufferSubData": exec_info(compatibility=31, core=31), 17001e04c3fSmrg "ClearNamedBufferData": exec_info(compatibility=31, core=31), 17101e04c3fSmrg "ClearNamedBufferSubData": exec_info(compatibility=31, core=31), 17201e04c3fSmrg "MapNamedBuffer": exec_info(compatibility=31, core=31), 17301e04c3fSmrg "MapNamedBufferRange": exec_info(compatibility=31, core=31), 17401e04c3fSmrg "UnmapNamedBuffer": exec_info(compatibility=31, core=31), 17501e04c3fSmrg "FlushMappedNamedBufferRange": exec_info(compatibility=31, core=31), 17601e04c3fSmrg "GetNamedBufferParameteriv": exec_info(compatibility=31, core=31), 17701e04c3fSmrg "GetNamedBufferParameteri64v": exec_info(compatibility=31, core=31), 17801e04c3fSmrg "GetNamedBufferPointerv": exec_info(compatibility=31, core=31), 17901e04c3fSmrg "GetNamedBufferSubData": exec_info(compatibility=31, core=31), 18001e04c3fSmrg "CreateFramebuffers": exec_info(compatibility=31, core=31), 18101e04c3fSmrg "NamedFramebufferRenderbuffer": exec_info(compatibility=31, core=31), 18201e04c3fSmrg "NamedFramebufferParameteri": exec_info(compatibility=31, core=31), 18301e04c3fSmrg "NamedFramebufferTexture": exec_info(compatibility=31, core=31), 18401e04c3fSmrg "NamedFramebufferTextureLayer": exec_info(compatibility=31, core=31), 18501e04c3fSmrg "NamedFramebufferDrawBuffer": exec_info(compatibility=31, core=31), 18601e04c3fSmrg "NamedFramebufferDrawBuffers": exec_info(compatibility=31, core=31), 18701e04c3fSmrg "NamedFramebufferReadBuffer": exec_info(compatibility=31, core=31), 18801e04c3fSmrg "InvalidateNamedFramebufferData": exec_info(compatibility=31, core=31), 18901e04c3fSmrg "InvalidateNamedFramebufferSubData": exec_info(compatibility=31, core=31), 19001e04c3fSmrg "ClearNamedFramebufferiv": exec_info(compatibility=31, core=31), 19101e04c3fSmrg "ClearNamedFramebufferuiv": exec_info(compatibility=31, core=31), 19201e04c3fSmrg "ClearNamedFramebufferfv": exec_info(compatibility=31, core=31), 19301e04c3fSmrg "ClearNamedFramebufferfi": exec_info(compatibility=31, core=31), 19401e04c3fSmrg "BlitNamedFramebuffer": exec_info(compatibility=31, core=31), 19501e04c3fSmrg "CheckNamedFramebufferStatus": exec_info(compatibility=31, core=31), 19601e04c3fSmrg "GetNamedFramebufferParameteriv": exec_info(compatibility=31, core=31), 19701e04c3fSmrg "GetNamedFramebufferAttachmentParameteriv": exec_info(compatibility=31, core=31), 19801e04c3fSmrg "CreateRenderbuffers": exec_info(compatibility=31, core=31), 19901e04c3fSmrg "NamedRenderbufferStorage": exec_info(compatibility=31, core=31), 20001e04c3fSmrg "NamedRenderbufferStorageMultisample": exec_info(compatibility=31, core=31), 20101e04c3fSmrg "GetNamedRenderbufferParameteriv": exec_info(compatibility=31, core=31), 20201e04c3fSmrg "CreateTextures": exec_info(compatibility=31, core=31), 20301e04c3fSmrg "TextureBuffer": exec_info(compatibility=31, core=31), 20401e04c3fSmrg "TextureBufferRange": exec_info(compatibility=31, core=31), 20501e04c3fSmrg "TextureStorage1D": exec_info(compatibility=31, core=31), 20601e04c3fSmrg "TextureStorage2D": exec_info(compatibility=31, core=31), 20701e04c3fSmrg "TextureStorage3D": exec_info(compatibility=31, core=31), 20801e04c3fSmrg "TextureStorage2DMultisample": exec_info(compatibility=31, core=31), 20901e04c3fSmrg "TextureStorage3DMultisample": exec_info(compatibility=31, core=31), 21001e04c3fSmrg "TextureSubImage1D": exec_info(compatibility=31, core=31), 21101e04c3fSmrg "TextureSubImage2D": exec_info(compatibility=31, core=31), 21201e04c3fSmrg "TextureSubImage3D": exec_info(compatibility=31, core=31), 21301e04c3fSmrg "CompressedTextureSubImage1D": exec_info(compatibility=31, core=31), 21401e04c3fSmrg "CompressedTextureSubImage2D": exec_info(compatibility=31, core=31), 21501e04c3fSmrg "CompressedTextureSubImage3D": exec_info(compatibility=31, core=31), 21601e04c3fSmrg "CopyTextureSubImage1D": exec_info(compatibility=31, core=31), 21701e04c3fSmrg "CopyTextureSubImage2D": exec_info(compatibility=31, core=31), 21801e04c3fSmrg "CopyTextureSubImage3D": exec_info(compatibility=31, core=31), 21901e04c3fSmrg "TextureParameterf": exec_info(compatibility=31, core=31), 22001e04c3fSmrg "TextureParameterfv": exec_info(compatibility=31, core=31), 22101e04c3fSmrg "TextureParameteri": exec_info(compatibility=31, core=31), 22201e04c3fSmrg "TextureParameterIiv": exec_info(compatibility=31, core=31), 22301e04c3fSmrg "TextureParameterIuiv": exec_info(compatibility=31, core=31), 22401e04c3fSmrg "TextureParameteriv": exec_info(compatibility=31, core=31), 22501e04c3fSmrg "GenerateTextureMipmap": exec_info(compatibility=31, core=31), 22601e04c3fSmrg "BindTextureUnit": exec_info(compatibility=31, core=31), 22701e04c3fSmrg "GetTextureImage": exec_info(compatibility=31, core=31), 22801e04c3fSmrg "GetCompressedTextureImage": exec_info(compatibility=31, core=31), 22901e04c3fSmrg "GetTextureLevelParameterfv": exec_info(compatibility=31, core=31), 23001e04c3fSmrg "GetTextureLevelParameteriv": exec_info(compatibility=31, core=31), 23101e04c3fSmrg "GetTextureParameterfv": exec_info(compatibility=31, core=31), 23201e04c3fSmrg "GetTextureParameterIiv": exec_info(compatibility=31, core=31), 23301e04c3fSmrg "GetTextureParameterIuiv": exec_info(compatibility=31, core=31), 23401e04c3fSmrg "GetTextureParameteriv": exec_info(compatibility=31, core=31), 23501e04c3fSmrg "CreateVertexArrays": exec_info(compatibility=31, core=31), 23601e04c3fSmrg "DisableVertexArrayAttrib": exec_info(compatibility=31, core=31), 23701e04c3fSmrg "EnableVertexArrayAttrib": exec_info(compatibility=31, core=31), 23801e04c3fSmrg "VertexArrayElementBuffer": exec_info(compatibility=31, core=31), 23901e04c3fSmrg "VertexArrayVertexBuffer": exec_info(compatibility=31, core=31), 24001e04c3fSmrg "VertexArrayVertexBuffers": exec_info(compatibility=31, core=31), 24101e04c3fSmrg "VertexArrayAttribFormat": exec_info(compatibility=31, core=31), 24201e04c3fSmrg "VertexArrayAttribIFormat": exec_info(compatibility=31, core=31), 24301e04c3fSmrg "VertexArrayAttribLFormat": exec_info(compatibility=31, core=31), 24401e04c3fSmrg "VertexArrayAttribBinding": exec_info(compatibility=31, core=31), 24501e04c3fSmrg "VertexArrayBindingDivisor": exec_info(compatibility=31, core=31), 24601e04c3fSmrg "GetVertexArrayiv": exec_info(compatibility=31, core=31), 24701e04c3fSmrg "GetVertexArrayIndexediv": exec_info(compatibility=31, core=31), 24801e04c3fSmrg "GetVertexArrayIndexed64iv": exec_info(compatibility=31, core=31), 24901e04c3fSmrg "CreateSamplers": exec_info(compatibility=31, core=31), 25001e04c3fSmrg "CreateProgramPipelines": exec_info(compatibility=31, core=31), 25101e04c3fSmrg "CreateQueries": exec_info(compatibility=31, core=31), 25201e04c3fSmrg "GetQueryBufferObjectiv": exec_info(compatibility=31, core=31), 25301e04c3fSmrg "GetQueryBufferObjectuiv": exec_info(compatibility=31, core=31), 25401e04c3fSmrg "GetQueryBufferObjecti64v": exec_info(compatibility=31, core=31), 25501e04c3fSmrg "GetQueryBufferObjectui64v": exec_info(compatibility=31, core=31), 25601e04c3fSmrg 2577ec681f3Smrg # GL_ARB_gpu_shader_int64 - nominally requires OpenGL 4.0 2587ec681f3Smrg "Uniform1i64ARB": exec_info(compatibility=40, core=31), 2597ec681f3Smrg "Uniform2i64ARB": exec_info(compatibility=40, core=31), 2607ec681f3Smrg "Uniform3i64ARB": exec_info(compatibility=40, core=31), 2617ec681f3Smrg "Uniform4i64ARB": exec_info(compatibility=40, core=31), 2627ec681f3Smrg "Uniform1i64vARB": exec_info(compatibility=40, core=31), 2637ec681f3Smrg "Uniform2i64vARB": exec_info(compatibility=40, core=31), 2647ec681f3Smrg "Uniform3i64vARB": exec_info(compatibility=40, core=31), 2657ec681f3Smrg "Uniform4i64vARB": exec_info(compatibility=40, core=31), 2667ec681f3Smrg "Uniform1ui64ARB": exec_info(compatibility=40, core=31), 2677ec681f3Smrg "Uniform2ui64ARB": exec_info(compatibility=40, core=31), 2687ec681f3Smrg "Uniform3ui64ARB": exec_info(compatibility=40, core=31), 2697ec681f3Smrg "Uniform4ui64ARB": exec_info(compatibility=40, core=31), 2707ec681f3Smrg "Uniform1ui64vARB": exec_info(compatibility=40, core=31), 2717ec681f3Smrg "Uniform2ui64vARB": exec_info(compatibility=40, core=31), 2727ec681f3Smrg "Uniform3ui64vARB": exec_info(compatibility=40, core=31), 2737ec681f3Smrg "Uniform4ui64vARB": exec_info(compatibility=40, core=31), 2747ec681f3Smrg "GetUniformi64vARB": exec_info(compatibility=40, core=31), 2757ec681f3Smrg "GetUniformui64vARB": exec_info(compatibility=40, core=31), 2767ec681f3Smrg "GetnUniformi64vARB": exec_info(compatibility=40, core=31), 2777ec681f3Smrg "GetnUniformui64vARB": exec_info(compatibility=40, core=31), 2787ec681f3Smrg "ProgramUniform1i64ARB": exec_info(compatibility=40, core=31), 2797ec681f3Smrg "ProgramUniform2i64ARB": exec_info(compatibility=40, core=31), 2807ec681f3Smrg "ProgramUniform3i64ARB": exec_info(compatibility=40, core=31), 2817ec681f3Smrg "ProgramUniform4i64ARB": exec_info(compatibility=40, core=31), 2827ec681f3Smrg "ProgramUniform1i64vARB": exec_info(compatibility=40, core=31), 2837ec681f3Smrg "ProgramUniform2i64vARB": exec_info(compatibility=40, core=31), 2847ec681f3Smrg "ProgramUniform3i64vARB": exec_info(compatibility=40, core=31), 2857ec681f3Smrg "ProgramUniform4i64vARB": exec_info(compatibility=40, core=31), 2867ec681f3Smrg "ProgramUniform1ui64ARB": exec_info(compatibility=40, core=31), 2877ec681f3Smrg "ProgramUniform2ui64ARB": exec_info(compatibility=40, core=31), 2887ec681f3Smrg "ProgramUniform3ui64ARB": exec_info(compatibility=40, core=31), 2897ec681f3Smrg "ProgramUniform4ui64ARB": exec_info(compatibility=40, core=31), 2907ec681f3Smrg "ProgramUniform1ui64vARB": exec_info(compatibility=40, core=31), 2917ec681f3Smrg "ProgramUniform2ui64vARB": exec_info(compatibility=40, core=31), 2927ec681f3Smrg "ProgramUniform3ui64vARB": exec_info(compatibility=40, core=31), 2937ec681f3Smrg "ProgramUniform4ui64vARB": exec_info(compatibility=40, core=31), 29401e04c3fSmrg 29501e04c3fSmrg # GL_ARB_bindless_texture 29601e04c3fSmrg "GetVertexAttribLui64vARB": exec_info(compatibility=30, core=31), 29701e04c3fSmrg} 298