# OpenGL 4.0 / GL_ARB_shader_subroutines. Mesa only exposes this
# extension with core profile.
- "GetSubroutineUniformLocation": exec_info(core=31),
- "GetSubroutineIndex": exec_info(core=31),
- "GetActiveSubroutineUniformiv": exec_info(core=31),
- "GetActiveSubroutineUniformName": exec_info(core=31),
- "GetActiveSubroutineName": exec_info(core=31),
- "UniformSubroutinesuiv": exec_info(core=31),
- "GetUniformSubroutineuiv": exec_info(core=31),
- "GetProgramStageiv": exec_info(core=31),
+ "GetSubroutineUniformLocation": exec_info(compatibility=31, core=31),
+ "GetSubroutineIndex": exec_info(compatibility=31, core=31),
+ "GetActiveSubroutineUniformiv": exec_info(compatibility=31, core=31),
+ "GetActiveSubroutineUniformName": exec_info(compatibility=31, core=31),
+ "GetActiveSubroutineName": exec_info(compatibility=31, core=31),
+ "UniformSubroutinesuiv": exec_info(compatibility=31, core=31),
+ "GetUniformSubroutineuiv": exec_info(compatibility=31, core=31),
+ "GetProgramStageiv": exec_info(compatibility=31, core=31),
# OpenGL 4.0 / GL_ARB_gpu_shader_fp64. The extension spec says:
#
EXT(ARB_shader_precision , ARB_shader_precision , GLL, GLC, x , x , 2010)
EXT(ARB_shader_stencil_export , ARB_shader_stencil_export , GLL, GLC, x , x , 2009)
EXT(ARB_shader_storage_buffer_object , ARB_shader_storage_buffer_object , GLL, GLC, x , x , 2012)
-EXT(ARB_shader_subroutine , dummy_true , x , GLC, x , x , 2010)
+EXT(ARB_shader_subroutine , dummy_true , 31, GLC, x , x , 2010)
EXT(ARB_shader_texture_image_samples , ARB_shader_texture_image_samples , GLL, GLC, x , x , 2014)
EXT(ARB_shader_texture_lod , ARB_shader_texture_lod , GLL, GLC, x , x , 2009)
EXT(ARB_shader_viewport_layer_array , ARB_shader_viewport_layer_array , x , GLC, x , x , 2015)
{ "glBlendFunci", 40, -1 },
{ "glBlendFuncSeparatei", 40, -1 },
+ { "glGetSubroutineUniformLocation", 40, -1 },
+ { "glGetSubroutineIndex", 40, -1 },
+ { "glGetActiveSubroutineUniformiv", 40, -1 },
+ { "glGetActiveSubroutineUniformName", 40, -1 },
+ { "glGetActiveSubroutineName", 40, -1 },
+ { "glUniformSubroutinesuiv", 40, -1 },
+ { "glGetUniformSubroutineuiv", 40, -1 },
+ { "glGetProgramStageiv", 40, -1 },
+
{ "glUniform1d", 40, -1 },
{ "glUniform2d", 40, -1 },
{ "glUniform3d", 40, -1 },
/* GL 3.2 */
{ "glFramebufferTexture", 32, -1 },
- /* GL 4.0 */
- { "glGetSubroutineUniformLocation", 40, -1 },
- { "glGetSubroutineIndex", 40, -1 },
- { "glGetActiveSubroutineUniformiv", 40, -1 },
- { "glGetActiveSubroutineUniformName", 40, -1 },
- { "glGetActiveSubroutineName", 40, -1 },
- { "glUniformSubroutinesuiv", 40, -1 },
- { "glGetUniformSubroutineuiv", 40, -1 },
- { "glGetProgramStageiv", 40, -1 },
-
/* GL 4.3 */
{ "glIsRenderbuffer", 43, -1 },
{ "glBindRenderbuffer", 43, -1 },