Difference between revisions of "GLAPI/glUseProgramStages"

From OpenGL Wiki
Jump to: navigation, search
m (Bot: Adding better formatting.)
Line 48: Line 48:
[[Category:Core API Reference|UseProgramStages]]
[[Category:Core API Reference|UseProgramStages]]
[[Category:Core API Ref Shader Program Creation|UseProgramStages]]
[[Category:Core API Ref Shader Program Creation|UseProgramStages]]
[[Category:Program Pipeline Object API State Functions|UseProgramStages]]

Latest revision as of 10:05, 15 August 2013

Core in version 4.6
Core since version 4.1
Core ARB extension ARB_separate_shader_objects

glUseProgramStages: bind stages of a program object to a program pipeline

Function Definition

 void glUseProgramStages(GLuint pipeline​, GLbitfield stages​, GLuint program​);
Specifies the program pipeline object to which to bind stages from program​.
Specifies a set of program stages to bind to the program pipeline object.
Specifies the program object containing the shader executables to use in pipeline​.


glUseProgramStages binds executables from a program object associated with a specified set of shader stages to the program pipeline object given by pipeline​. pipeline​ specifies the program pipeline object to which to bind the executables. stages​ contains a logical combination of bits indicating the shader stages to use within program​ with the program pipeline object pipeline​. stages​ must be a logical combination of GL_VERTEX_SHADER_BIT, GL_TESS_CONTROL_SHADER_BIT, GL_TESS_EVALUATION_SHADER_BIT, GL_GEOMETRY_SHADER_BIT, GL_FRAGMENT_SHADER_BIT and GL_COMPUTE_SHADER_BIT. Additionally, the special value GL_ALL_SHADER_BITS may be specified to indicate that all executables contained in program​ should be installed in pipeline​.

If program​ refers to a program object with a valid shader attached for an indicated shader stage, glUseProgramStages installs the executable code for that stage in the indicated program pipeline object pipeline​. If program​ is zero, or refers to a program object with no valid shader executable for a given stage, it is as if the pipeline object has no programmable stage configured for the indicated shader stages. If stages​ contains bits other than those listed above, and is not equal to GL_ALL_SHADER_BITS, an error is generated.


The GL_COMPUTE_SHADER_BIT bit is available only if the GL version is 4.3 or greater.


GL_INVALID_VALUE is generated if stages​ contains set bits that are not recognized, and is not the reserved value GL_ALL_SHADER_BITS.

GL_INVALID_OPERATION is generated if program​ refers to a program object that was not linked with its GL_PROGRAM_SEPARABLE status set.

GL_INVALID_OPERATION is generated if program​ refers to a program object that has not been successfully linked.

GL_INVALID_OPERATION is generated if pipeline​ is not a name previously returned from a call to glGenProgramPipelines or if such a name has been deleted by a call to glDeleteProgramPipelines.

See Also

glGenProgramPipelines, glDeleteProgramPipelines, glIsProgramPipeline, glLinkProgram, glCreateShaderProgram


Copyright © 2010 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.