## Name

glProgramParameter — specify a parameter for a program object

## C Specification

`void glProgramParameteri(` | GLuint program,
| GLenum pname,
| GLint value`)`;

## Parameters

`program`

  Specifies the name of a program object whose parameter to modify.

`pname`

  Specifies the name of the parameter to modify.

`value`

  Specifies the new value of the parameter specified by `pname` for `program`.

## Description

`glProgramParameter` specifies a new value for the parameter nameed by `pname` for the program object `program`.

If `pname` is `GL_PROGRAM_BINARY_RETRIEVABLE_HINT`, `value` should be `GL_FALSE` or `GL_TRUE` to indicate to the implementation the intention of the application to retrieve the program's binary representation with glGetProgramBinary. The implementation may use this information to store information that may be useful for a future query of the program's binary. It is recommended to set `GL_PROGRAM_BINARY_RETRIEVABLE_HINT` for the program to `GL_TRUE` before calling glLinkProgram, and using the program at run-time if the binary is to be retrieved later.

If `pname` is `GL_PROGRAM_SEPARABLE`, `value` must be `GL_TRUE` or `GL_FALSE` and indicates whether `program` can be bound to individual pipeline stages via glUseProgramStages. A program's `GL_PROGRAM_SEPARABLE` parameter must be set to `GL_TRUE` before glLinkProgram is called in order for it to be usable with a program pipeline object. The initial state of `GL_PROGRAM_SEPARABLE` is `GL_FALSE`.

## Errors

`GL_INVALID_OPERATION` is generated if `program` is not the name of an existing program object.

`GL_INVALID_ENUM` is generated if `pname` is not one of the accepted values.

`GL_INVALID_VALUE` is generated if `value` is not a valid value for the parameter named by `pname`.

## Associated Gets

glGetProgram.

## See Also

glGetProgram, glGetProgramBinary, glProgramBinary

## Copyright

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/.