Bugzilla – Bug 277
ProgramParameteri function is invalid
Last modified: 2010-08-09 05:06:18 CDT
Both gl.spec[1] and glext.h[2] list ProgramParameteri as a core 3.2 function. This is incorrect: this function is part of ARB_geometry_shader4[3], which is has not been promoted to core (its functionality has been folded into GLSL 1.5 geometry shaders instead) and the PDF spec holds no mention of it. To be more specific, the .spec and .h files list 3 version of this function: ProgramParameteri ProgramParameteriARB ProgramParameteriEXT The last two are valid (and exposed in drivers(*)) but the first is invalid (and not exposed in drivers). For this reason, ProgramParameteri should probably be removed from the .spec and .h files. Impact of the issue is minor, but it does confuse developers and introduces a certain amount of support overhead[4][5]. (*) tested on Nvidia, status on AMD is as of yet unknown. [1]http://www.opengl.org/registry/api/gl.spec [2]http://www.opengl.org/registry/api/glext.h [3]http://www.opengl.org/registry/specs/ARB/geometry_shader4.txt [4]http://www.opentk.com/node/1637 [5]http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=273944
glProgramParameteri in OpenGL 3.2 Core Profile is valid on ATI 5700 serie, but invalid on nvidia (both tested)
You are correct that ProgramParameteri is not a 3.2 core function; however with the just-published updated to the .spec and headers for GL 4.1, ProgramParameteri *does* exist in core 4.1 / ARB_get_program_binary, so both ARB and non-ARB functions properly appear in the headers now. Thanks for the bug report!