glUseProgramStages - bind stages of a program object to a program pipeline
Contents
C Specification
voidglUseProgramStages(GLuintpipeline,GLbitfieldstages,GLuintprogram);
Copyright
Copyright © 2010-2014 Khronos Group
[FIXME: source] 11/18/2024 GLUSEPROGRAMSTAGES(3G)
Description
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.
Errors
GL_INVALID_VALUE is generated if shaders 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().
Name
glUseProgramStages - bind stages of a program object to a program pipeline
Notes
The GL_COMPUTE_SHADER_BIT bit is available only if the GL version is 4.3 or greater.
Parameters
pipeline
Specifies the program pipeline object to which to bind stages from program.
stages
Specifies a set of program stages to bind to the program pipeline object.
program
Specifies the program object containing the shader executables to use in pipeline.
See Also
glGenProgramPipelines(), glDeleteProgramPipelines(), glIsProgramPipeline()
Version Support
┌────────────────────┬───────────────────────────────────────────────────────────────────────┐
│ │ OpenGLVersion │
├────────────────────┼─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┤
│ Function │ 2.0 │ 2.1 │ 3.0 │ 3.1 │ 3.2 │ 3.3 │ 4.0 │ 4.1 │ 4.2 │ 4.3 │ 4.4 │ 4.5 │
│ / │ │ │ │ │ │ │ │ │ │ │ │ │
│ Feature │ │ │ │ │ │ │ │ │ │ │ │ │
│ Name │ │ │ │ │ │ │ │ │ │ │ │ │
├────────────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ glUseProgramStages │ - │ - │ - │ - │ - │ - │ - │ ✔ │ ✔ │ ✔ │ ✔ │ ✔ │
└────────────────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
