glGetShaderPrecisionFormat.3G man page

glGetShaderPrecisionFormat — retrieve the range and precision for numeric formats supported by the shader compiler

C Specification

void glGetShaderPrecisionFormat(GLenum shaderType, GLenum precisionType, GLint *range, GLint *precision);



Specifies the type of shader whose precision to query. shaderType must be GL_VERTEX_SHADER or GL_FRAGMENT_SHADER.


Specifies the numeric format whose precision and range to query.


Specifies the address of array of two integers into which encodings of the implementation's numeric range are returned.


Specifies the address of an integer into which the numeric precision of the implementation is written.


glGetShaderPrecisionFormat retrieves the numeric range and precision for the implementation's representation of quantities in different numeric formats in specified shader type. shaderType specifies the type of shader for which the numeric precision and range is to be retrieved and must be one of GL_VERTEX_SHADER or GL_FRAGMENT_SHADER. precisionType specifies the numeric format to query and must be one of GL_LOW_FLOAT, GL_MEDIUM_FLOAT GL_HIGH_FLOAT, GL_LOW_INT, GL_MEDIUM_INT, or GL_HIGH_INT.

range points to an array of two integers into which the format's numeric range will be returned. If min and max are the smallest values representable in the format, then the values returned are defined to be: range[0] = floor(log2(|min|)) and range[1] = floor(log2(|max|)).

precision specifies the address of an integer into which will be written the log2 value of the number of bits of precision of the format. If the smallest representable value greater than 1 is 1 + eps, then the integer addressed by precision will contain floor(-log2(eps)).


GL_INVALID_ENUM is generated if shaderType or precisionType is not an accepted value.

Version Support

OpenGL Version
Function / Feature Name2.


12/28/2016 [FIXME: source] [FIXME: manual]