OpenGL and OpenGL ES state tables What's this?


Profile filters (OpenGL only)

OpenGL ES 1.1 state tables

Get value Type Get command Initial value Description Attribute

§ GL Internal primitive assembly state variables (inaccessible)

V Previous vertex in a line segment
B Indicates if {\em line-vertex} is the first
V First vertex of a line loop
2 × V Previous two vertices in a triangle strip
Z3 Number of vertices so far in triangle strip: 0, 1, or more
Z2 Triangle strip A/B vertex pointer

§ Current Values and Associated Data

CURRENT_COLOR C GetFloatv 1,1,1,1 Current color current
CURRENT_TEXTURE_COORDS MAX_TEXTURE_UNITS × T GetFloatv 0,0,0,1 Current texture coordinates current
CURRENT_NORMAL N GetFloatv 0,0,1 Current normal current
C Color associated with last vertex
T Texture coordinates associated with last vertex

§ Vertex Array Data

CLIENT_ACTIVE_TEXTURE ZMAX_TEXTURE_UNITS GetIntegerv \glc{TEXTURE0} Client active texture unit selector vertex-array
VERTEX_ARRAY B IsEnabled \em False Vertex array enable vertex-array
VERTEX_ARRAY_SIZE Z+ GetIntegerv 4 Coordinates per vertex vertex-array
VERTEX_ARRAY_TYPE Z4 GetIntegerv \glc{FLOAT} Type of vertex coordinates vertex-array
VERTEX_ARRAY_STRIDE Z+ GetIntegerv 0 Stride between vertices vertex-array
VERTEX_ARRAY_POINTER Y GetPointerv 0 Pointer to the vertex array vertex-array
NORMAL_ARRAY B IsEnabled \em False Normal array enable vertex-array
NORMAL_ARRAY_TYPE Z5 GetIntegerv \glc{FLOAT} Type of normal coordinates vertex-array
NORMAL_ARRAY_STRIDE Z+ GetIntegerv 0 Stride between normals vertex-array
NORMAL_ARRAY_POINTER Y GetPointerv 0 Pointer to the normal array vertex-array
COLOR_ARRAY B IsEnabled \em False Color array enable vertex-array
COLOR_ARRAY_SIZE Z+ GetIntegerv 4 Color components per vertex vertex-array
COLOR_ARRAY_TYPE Z8 GetIntegerv \glc{FLOAT} Type of color components vertex-array
COLOR_ARRAY_STRIDE Z+ GetIntegerv 0 Stride between colors vertex-array
COLOR_ARRAY_POINTER Y GetPointerv 0 Pointer to the color array vertex-array

§ Vertex Array Data (cont.)

TEXTURE_COORD_ARRAY MAX_TEXTURE_UNITS × B IsEnabled \em False Texture coordinate array enable vertex-array
TEXTURE_COORD_ARRAY_SIZE MAX_TEXTURE_UNITS × Z+ GetIntegerv 4 Coordinates per element vertex-array
TEXTURE_COORD_ARRAY_TYPE MAX_TEXTURE_UNITS × Z4 GetIntegerv \glc{FLOAT} Type of texture coordinates vertex-array
TEXTURE_COORD_ARRAY_STRIDE MAX_TEXTURE_UNITS × Z+ GetIntegerv 0 Stride between texture coordinates vertex-array
TEXTURE_COORD_ARRAY_POINTER MAX_TEXTURE_UNITS × Y GetPointerv 0 Pointer to the texture coordinate array vertex-array
POINT_SIZE_ARRAY_OES B IsEnabled \em False Point size array enable vertex-array
POINT_SIZE_ARRAY_TYPE_OES Z2 GetIntegerv \glc{FLOAT} Type of point sizes vertex-array
POINT_SIZE_ARRAY_STRIDE_OES Z+ GetIntegerv 0 Stride between point sizes vertex-array
POINT_SIZE_ARRAY_POINTER_OES Y GetPointerv 0 Pointer to the point size array vertex-array
ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 current buffer binding vertex-array
VERTEX_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 vertex array buffer binding vertex-array
NORMAL_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 normal array buffer binding vertex-array
COLOR_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 color array buffer binding vertex-array
TEXTURE_COORD_ARRAY_BUFFER_BINDING MAX_TEXTURE_UNITS × Z+ GetIntegerv 0 texcoord array buffer binding vertex-array
POINT_SIZE_ARRAY_BUFFER_BINDING_OES Z+ GetIntegerv 0 point size array buffer binding vertex-array
ELEMENT_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 element array buffer binding vertex-array

§ Buffer Object State

n × BMU buffer data
BUFFER_SIZE n × Z+ GetBufferParameteriv 0 buffer data size
BUFFER_USAGE $n \times Z^9$ GetBufferParameteriv STATIC_DRAW buffer usage pattern

§ Transformation state

MODELVIEW_MATRIX 16* × M4 GetFloatv Identity Model-view matrix stack
PROJECTION_MATRIX 2* × M4 GetFloatv Identity Projection matrix stack
TEXTURE_MATRIX MAX_TEXTURE_UNITS × 2* × M4 GetFloatv Identity Texture matrix stack
MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 4 × 4 × Z GetIntegerv Identity Alias of \glc{MODELVIEW_MATRIX} in integer encoding
PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 4 × 4 × Z GetIntegerv Identity Alias of \glc{PROJECTION_MATRIX} in integer encoding
TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 4 × 4 × Z GetIntegerv Identity Alias of \glc{TEXTURE_MATRIX} in integer encoding
VIEWPORT 4 × Z GetIntegerv see~\ref{view:port} Viewport origin \& extent viewport
DEPTH_RANGE 2 × R+ GetFloatv 0,1 Depth range near \& far viewport
MODELVIEW_STACK_DEPTH Z+ GetIntegerv 1 Model-view matrix stack pointer
PROJECTION_STACK_DEPTH Z+ GetIntegerv 1 Projection matrix stack pointer
TEXTURE_STACK_DEPTH MAX_TEXTURE_UNITS × Z+ GetIntegerv 1 Texture matrix stack pointer
MATRIX_MODE Z4 GetIntegerv \tt MODELVIEW Current matrix mode transform
NORMALIZE B IsEnabled \em False Current normal normalization on/off transform/enable
RESCALE_NORMAL B IsEnabled \em False Current normal rescaling on/off transform/enable
CLIP_PLANE0
CLIP_PLANE0 + (n-1)
where n ≥ 1
n × R4 GetClipPlane 0,0,0,0 User clipping plane coefficients transform
CLIP_PLANE0
CLIP_PLANE0 + (n-1)
where n ≥ 1
n × B IsEnabled \em False $i$th user clipping plane enabled transform/enable

§ Coloring

FOG_COLOR C GetFloatv 0,0,0,0 Fog color fog
FOG_DENSITY R GetFloatv 1.0 Exponential fog density fog
FOG_START R GetFloatv 0.0 Linear fog start fog
FOG_END R GetFloatv 1.0 Linear fog end fog
FOG_MODE Z3 GetIntegerv \glc{EXP} Fog mode fog
FOG B IsEnabled \em False True if fog enabled fog/enable
SHADE_MODEL Z+ GetIntegerv \glc{SMOOTH} {\bf ShadeModel} setting lighting

§ Lighting

(see also Table~\ref{light:tab1} for defaults)

LIGHTING B IsEnabled \em False True if lighting is enabled lighting/enable
COLOR_MATERIAL B IsEnabled \em False True if color tracking is enabled lighting/enable
AMBIENT 2 × C GetMaterialfv (0.2,0.2,0.2,1.0) Ambient material color lighting
DIFFUSE 2 × C GetMaterialfv (0.8,0.8,0.8,1.0) Diffuse material color lighting
SPECULAR 2 × C GetMaterialfv (0.0,0.0,0.0,1.0) Specular material color lighting
EMISSION 2 × C GetMaterialfv (0.0,0.0,0.0,1.0) Emissive mat. color lighting
SHININESS 2 × R GetMaterialfv 0.0 Specular exponent of material lighting
LIGHT_MODEL_AMBIENT C GetFloatv (0.2,0.2,0.2,1.0) Ambient scene color lighting
LIGHT_MODEL_TWO_SIDE B GetBooleanv \em False Use two-sided lighting lighting

§ Lighting (cont.)

AMBIENT 8* × C GetLightfv (0.0,0.0,0.0,1.0) Ambient intensity of light $i$ lighting
DIFFUSE 8* × C GetLightfv see 2.5 Diffuse intensity of light $i$ lighting
SPECULAR 8* × C GetLightfv see 2.5 Specular intensity of light $i$ lighting
POSITION 8* × P GetLightfv (0.0,0.0,1.0,0.0) Position of light $i$ lighting
CONSTANT_ATTENUATION 8* × R+ GetLightfv 1.0 Constant atten. factor lighting
LINEAR_ATTENUATION 8* × R+ GetLightfv 0.0 Linear atten. factor lighting
QUADRATIC_ATTENUATION 8* × R+ GetLightfv 0.0 Quadratic atten. factor lighting
SPOT_DIRECTION 8* × D GetLightfv (0.0,0.0,-1.0) Spotlight direction of light $i$ lighting
SPOT_EXPONENT 8* × R+ GetLightfv 0.0 Spotlight exponent of light $i$ lighting
SPOT_CUTOFF 8* × R+ GetLightfv 180.0 Spot. angle of light $i$ lighting
LIGHT0
LIGHT0 + (n-1)
where n ≥ 8
n × B IsEnabled \em False True if light $i$ enabled lighting/enable

§ Rasterization

  1. † Max. of the impl. dependent max. aliased and smooth point sizes.
POINT_SIZE R+ GetFloatv 1.0 Point size point
POINT_SMOOTH B IsEnabled \em False Point antialiasing on point/enable
POINT_SIZE_MIN R+ GetFloatv 0.0 Attenuated minimum point size point
POINT_SIZE_MAX R+ GetFloatv Attenuated maximum point size. point
POINT_FADE_THRESHOLD_SIZE R+ GetFloatv 1.0 Threshold for alpha attenuation point
POINT_DISTANCE_ATTENUATION 3 × R+ GetFloatv 1,0,0 Attenuation coefficients point
POINT_SPRITE_OES B IsEnabled \em False Point sprites enabled point
LINE_WIDTH R+ GetFloatv 1.0 Line width line
LINE_SMOOTH B IsEnabled \em False Line antialiasing on line/enable
CULL_FACE B IsEnabled \em False Polygon culling enabled polygon/enable
CULL_FACE_MODE Z3 GetIntegerv \glc{BACK} Cull front/back facing polygons polygon
FRONT_FACE Z2 GetIntegerv \glc{CCW} Polygon frontface CW/CCW indicator polygon
POLYGON_OFFSET_FACTOR R GetFloatv 0 Polygon offset factor polygon
POLYGON_OFFSET_UNITS R GetFloatv 0 Polygon offset units polygon
POLYGON_OFFSET_FILL B IsEnabled \em False Polygon offset enable polygon/enable

§ Multisampling

MULTISAMPLE B IsEnabled \em True Multisample rasterization multisample/enable
SAMPLE_ALPHA_TO_COVERAGE B IsEnabled \em False Modify coverage from alpha multisample/enable
SAMPLE_ALPHA_TO_ONE B IsEnabled \em False Set alpha to maximum multisample/enable
SAMPLE_COVERAGE B IsEnabled \em False Mask to modify coverage multisample/enable
SAMPLE_COVERAGE_VALUE R+ GetFloatv 1 Coverage mask value multisample
SAMPLE_COVERAGE_INVERT B GetBooleanv \em False Invert coverage mask value multisample

§ Textures (state per texture unit and binding point)

TEXTURE_2D MAX_TEXTURE_UNITS × B IsEnabled \em False True if 2D texturing is enabled texture/enable
TEXTURE_BINDING_2D MAX_TEXTURE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_2D} texture
TEXTURE_2D n × I see \ref{texturing} 2D texture image at l.o.d. $i$

§ Textures (state per texture object)

TEXTURE_MIN_FILTER n × Z6 GetTexParameter see \ref{texturing} Texture minification function texture
TEXTURE_MAG_FILTER n × Z2 GetTexParameter see \ref{texturing} Texture magnification function texture
TEXTURE_WRAP_S n × Z2 GetTexParameter \glc{REPEAT} Texcoord $s$ wrap mode texture
TEXTURE_WRAP_T n × Z2 GetTexParameter \glc{REPEAT} Texcoord $t$ wrap mode texture
GENERATE_MIPMAP n × B GetTexParameter \glc{FALSE} Automatic mipmap generation texture

§ Texture Environment and Generation

ACTIVE_TEXTURE ZMAX_TEXTURE_UNITS GetIntegerv \glc{TEXTURE0} Active texture unit selector texture
TEXTURE_ENV_MODE MAX_TEXTURE_UNITS × Z6 GetTexEnviv \glc{MODULATE} Texture application function texture
TEXTURE_ENV_COLOR MAX_TEXTURE_UNITS × C GetTexEnvfv 0,0,0,0 Texture environment color texture
COORD_REPLACE_OES MAX_TEXTURE_UNITS × B GetTexEnviv \em False Point coordinate replacement enabled texture
COMBINE_RGB MAX_TEXTURE_UNITS × Z8 GetTexEnviv \glc{MODULATE} RGB combiner function texture
COMBINE_ALPHA MAX_TEXTURE_UNITS × Z6 GetTexEnviv \glc{MODULATE} Alpha combiner function texture
SRC0_RGB MAX_TEXTURE_UNITS × Z3 GetTexEnviv \glc{TEXTURE} RGB source 0 texture
SRC1_RGB MAX_TEXTURE_UNITS × Z3 GetTexEnviv \glc{PREVIOUS} RGB source 1 texture
SRC2_RGB MAX_TEXTURE_UNITS × Z3 GetTexEnviv \glc{CONSTANT} RGB source 2 texture
SRC0_ALPHA MAX_TEXTURE_UNITS × Z3 GetTexEnviv \glc{TEXTURE} Alpha source 0 texture
SRC1_ALPHA MAX_TEXTURE_UNITS × Z3 GetTexEnviv \glc{PREVIOUS} Alpha source 1 texture
SRC2_ALPHA MAX_TEXTURE_UNITS × Z3 GetTexEnviv \glc{CONSTANT} Alpha source 2 texture
OPERAND0_RGB MAX_TEXTURE_UNITS × Z4 GetTexEnviv \glc{SRC_COLOR} RGB operand 0 texture
OPERAND1_RGB MAX_TEXTURE_UNITS × Z4 GetTexEnviv \glc{SRC_COLOR} RGB operand 1 texture
OPERAND2_RGB MAX_TEXTURE_UNITS × Z4 GetTexEnviv \glc{SRC_ALPHA} RGB operand 2 texture
OPERAND0_ALPHA MAX_TEXTURE_UNITS × Z2 GetTexEnviv \glc{SRC_ALPHA} Alpha operand 0 texture
OPERAND1_ALPHA MAX_TEXTURE_UNITS × Z2 GetTexEnviv \glc{SRC_ALPHA} Alpha operand 1 texture
OPERAND2_ALPHA MAX_TEXTURE_UNITS × Z2 GetTexEnviv \glc{SRC_ALPHA} Alpha operand 2 texture
RGB_SCALE MAX_TEXTURE_UNITS × R3 GetTexEnvfv 1.0 RGB post-combiner scaling texture
ALPHA_SCALE MAX_TEXTURE_UNITS × R3 GetTexEnvfv 1.0 Alpha post-combiner scaling texture

§ Pixel Operations

SCISSOR_TEST B IsEnabled \em False Scissoring enabled scissor/enable
SCISSOR_BOX 4 × Z GetIntegerv see~\ref{scissor} Scissor box scissor
ALPHA_TEST B IsEnabled \em False Alpha test enabled color-buffer/enable
ALPHA_TEST_FUNC Z8 GetIntegerv \glc{ALWAYS} Alpha test function color-buffer
ALPHA_TEST_REF R+ GetIntegerv 0 Alpha test reference value color-buffer
STENCIL_TEST B IsEnabled \em False Stenciling enabled stencil-buffer/enable
STENCIL_FUNC Z8 GetIntegerv \glc{ALWAYS} Stencil function stencil-buffer
STENCIL_VALUE_MASK Z+ GetIntegerv 1's Stencil mask stencil-buffer
STENCIL_REF Z+ GetIntegerv 0 Stencil reference value stencil-buffer
STENCIL_FAIL Z6 GetIntegerv \glc{KEEP} Stencil fail action stencil-buffer
STENCIL_PASS_DEPTH_FAIL Z6 GetIntegerv \glc{KEEP} Stencil depth buffer fail action stencil-buffer
STENCIL_PASS_DEPTH_PASS Z6 GetIntegerv \glc{KEEP} Stencil depth buffer pass action stencil-buffer
DEPTH_TEST B IsEnabled \em False Depth buffer enabled depth-buffer/enable
DEPTH_FUNC Z8 GetIntegerv \glc{LESS} Depth buffer test function depth-buffer
BLEND B IsEnabled \em False Blending enabled color-buffer/enable
BLEND_SRC Z9 GetIntegerv \glc{ONE} Blending source function color-buffer
BLEND_DST Z8 GetIntegerv \glc{ZERO} Blending dest. function color-buffer
DITHER B IsEnabled \em True Dithering enabled color-buffer/enable
COLOR_LOGIC_OP B IsEnabled \em False Color logic op enabled color-buffer/enable
LOGIC_OP_MODE Z16 GetIntegerv \glc{COPY} Logic op function color-buffer

§ Framebuffer Control

COLOR_WRITEMASK 4 × B GetBooleanv {\em True} Color write enables; R, G, B, or A color-buffer
DEPTH_WRITEMASK B GetBooleanv {\em True} Depth buffer enabled for writing depth-buffer
STENCIL_WRITEMASK Z+ GetIntegerv 1's Stencil buffer writemask stencil-buffer
COLOR_CLEAR_VALUE C GetFloatv 0,0,0,0 Color buffer clear value (RGBA mode) color-buffer
DEPTH_CLEAR_VALUE R+ GetIntegerv 1 Depth buffer clear value depth-buffer
STENCIL_CLEAR_VALUE Z+ GetIntegerv 0 Stencil clear value stencil-buffer

§ Pixels

UNPACK_ALIGNMENT Z+ GetIntegerv 4 Value of \glc{UNPACK_ALIGNMENT} pixel-store
PACK_ALIGNMENT Z+ GetIntegerv 4 Value of \glc{PACK_ALIGNMENT} pixel-store

§ Hints

PERSPECTIVE_CORRECTION_HINT Z3 GetIntegerv \glc{DONT_CARE} Perspective correction hint hint
POINT_SMOOTH_HINT Z3 GetIntegerv \glc{DONT_CARE} Point smooth hint hint
LINE_SMOOTH_HINT Z3 GetIntegerv \glc{DONT_CARE} Line smooth hint hint
FOG_HINT Z3 GetIntegerv \glc{DONT_CARE} Fog hint hint
GENERATE_MIPMAP_HINT Z3 GetIntegerv \glc{DONT_CARE} Mipmap generation hint hint

§ Implementation Dependent Values

MAX_LIGHTS Z+ GetIntegerv 8 Maximum number of lights
MAX_CLIP_PLANES Z+ GetIntegerv 1 Maximum number of user clipping planes
MAX_MODELVIEW_STACK_DEPTH Z+ GetIntegerv 16 Maximum model-view stack depth
MAX_PROJECTION_STACK_DEPTH Z+ GetIntegerv 2 Maximum projection matrix stack depth
MAX_TEXTURE_STACK_DEPTH Z+ GetIntegerv 2 Maximum number depth of texture matrix stack
SUBPIXEL_BITS Z+ GetIntegerv 4 Number of bits of subpixel precision in screen $x_w$ and $y_w$
MAX_TEXTURE_SIZE Z+ GetIntegerv 64 Maximum texture image dimension
MAX_VIEWPORT_DIMS 2 × Z+ GetIntegerv see \ref{view:port} Maximum viewport dimensions

§ Implementation Dependent Values (cont.)

ALIASED_POINT_SIZE_RANGE 2 × R+ GetFloatv 1,1 Range (lo to hi) of aliased point sizes
SMOOTH_POINT_SIZE_RANGE (POINT_SIZE_RANGE) 2 × R+ GetFloatv 1,1 Range (lo to hi) of antialiased point sizes
ALIASED_LINE_WIDTH_RANGE 2 × R+ GetFloatv 1,1 Range (lo to hi) of aliased line widths
SMOOTH_LINE_WIDTH_RANGE (v1.1:~LINE_WIDTH_RANGE) 2 × R+ GetFloatv 1,1 Range (lo to hi) of antialiased line widths

§ Implementation Dependent Values (cont.)

MAX_TEXTURE_UNITS Z+ GetIntegerv 2 Number of texture units (not to exceed 32)
SAMPLE_BUFFERS Z+ GetIntegerv 0 Number of multisample buffers
SAMPLES Z+ GetIntegerv 0 Coverage mask size
COMPRESSED_TEXTURE_FORMATS 10 × Z GetIntegerv Enumerated compressed texture formats
NUM_COMPRESSED_TEXTURE_FORMATS Z GetIntegerv 10 Number of enumerated compressed texture formats

§ Implementation Dependent Pixel Depths

RED_BITS Z+ GetIntegerv Number of bits in RED color buffer component
GREEN_BITS Z+ GetIntegerv Number of bits in GREEN color buffer component
BLUE_BITS Z+ GetIntegerv Number of bits in BLUE color buffer component
ALPHA_BITS Z+ GetIntegerv Number of bits in ALPHA color buffer component
DEPTH_BITS Z+ GetIntegerv Number of depth buffer planes
STENCIL_BITS Z+ GetIntegerv Number of stencil planes

§ Miscellaneous

n × Z8 GetError 0 Current error code(s)
n × B \em False True if there is a corresponding error

OpenGL ES 3.2 state tables

Get value Type Get command Initial value Description Attribute

§ Current Values and Associated Data

PATCH_VERTICES Z+ GetIntegerv 3 No. of vertices in input patch current

§ Vertex Array Object State

  1. † The $i$th attribute defaults to a value of $i$.
VERTEX_ATTRIB_ARRAY_ENABLED MAX_VERTEX_ATTRIBS × B GetVertexAttribiv \glc{FALSE} Vertex attrib array enable vertex-array
VERTEX_ATTRIB_ARRAY_SIZE MAX_VERTEX_ATTRIBS × Z5 GetVertexAttribiv 4 Vertex attrib array size vertex-array
VERTEX_ATTRIB_ARRAY_STRIDE MAX_VERTEX_ATTRIBS × Z+ GetVertexAttribiv 0 Vertex attrib array stride vertex-array
VERTEX_ATTRIB_ARRAY_TYPE MAX_VERTEX_ATTRIBS × E GetVertexAttribiv \glc{FLOAT} Vertex attrib array type vertex-array
VERTEX_ATTRIB_ARRAY_NORMALIZED MAX_VERTEX_ATTRIBS × B GetVertexAttribiv \glc{FALSE} Vertex attrib array normalized vertex-array
VERTEX_ATTRIB_ARRAY_INTEGER MAX_VERTEX_ATTRIBS × B GetVertexAttribiv \glc{FALSE} Vertex attrib array has unconverted integers vertex-array
VERTEX_ATTRIB_ARRAY_DIVISOR MAX_VERTEX_ATTRIBS × Z+ GetVertexAttribiv 0 Vertex attrib array instance divisor vertex-array
VERTEX_ATTRIB_ARRAY_POINTER MAX_VERTEX_ATTRIBS × Y GetVertexAttribPointerv \glc{NULL} Vertex attrib array pointer vertex-array
ELEMENT_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 Element array buffer binding vertex-array
VERTEX_ATTRIB_ARRAY_BUFFER_BINDING MAX_VERTEX_ATTRIBS × Z+ GetVertexAttribiv 0 Attribute array buffer binding vertex-array
VERTEX_ATTRIB_BINDING 16 × Z16* GetVertexAttribiv $i$ Vertex buffer binding used by vertex attrib $i$
VERTEX_ATTRIB_RELATIVE_OFFSET 16 × Z+ GetVertexAttribiv 0 Byte offset added to vertex binding offset for this attribute
VERTEX_BINDING_OFFSET 16 × Z GetInteger64i_v 0 Byte offset of the first element in data store of the buffer bound to vertex binding $i$
VERTEX_BINDING_STRIDE 16 × Z GetIntegeri_v 16 Stride between elements in vertex binding $i$
VERTEX_BINDING_DIVISOR 16 × Z+ GetIntegeri_v 0 Instance divisor used for vertex binding $i$
VERTEX_BINDING_BUFFER 16 × Z+ GetIntegeri_v 0 Name of buffer bound to vertex binding $i$
S GetObjectLabel empty Debug label

§ Vertex Array Data (not in vertex array objects)

ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 Current buffer binding vertex-array
DRAW_INDIRECT_BUFFER_BINDING Z+ GetIntegerv 0 Indirect command buffer binding
VERTEX_ARRAY_BINDING Z+ GetIntegerv 0 Current vertex array object binding vertex-array
PRIMITIVE_RESTART_FIXED_INDEX B IsEnabled \glc{FALSE} Primitive restart with fixed index enable vertex-array

§ Buffer Object State

  1. † This state may be queried with \glr{GetBufferParameteriv}, in which case values greater than or equal to $2^{31}$ will be clamped to $2^{31}-1$.
BUFFER_SIZE n × Z+ GetBufferParameteri64v 0 Buffer data size
BUFFER_USAGE n × E GetBufferParameteriv \glc{STATIC_DRAW} Buffer usage pattern
BUFFER_ACCESS_FLAGS n × Z+ GetBufferParameteriv 0 Extended buffer access flag
BUFFER_MAPPED n × B GetBufferParameteriv \glc{FALSE} Buffer map flag
BUFFER_MAP_POINTER n × Y GetBufferPointerv \glc{NULL} Mapped buffer pointer
BUFFER_MAP_OFFSET n × Z+ GetBufferParameteri64v 0 Start of mapped buffer range
BUFFER_MAP_LENGTH n × Z+ GetBufferParameteri64v 0 Size of mapped buffer range
S GetObjectLabel empty Debug label

§ Transformation State

VIEWPORT 4 × Z GetIntegerv see~\ref{view:port} Viewport origin \& extent viewport
DEPTH_RANGE 2 × R+ GetFloatv 0,1 Depth range near \& far viewport
TRANSFORM_FEEDBACK_BINDING Z+ GetIntegerv 0 Object bound for transform feedback operations
TRANSFORM_FEEDBACK_BUFFER_BINDING Z+ GetIntegerv 0 Buffer object bound to generic bind point for transform feedback
PRIMITIVE_BOUNDING_BOX 8 × R GetFloatv $(-1,-1,-1, 1, 1, 1, 1, 1)$ Default primitive bounding box

§ Rasterization

RASTERIZER_DISCARD B IsEnabled \glc{FALSE} Discard primitives before rasterization
LINE_WIDTH R+ GetFloatv 1.0 Line width line
CULL_FACE B IsEnabled \glc{FALSE} Polygon culling enabled polygon/enable
CULL_FACE_MODE E GetIntegerv \glc{BACK} Cull front-/back-facing polygons polygon
FRONT_FACE E GetIntegerv \glc{CCW} Polygon frontface CW/CCW indicator polygon
POLYGON_OFFSET_FACTOR R GetFloatv 0 Polygon offset factor polygon
POLYGON_OFFSET_UNITS R GetFloatv 0 Polygon offset units polygon
POLYGON_OFFSET_FILL B IsEnabled \glc{FALSE} Polygon offset enable polygon/enable

§ Multisampling

  1. † $n$ is the value of \glc{MAX_SAMPLE_MASK_WORDS}.
SAMPLE_ALPHA_TO_COVERAGE B IsEnabled \glc{FALSE} Modify coverage from alpha multisample/enable
SAMPLE_COVERAGE B IsEnabled \glc{FALSE} Mask to modify coverage multisample/enable
SAMPLE_COVERAGE_VALUE R+ GetFloatv 1 Coverage mask value multisample
SAMPLE_COVERAGE_INVERT B GetBooleanv \glc{FALSE} Invert coverage mask value multisample
SAMPLE_SHADING B IsEnabled \glc{FALSE} Sample shading enable multisample/enable
MIN_SAMPLE_SHADING_VALUE R+ GetFloatv 0 Fraction of multisamples to use for sample shading multisample
SAMPLE_MASK B IsEnabled \glc{FALSE} Additional sample mask
SAMPLE_MASK_VALUE n × Z+ GetIntegeri_v All bits of all words set Additional sample mask value

§ Textures (selector, state per texture unit)

ACTIVE_TEXTURE E GetIntegerv \glc{TEXTURE0} Active texture unit selector texture
TEXTURE_BINDING_2D MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_2D} texture
TEXTURE_BINDING_3D MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_3D} texture
TEXTURE_BINDING_2D_ARRAY MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_2D_ARRAY} texture
TEXTURE_BINDING_BUFFER MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_BUFFER} texture
TEXTURE_BINDING_CUBE_MAP MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_CUBE_MAP} texture
TEXTURE_BINDING_CUBE_MAP_ARRAY MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_CUBE_MAP_ARRAY} texture
TEXTURE_BINDING_2D_MULTISAMPLE MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_2D_MULTISAMPLE}
TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_2D_MULTISAMPLE_ARRAY}
SAMPLER_BINDING MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Sampler object bound to active texture unit

§ Textures (state per texture object)

TEXTURE_SWIZZLE_R E GetTexParameter \glc{RED} Red component swizzle texture
TEXTURE_SWIZZLE_G E GetTexParameter \glc{GREEN} Green component swizzle texture
TEXTURE_SWIZZLE_B E GetTexParameter \glc{BLUE} Blue component swizzle texture
TEXTURE_SWIZZLE_A E GetTexParameter \glc{ALPHA} Alpha component swizzle texture
TEXTURE_BORDER_COLOR C GetTexParameterfv 0.0,0.0,0.0,0.0 Border color texture
TEXTURE_MIN_FILTER E GetTexParameter see sec.~\ref{tex:state} Minification function texture
TEXTURE_MAG_FILTER E GetTexParameter \glc{LINEAR} Magnification function texture
TEXTURE_WRAP_S E GetTexParameter see sec.~\ref{tex:state} Texcoord $s$ wrap mode texture
TEXTURE_WRAP_T E GetTexParameter see sec.~\ref{tex:state} Texcoord $t$ wrap mode (2D, 3D, cube map textures only) texture
TEXTURE_WRAP_R E GetTexParameter see sec.~\ref{tex:state} Texcoord $r$ wrap mode (3D textures only) texture
TEXTURE_MIN_LOD R GetTexParameterfv -1000 Min. level of detail texture
TEXTURE_MAX_LOD R GetTexParameterfv 1000 Max. level of detail texture
TEXTURE_BASE_LEVEL Z+ GetTexParameterfv 0 Base texture array texture
TEXTURE_MAX_LEVEL Z+ GetTexParameterfv 1000 Max. texture array level texture
DEPTH_STENCIL_TEXTURE_MODE E GetTexParameteriv \glc{DEPTH_COMPONENT} Depth stencil texturemode
TEXTURE_COMPARE_MODE E GetTexParameteriv \glc{NONE} Comparison mode texture
TEXTURE_COMPARE_FUNC E GetTexParameteriv \glc{LEQUAL} Comparison function texture
TEXTURE_IMMUTABLE_FORMAT B GetTexParameter \glc{FALSE} Size and format immutable texture
TEXTURE_IMMUTABLE_LEVELS Z+ GetTexParameter 0 No. of levels in immutable textures texture
S GetObjectLabel empty Debug label

§ Textures (state per texture image)

TEXTURE_WIDTH Z+ GetTexLevelParameter 0 Specified width
TEXTURE_HEIGHT Z+ GetTexLevelParameter 0 Specified height (2D/3D)
TEXTURE_DEPTH Z+ GetTexLevelParameter 0 Specified depth (3D)
TEXTURE_SAMPLES Z+ GetTexLevelParameter 0 No. of samples per texel
TEXTURE_FIXED_SAMPLE_LOCATIONS B GetTexLevelParameter \glc{TRUE} Whether the image uses a fixed sample pattern
TEXTURE_INTERNAL_FORMAT E GetTexLevelParameteriv \glc{RGBA} or \glc{R8} Internal format (see section~\ref{tex:state})
TEXTURE_RED_SIZE Z+ GetTexLevelParameter 0 Component resolution
TEXTURE_GREEN_SIZE Z+ GetTexLevelParameter 0 Component resolution
TEXTURE_BLUE_SIZE Z+ GetTexLevelParameter 0 Component resolution
TEXTURE_ALPHA_SIZE Z+ GetTexLevelParameter 0 Component resolution
TEXTURE_DEPTH_SIZE Z+ GetTexLevelParameter 0 Component resolution
TEXTURE_STENCIL_SIZE Z+ GetTexLevelParameter 0 Component resolution
TEXTURE_SHARED_SIZE Z+ GetTexLevelParameter 0 Shared exponent field resolution
TEXTURE_RED_TYPE E GetTexLevelParameter \glc{NONE} Component type
TEXTURE_GREEN_TYPE E GetTexLevelParameter \glc{NONE} Component type
TEXTURE_BLUE_TYPE E GetTexLevelParameter \glc{NONE} Component type
TEXTURE_ALPHA_TYPE E GetTexLevelParameter \glc{NONE} Component type
TEXTURE_DEPTH_TYPE E GetTexLevelParameter \glc{NONE} Component type
TEXTURE_COMPRESSED B GetTexLevelParameter \glc{FALSE} True if image has a compressed internal format
TEXTURE_BUFFER_DATA_STORE_BINDING Z+ GetTexLevelParameteriv 0 Buffer object bound as the data store for the active image unit's buffer texture texture
TEXTURE_BUFFER_OFFSET n × Z GetTexLevelParameteriv 0 Offset into buffer's data store used for the active image unit's buffer texture
TEXTURE_BUFFER_SIZE n × Z GetTexLevelParameteriv 0 Size of the buffer's data store used for the active image unit's buffer texture

§ Textures (state per sampler object)

TEXTURE_BORDER_COLOR C GetSamplerParameterfv 0.0,0.0,0.0,0.0 Border color
TEXTURE_MIN_FILTER E GetSamplerParameter \glc{NEAREST_MIPMAP_LINEAR} Minification function texture
TEXTURE_MAG_FILTER E GetSamplerParameter \glc{LINEAR} Magnification function texture
TEXTURE_WRAP_S E GetSamplerParameter \glc{REPEAT} Texcoord $s$ wrap mode texture
TEXTURE_WRAP_T E GetSamplerParameter \glc{REPEAT} Texcoord $t$ wrap mode (2D, 3D, cube map textures only) texture
TEXTURE_WRAP_R E GetSamplerParameter \glc{REPEAT} Texcoord $r$ wrap mode (3D textures only) texture
TEXTURE_MIN_LOD R GetSamplerParameterfv -1000 Min. level of detail texture
TEXTURE_MAX_LOD R GetSamplerParameterfv 1000 Max. level of detail texture
TEXTURE_COMPARE_MODE E GetSamplerParameteriv \glc{NONE} Comparison mode texture
TEXTURE_COMPARE_FUNC E GetSamplerParameteriv \glc{LEQUAL} Comparison function texture
S GetObjectLabel empty Debug label

§ Pixel Operations

SCISSOR_TEST B IsEnabled \glc{FALSE} Scissoring enabled scissor/enable
SCISSOR_BOX 4 × Z GetIntegerv see~\ref{scissor} Scissor box scissor
STENCIL_TEST B IsEnabled \glc{FALSE} Stenciling enabled stencil-buffer/enable
STENCIL_FUNC E GetIntegerv \glc{ALWAYS} Front stencil function stencil-buffer
STENCIL_VALUE_MASK Z+ GetIntegerv see~\ref{stencil} Front stencil mask stencil-buffer
STENCIL_REF Z+ GetIntegerv 0 Front stencil reference value stencil-buffer
STENCIL_FAIL E GetIntegerv \glc{KEEP} Front stencil fail action stencil-buffer
STENCIL_PASS_DEPTH_FAIL E GetIntegerv \glc{KEEP} Front stencil depth buffer fail action stencil-buffer
STENCIL_PASS_DEPTH_PASS E GetIntegerv \glc{KEEP} Front stencil depth buffer pass action stencil-buffer
STENCIL_BACK_FUNC E GetIntegerv \glc{ALWAYS} Back stencil function stencil-buffer
STENCIL_BACK_VALUE_MASK Z+ GetIntegerv see~\ref{stencil} Back stencil mask stencil-buffer
STENCIL_BACK_REF Z+ GetIntegerv 0 Back stencil reference value stencil-buffer
STENCIL_BACK_FAIL E GetIntegerv \glc{KEEP} Back stencil fail action stencil-buffer
STENCIL_BACK_PASS_DEPTH_FAIL E GetIntegerv \glc{KEEP} Back stencil depth buffer fail action stencil-buffer
STENCIL_BACK_PASS_DEPTH_PASS E GetIntegerv \glc{KEEP} Back stencil depth buffer pass action stencil-buffer
DEPTH_TEST B IsEnabled \glc{FALSE} Depth test enabled depth-buffer/enable
DEPTH_FUNC E GetIntegerv \glc{LESS} Depth test function depth-buffer
BLEND MAX_DRAW_BUFFERS × B IsEnabledi \glc{FALSE} Blending enabled {for draw buffer $i$} color-buffer/enable
BLEND_SRC_RGB MAX_DRAW_BUFFERS × E GetIntegeri_v \glc{ONE} Blending source RGB function for draw buffer $i$ color-buffer
BLEND_SRC_ALPHA MAX_DRAW_BUFFERS × E GetIntegeri_v \glc{ONE} Blending source A function for draw buffer $i$ color-buffer
BLEND_DST_RGB MAX_DRAW_BUFFERS × E GetIntegeri_v \glc{ZERO} Blending dest. RGB function for draw buffer $i$ color-buffer
BLEND_DST_ALPHA MAX_DRAW_BUFFERS × E GetIntegeri_v \glc{ZERO} Blending dest. A function for draw buffer $i$ color-buffer
BLEND_EQUATION_RGB MAX_DRAW_BUFFERS × E GetIntegeri_v \glc{FUNC_ADD} RGB blending equation for draw buffer $i$ color-buffer
BLEND_EQUATION_ALPHA MAX_DRAW_BUFFERS × E GetIntegeri_v \glc{FUNC_ADD} Alpha blending equation for draw buffer $i$ color-buffer
BLEND_COLOR C GetFloatv 0.0,0.0,0.0,0.0 Constant blend color color-buffer
DITHER B IsEnabled \glc{TRUE} Dithering enabled color-buffer/enable

§ Framebuffer Control

COLOR_WRITEMASK MAX_DRAW_BUFFERS × 4 × B GetBooleani_v (\glc{TRUE},\glc{TRUE},\glc{TRUE},\glc{TRUE}) Color write enables (R,G,B,A) for draw buffer $i$ color-buffer
DEPTH_WRITEMASK B GetBooleanv \glc{TRUE} Depth buffer enabled for writing depth-buffer
STENCIL_WRITEMASK Z+ GetIntegerv 1's Front stencil buffer writemask stencil-buffer
STENCIL_BACK_WRITEMASK Z+ GetIntegerv 1's Back stencil buffer writemask stencil-buffer
COLOR_CLEAR_VALUE C GetFloatv 0.0,0.0,0.0,0.0 Color buffer clear value color-buffer
DEPTH_CLEAR_VALUE R+ GetFloatv 1 Depth buffer clear value depth-buffer
STENCIL_CLEAR_VALUE Z+ GetIntegerv 0 Stencil clear value stencil-buffer
DRAW_FRAMEBUFFER_BINDING Z+ GetIntegerv 0 Framebuffer object bound to \glc{DRAW_FRAMEBUFFER}
READ_FRAMEBUFFER_BINDING Z+ GetIntegerv 0 Framebuffer object bound to \glc{READ_FRAMEBUFFER}
RENDERBUFFER_BINDING Z GetIntegerv 0 Renderbuffer object bound to \glc{RENDERBUFFER}

§ Framebuffer (state per framebuffer object)

  1. † This state is queried from the currently bound read framebuffer.
DRAW_BUFFER0
DRAW_BUFFER0 + (n-1)
where nMAX_DRAW_BUFFERS
n × E GetIntegerv see~\ref{setbuffers} Draw buffer selected for color output $i$ color-buffer
READ_BUFFER E GetIntegerv see~\ref{pix:read:buffer} Read source buffer pixel
FRAMEBUFFER_DEFAULT_WIDTH Z+ GetFramebufferParameteriv 0 Default width of framebuffer w/o attachments
FRAMEBUFFER_DEFAULT_HEIGHT Z+ GetFramebufferParameteriv 0 Default height of framebuffer w/o attachments
FRAMEBUFFER_DEFAULT_LAYERS Z+ GetFramebufferParameteriv 0 Default layer count of framebuffer w/o attachments
FRAMEBUFFER_DEFAULT_SAMPLES Z+ GetFramebufferParameteriv 0 Default sample count of framebuffer w/o attachments
FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS B GetFramebufferParameteriv \glc{FALSE} Default sample location pattern of framebuffer w/o attachments

§ Framebuffer (state per attachment point)

FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE E GetFramebufferAttachmentParameteriv \glc{NONE} Type of image attached to framebuffer attachment point
FRAMEBUFFER_ATTACHMENT_OBJECT_NAME Z+ GetFramebufferAttachmentParameteriv 0 Name of object attached to framebuffer attachment point
FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL Z+ GetFramebufferAttachmentParameteriv 0 Mipmap level of texture image attached, if object attached is texture
FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE Z+ GetFramebufferAttachmentParameteriv \glc{NONE} Cubemap face of texture image attached, if object attached is cubemap texture
FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER Z GetFramebufferAttachmentParameteriv 0 Layer of texture image attached, if object attached is 3D texture
FRAMEBUFFER_ATTACHMENT_LAYERED B GetFramebufferAttachmentParameteriv \glc{FALSE} Framebuffer attachment is layered
FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING E GetFramebufferAttachmentParameteriv Encoding of components in the attached image
FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE E GetFramebufferAttachmentParameteriv Data type of components in the attached image
FRAMEBUFFER_ATTACHMENT_RED_SIZE Z+ GetFramebufferAttachmentParameteriv Size in bits of attached image's RED component
FRAMEBUFFER_ATTACHMENT_GREEN_SIZE Z+ GetFramebufferAttachmentParameteriv Size in bits of attached image's GREEN component
FRAMEBUFFER_ATTACHMENT_BLUE_SIZE Z+ GetFramebufferAttachmentParameteriv Size in bits of attached image's BLUE component
FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE Z+ GetFramebufferAttachmentParameteriv Size in bits of attached image's ALPHA component
FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE Z+ GetFramebufferAttachmentParameteriv Size in bits of attached image's DEPTH component
FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE Z+ GetFramebufferAttachmentParameteriv Size in bits of attached image's STENCIL component
S GetObjectLabel empty Debug label

§ Renderbuffer (state per renderbuffer object)

RENDERBUFFER_WIDTH Z+ GetRenderbufferParameteriv 0 Width of renderbuffer
RENDERBUFFER_HEIGHT Z+ GetRenderbufferParameteriv 0 Height of renderbuffer
RENDERBUFFER_INTERNAL_FORMAT E GetRenderbufferParameteriv \glc{RGBA4} Internal format of renderbuffer
RENDERBUFFER_RED_SIZE Z+ GetRenderbufferParameteriv 0 Size in bits of renderbuffer image's red component
RENDERBUFFER_GREEN_SIZE Z+ GetRenderbufferParameteriv 0 Size in bits of renderbuffer image's green component
RENDERBUFFER_BLUE_SIZE Z+ GetRenderbufferParameteriv 0 Size in bits of renderbuffer image's blue component
RENDERBUFFER_ALPHA_SIZE Z+ GetRenderbufferParameteriv 0 Size in bits of renderbuffer image's alpha component
RENDERBUFFER_DEPTH_SIZE Z+ GetRenderbufferParameteriv 0 Size in bits of renderbuffer image's depth component
RENDERBUFFER_STENCIL_SIZE Z+ GetRenderbufferParameteriv 0 Size in bits of renderbuffer image's stencil component
RENDERBUFFER_SAMPLES Z+ GetRenderbufferParameteriv 0 No. of samples
S GetObjectLabel empty Debug label

§ Pixels

UNPACK_IMAGE_HEIGHT Z+ GetIntegerv 0 Value of \glc{UNPACK_IMAGE_HEIGHT} pixel-store
UNPACK_SKIP_IMAGES Z+ GetIntegerv 0 Value of \glc{UNPACK_SKIP_IMAGES} pixel-store
UNPACK_ROW_LENGTH Z+ GetIntegerv 0 Value of \glc{UNPACK_ROW_LENGTH} pixel-store
UNPACK_SKIP_ROWS Z+ GetIntegerv 0 Value of \glc{UNPACK_SKIP_ROWS} pixel-store
UNPACK_SKIP_PIXELS Z+ GetIntegerv 0 Value of \glc{UNPACK_SKIP_PIXELS} pixel-store
UNPACK_ALIGNMENT Z+ GetIntegerv 4 Value of \glc{UNPACK_ALIGNMENT} pixel-store
PACK_ROW_LENGTH Z+ GetIntegerv 0 Value of \glc{PACK_ROW_LENGTH} pixel-store
PACK_SKIP_ROWS Z+ GetIntegerv 0 Value of \glc{PACK_SKIP_ROWS} pixel-store
PACK_SKIP_PIXELS Z+ GetIntegerv 0 Value of \glc{PACK_SKIP_PIXELS} pixel-store
PACK_ALIGNMENT Z+ GetIntegerv 4 Value of \glc{PACK_ALIGNMENT} pixel-store
PIXEL_PACK_BUFFER_BINDING Z+ GetIntegerv 0 Pixel pack buffer binding pixel-store
PIXEL_UNPACK_BUFFER_BINDING Z+ GetIntegerv 0 Pixel unpack buffer binding pixel-store

§ Shader Object State

SHADER_TYPE E GetShaderiv Type of shader (see table~\ref{tab:programs:shadertypes})
DELETE_STATUS B GetShaderiv \glc{FALSE} Shader flagged for deletion
COMPILE_STATUS B GetShaderiv \glc{FALSE} Last compile succeeded
S GetShaderInfoLog empty string Info log for shader objects
INFO_LOG_LENGTH Z+ GetShaderiv 0 Length of info log
S GetShaderSource empty string Source code for a shader
SHADER_SOURCE_LENGTH Z+ GetShaderiv 0 Length of source code
S GetObjectLabel empty Debug label

§ Program Pipeline Object State

ACTIVE_PROGRAM Z+ GetProgramPipelineiv 0 The program object that \func{Uniform*} commands update when PPO bound
VERTEX_SHADER Z+ GetProgramPipelineiv 0 Name of current vertex shader program object
GEOMETRY_SHADER Z+ GetProgramPipelineiv 0 Name of current geometry shader program object
TESS_CONTROL_SHADER Z+ GetProgramPipelineiv 0 Name of current TCS program object
TESS_EVALUATION_SHADER Z+ GetProgramPipelineiv 0 Name of current TES program object
FRAGMENT_SHADER Z+ GetProgramPipelineiv 0 Name of current fragment shader program object
COMPUTE_SHADER Z+ GetProgramPipelineiv 0 Name of current compute shader program object
VALIDATE_STATUS B GetProgramPipelineiv \glc{FALSE} Validate status of program pipeline object
S GetProgramPipelineInfoLog empty Info log for program pipeline object
INFO_LOG_LENGTH Z+ GetProgramPipelineiv 0 Length of info log
S GetObjectLabel empty Debug label

§ Program Object State

CURRENT_PROGRAM Z+ GetIntegerv 0 Name of current program object
PROGRAM_PIPELINE_BINDING Z+ GetIntegerv 0 Current program pipeline object binding
PROGRAM_SEPARABLE B GetProgramiv \glc{FALSE} Program object can be bound for separate pipeline stages
DELETE_STATUS B GetProgramiv \glc{FALSE} Program object deleted
LINK_STATUS B GetProgramiv \glc{FALSE} Last link attempt succeeded
VALIDATE_STATUS B GetProgramiv \glc{FALSE} Last validate attempt succeeded
ATTACHED_SHADERS Z+ GetProgramiv 0 No. of attached shader objects
0* × Z+ GetAttachedShaders empty Shader objects attached
S GetProgramInfoLog empty Info log for program object
INFO_LOG_LENGTH Z+ GetProgramiv 0 Length of info log
PROGRAM_BINARY_LENGTH Z+ GetProgramiv 0 Length of program binary
PROGRAM_BINARY_RETRIEVABLE_HINT B GetProgramiv \glc{FALSE} Retrievable binary hint enabled
0* × BMU GetProgramBinary Binary representation of program
COMPUTE_WORK_GROUP_SIZE 3 × Z+ GetProgramiv \{0, \dots \} Local work size of a linked compute program
S GetObjectLabel empty Debug label

§ Program Object State (cont.)

ACTIVE_UNIFORMS Z+ GetProgramiv 0 No. of active uniforms
0* × Z GetUniformLocation Location of active uniforms
0* × Z+ GetActiveUniform Size of active uniform
0* × Z+ GetActiveUniform Type of active uniform
0* × char GetActiveUniform empty Name of active uniform
ACTIVE_UNIFORM_MAX_LENGTH Z+ GetProgramiv 0 Max. active uniform name length
GetUniform 0 Uniform value
ACTIVE_ATTRIBUTES Z+ GetProgramiv 0 No. of active attributes

§ Program Object State (cont.)

0* × Z GetAttribLocation Location of active generic attribute
0* × Z+ GetActiveAttrib Size of active attribute
0* × Z+ GetActiveAttrib Type of active attribute
0* × char GetActiveAttrib empty Name of active attribute
ACTIVE_ATTRIBUTE_MAX_LENGTH Z+ GetProgramiv 0 Max. active attribute name length
GEOMETRY_VERTICES_OUT Z+ GetProgramiv 0 Max. no. of output vertices
GEOMETRY_INPUT_TYPE E GetProgramiv \glc{TRIANGLES} Primitive input type
GEOMETRY_OUTPUT_TYPE E GetProgramiv \glc{TRIANGLE_STRIP} Primitive output type
GEOMETRY_SHADER_INVOCATIONS Z+ GetProgramiv 1 No. of times a geom. shader should be executed for each input primitive
TRANSFORM_FEEDBACK_BUFFER_MODE E GetProgramiv \glc{INTERLEAVED_ATTRIBS} Transform feedback mode for the program
TRANSFORM_FEEDBACK_VARYINGS Z+ GetProgramiv 0 No. of outputs to stream to buffer object(s)
TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH Z+ GetProgramiv 0 Max. transform feedback output variable name length
Z+ GetTransformFeedbackVarying Size of each transform feedback output variable
Z+ GetTransformFeedbackVarying Type of each transform feedback output variable
0^{+} × char GetTransformFeedbackVarying Name of each transform feedback output variable

§ Program Object State (cont.)

ACTIVE_UNIFORM_BLOCKS Z+ GetProgramiv 0 No. of active uniform blocks in a program
ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH Z+ GetProgramiv 0 Length of longest active uniform block name
UNIFORM_TYPE 0* × E GetActiveUniformsiv Type of active uniform
UNIFORM_SIZE 0* × Z+ GetActiveUniformsiv Size of active uniform
UNIFORM_NAME_LENGTH 0* × Z+ GetActiveUniformsiv Uniform name length
UNIFORM_BLOCK_INDEX 0* × Z GetActiveUniformsiv Uniform block index
UNIFORM_OFFSET 0* × Z GetActiveUniformsiv Uniform buffer offset

§ Program Object State (cont.)

UNIFORM_ARRAY_STRIDE 0* × Z GetActiveUniformsiv Uniform buffer array stride
UNIFORM_MATRIX_STRIDE 0* × Z GetActiveUniformsiv Uniform buffer intra-matrix stride
UNIFORM_IS_ROW_MAJOR 0* × B GetActiveUniformsiv Whether uniform is a row-major matrix
UNIFORM_BLOCK_BINDING Z+ GetActiveUniformBlockiv 0 Uniform buffer binding points associated with the specified uniform block
UNIFORM_BLOCK_DATA_SIZE Z+ GetActiveUniformBlockiv Size of the storage needed to hold this uniform block's data
UNIFORM_BLOCK_NAME_LENGTH Z+ GetActiveUniformBlockiv Uniform block name length
UNIFORM_BLOCK_ACTIVE_UNIFORMS Z+ GetActiveUniformBlockiv Count of active uniforms in the specified uniform block
UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES n × Z+ GetActiveUniformBlockiv Array of active uniform indices of the specified uniform block
UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER B GetActiveUniformBlockiv 0 True if uniform block is actively referenced by the vertex stage
UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER B GetActiveUniformBlockiv 0 True if uniform block is actively referenced by the fragment stage

§ Program Object State (cont.)

TESS_CONTROL_OUTPUT_VERTICES Z+ GetProgramiv 0 Output patch size for tess. control shader
TESS_GEN_MODE E GetProgramiv \glc{QUADS} Base primitive type for tess. prim. generator
TESS_GEN_SPACING E GetProgramiv \glc{EQUAL} Spacing of tess. prim. generator edge subdivision
TESS_GEN_VERTEX_ORDER E GetProgramiv \glc{CCW} Order of vertices in primitives generated by tess. primitive generator
TESS_GEN_POINT_MODE B GetProgramiv \glc{FALSE} Tess. prim. generator emits points?
ACTIVE_ATOMIC_COUNTER_BUFFERS Z+ GetProgramiv 0 No. of active atomic counter buffers (AACBs) used by a program

§ Program Interface State

ACTIVE_RESOURCES n × Z+ GetProgramInterfaceiv 0 No. of active resources on an interface
MAX_NAME_LENGTH n × Z+ GetProgramInterfaceiv 0 Max. name length for active resources
MAX_NUM_ACTIVE_VARIABLES n × Z+ GetProgramInterfaceiv 0 Max. no. of active variables for active resources

§ Program Object Resource State

ACTIVE_VARIABLES Z+ GetProgramResourceiv List of active variables owned by active resource
ARRAY_SIZE Z+ GetProgramResourceiv Active resource array size
ARRAY_STRIDE Z+ GetProgramResourceiv Active resource array stride in memory
ATOMIC_COUNTER_BUFFER_INDEX Z+ GetProgramResourceiv Index of atomic counter buffer owning resource
BLOCK_INDEX Z+ GetProgramResourceiv Index of interface block owning resource
BUFFER_BINDING Z+ GetProgramResourceiv Buffer binding assigned to active resource
BUFFER_DATA_SIZE Z+ GetProgramResourceiv Min. buffer data size required for resource
IS_ROW_MAJOR Z+ GetProgramResourceiv Active resource stored as a row major matrix?
LOCATION Z+ GetProgramResourceiv Location assigned to active resource
MATRIX_STRIDE Z+ GetProgramResourceiv Active resource matrix stride in memory

§ Program Object Resource State (cont.)

NAME_LENGTH Z+ GetProgramResourceiv Length of active resource name
NUM_ACTIVE_VARIABLES Z+ GetProgramResourceiv No. of active variables owned by active resource
OFFSET Z+ GetProgramResourceiv Active resource offset in memory
REFERENCED_BY_VERTEX_SHADER Z+ GetProgramResourceiv Active resource used by vertex shader?
REFERENCED_BY_TESS_CONTROL_SHADER Z+ GetProgramResourceiv Active resource used by tess. control shader?
REFERENCED_BY_TESS_EVALUATION_SHADER Z+ GetProgramResourceiv Active resource used by tess. evaluation shader?
REFERENCED_BY_GEOMETRY_SHADER Z+ GetProgramResourceiv Active resource used by geometry shader?
REFERENCED_BY_FRAGMENT_SHADER Z+ GetProgramResourceiv Active resource used by fragment shader?
REFERENCED_BY_COMPUTE_SHADER Z+ GetProgramResourceiv Active resource used by compute shader?
TOP_LEVEL_ARRAY_SIZE Z+ GetProgramResourceiv Array size of top level shd. storage block member
TOP_LEVEL_ARRAY_STRIDE Z+ GetProgramResourceiv Array stride of top level shd. storage block member
TYPE Z+ GetProgramResourceiv Active resource data type

§ Vertex Shader State (not part of program objects)

CURRENT_VERTEX_ATTRIB MAX_VERTEX_ATTRIBS × R4 GetVertexAttribfv 0.0,0.0,0.0,1.0 Current generic vertex attribute values current

§ Query Object State

QUERY_RESULT Z+ GetQueryObjectuiv 0 or \glc{FALSE} Query object result
QUERY_RESULT_AVAILABLE B GetQueryObjectuiv \glc{TRUE} Is the query object result available?
S GetObjectLabel empty Debug label

§ Atomic Counter Buffer Binding State

ATOMIC_COUNTER_BUFFER_BINDING Z+ GetIntegerv 0 Current value of generic atomic counter buffer buffer
ATOMIC_COUNTER_BUFFER_BINDING n × Z+ GetIntegeri_v 0 Buffer object bound to each atomic counter buffer binding point
ATOMIC_COUNTER_BUFFER_START n × Z+ GetInteger64i_v 0 Start offset of binding range for each atomic counter buffer
ATOMIC_COUNTER_BUFFER_SIZE n × Z+ GetInteger64i_v 0 Size of binding range for each atomic counter buffer

§ Image State (state per image unit)

IMAGE_BINDING_NAME 8* × Z+ GetIntegeri_v 0 Name of bound texture object
IMAGE_BINDING_LEVEL 8* × Z+ GetIntegeri_v 0 Level of bound texture object
IMAGE_BINDING_LAYERED 8* × B GetBooleani_v \glc{FALSE} Texture object bound with multiple layers
IMAGE_BINDING_LAYER 8* × Z+ GetIntegeri_v 0 Layer of bound texture, if not layered
IMAGE_BINDING_ACCESS 8* × E GetIntegeri_v \glc{READ_ONLY} Read and/or write access for bound texture
IMAGE_BINDING_FORMAT 8* × Z+ GetIntegeri_v \glc{R32UI} Format used for accesses to bound texture

§ Shader Storage Buffer Binding State

SHADER_STORAGE_BUFFER_BINDING Z+ GetIntegerv 0 Current value of generic shader storage buffer binding
SHADER_STORAGE_BUFFER_BINDING n × Z+ GetIntegeri_v 0 Buffer object bound to each shader storage buffer binding point
SHADER_STORAGE_BUFFER_START n × Z+ GetInteger64i_v 0 Start offset of binding range for each shader storage buffer
SHADER_STORAGE_BUFFER_SIZE n × Z+ GetInteger64i_v 0 Size of binding range for each shader storage buffer

§ Transform Feedback State

TRANSFORM_FEEDBACK_BUFFER_BINDING n × Z+ GetIntegeri_v 0 Buffer object bound to each transform feedback attribute stream
TRANSFORM_FEEDBACK_BUFFER_START n × Z+ GetInteger64i_v 0 Start offset of binding range for each transform feedback attrib. stream
TRANSFORM_FEEDBACK_BUFFER_SIZE n × Z+ GetInteger64i_v 0 Size of binding range for each transform feedback attrib. stream
TRANSFORM_FEEDBACK_PAUSED B GetBooleanv \glc{FALSE} Is transform feedback paused on this object?
TRANSFORM_FEEDBACK_ACTIVE B GetBooleanv \glc{FALSE} Is transform feedback active on this object?
S GetObjectLabel empty Debug label

§ Uniform Buffer Binding State

UNIFORM_BUFFER_BINDING Z+ GetIntegerv 0 Uniform buffer object bound to the context for buffer object manipulation
UNIFORM_BUFFER_BINDING n × Z+ GetIntegeri_v 0 Uniform buffer object bound to the specified context binding point
UNIFORM_BUFFER_START n × Z+ GetInteger64i_v 0 Start of bound uniform buffer region
UNIFORM_BUFFER_SIZE n × Z+ GetInteger64i_v 0 Size of bound uniform buffer region

§ Sync (state per sync object)

OBJECT_TYPE E GetSynciv \glc{SYNC_FENCE} Type of sync object
SYNC_STATUS E GetSynciv \glc{UNSIGNALED} Sync object status
SYNC_CONDITION E GetSynciv \glc{SYNC_GPU_COMMANDS_COMPLETE} Sync object condition
SYNC_FLAGS Z GetSynciv 0 Sync object flags
S GetObjectPtrLabel empty Debug label

§ Hints

GENERATE_MIPMAP_HINT E GetIntegerv \glc{DONT_CARE} Mipmap generation hint hint
FRAGMENT_SHADER_DERIVATIVE_HINT E GetIntegerv \glc{DONT_CARE} Fragment shader derivative accuracy hint hint

§ Compute Dispatch State

DISPATCH_INDIRECT_BUFFER_BINDING Z+ GetIntegerv 0 Indirect dispatch buffer binding

§ Implementation Dependent Values

  1. † These limits are tied to the values of \glc{MAX_TEXTURE_SIZE} (for width/height) and \glc{MAX_SAMPLES} (for samples) respectively.
SUBPIXEL_BITS Z+ GetIntegerv 4 No. of bits of subpixel precision in screen $x_w$ and $y_w$
MAX_ELEMENT_INDEX Z+ GetInteger64v $2^{24}-1$ Max. element index
MAX_3D_TEXTURE_SIZE Z+ GetIntegerv 256 Max. 3D texture image dimension
MAX_TEXTURE_SIZE Z+ GetIntegerv 2048 Max. 2D texture image dimension
MAX_ARRAY_TEXTURE_LAYERS Z+ GetIntegerv 256 Max. no. of layers for texture arrays
MAX_TEXTURE_LOD_BIAS R+ GetFloatv 2.0 Max. absolute texture level of detail bias
MAX_CUBE_MAP_TEXTURE_SIZE Z+ GetIntegerv 2048 Max. cube map texture image dimension
MAX_RENDERBUFFER_SIZE Z+ GetIntegerv 2048 Max. width and height of renderbuffers
ALIASED_POINT_SIZE_RANGE 2 × R+ GetFloatv 1,1 Range (lo to hi) of point sizes
ALIASED_LINE_WIDTH_RANGE 2 × R+ GetFloatv 1,1 Range (lo to hi) of line widths
MULTISAMPLE_LINE_WIDTH_RANGE 2 × R+ GetFloatv 1,1 Range (lo to hi) of multisampled line widths
MULTISAMPLE_LINE_WIDTH_GRANULARITY R+ GetFloatv Multisampled line width granularity
MAX_DRAW_BUFFERS Z+ GetIntegerv $4$ Max. no. of active draw buffers
MAX_FRAMEBUFFER_WIDTH Z+ GetIntegerv 2048 Max. width for framebuffer object
MAX_FRAMEBUFFER_HEIGHT Z+ GetIntegerv 2048 Max. height for framebuffer object
MAX_FRAMEBUFFER_LAYERS Z+ GetIntegerv 256 Max. layer count for layered framebuffer object
MAX_FRAMEBUFFER_SAMPLES Z+ GetIntegerv 4 Max. sample count for framebuffer object
MAX_COLOR_ATTACHMENTS Z+ GetIntegerv 4 Max. no. of FBO attachment points for color buffers

§ Implementation Dependent Values (cont.)

  1. † These queries return the maximum no. of samples for all internal formats required to support multisampled rendering.
  2. ‡ “ULP” means “Units in the Last Place” or “Unit of Least Precision”.
MIN_FRAGMENT_INTERPOLATION_OFFSET R GetFloatv -0.5 Furthest negative offset for \glv{interpolateAtOffset}
MAX_FRAGMENT_INTERPOLATION_OFFSET R GetFloatv +0.5 - 1 ULP Furthest positive offset for \glv{interpolateAtOffset}
FRAGMENT_INTERPOLATION_OFFSET_BITS Z+ GetIntegerv 4 Subpixel bits for \glv{interpolateAtOffset}
MAX_VIEWPORT_DIMS 2 × Z+ GetIntegerv see \ref{view:port} Max. viewport dimensions
MAX_SAMPLES Z+ GetIntegerv 4 Max. no. of samples supported for multisampling for all internal formats required to support multisampled rendering.
MAX_SAMPLE_MASK_WORDS Z+ GetIntegerv 1 Max. no. of sample mask words
MAX_COLOR_TEXTURE_SAMPLES Z+ GetIntegerv 1 Max. no. of samples in a color multisample texture
MAX_DEPTH_TEXTURE_SAMPLES Z+ GetIntegerv 1 Max. no. of samples in a depth/stencil multisample texture
MAX_INTEGER_SAMPLES Z+ GetIntegerv 1 Max. no. of samples in integer format multisample buffers
MAX_SERVER_WAIT_TIMEOUT Z+ GetInteger64v 0 Max. \glr{WaitSync} timeout interval
LAYER_PROVOKING_VERTEX E GetIntegerv See sec.~\ref{geomshad:exec} Vertex convention followed by \glv{gl_Layer}
PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED B GetBooleanv Primitive restart support for \glc{PATCHES}

§ Implementation Dependent Values (cont.)

  1. † The value of {\small\tt TEXTURE_BUFFER_OFFSET_ALIGNMENT} is the maximum allowed, not the minimum.
MAX_VERTEX_ATTRIB_RELATIVE_OFFSET Z GetIntegerv 2047 Max. offset added to vertex buffer binding offset
MAX_VERTEX_ATTRIB_BINDINGS Z GetIntegerv 16 Max. no. of vertex buffers
MAX_VERTEX_ATTRIB_STRIDE Z GetIntegerv 2048 Max. vertex attribute stride
MAX_ELEMENTS_INDICES Z+ GetIntegerv Recommended max. no. of \glr{DrawRangeElements} indices
MAX_ELEMENTS_VERTICES Z+ GetIntegerv Recommended max. no. of \glr{DrawRangeElements} vertices
MAX_TEXTURE_BUFFER_SIZE Z+ GetIntegerv 65536 No. of addressable texels for buffer textures
NUM_COMPRESSED_TEXTURE_FORMATS Z+ GetIntegerv 10 No. of compressed texture formats
COMPRESSED_TEXTURE_FORMATS 10* × Z+ GetIntegerv Enumerated compressed texture formats
NUM_PROGRAM_BINARY_FORMATS Z+ GetIntegerv 0 No. of program binary formats
PROGRAM_BINARY_FORMATS 0* × Z+ GetIntegerv Enumerated program binary formats
NUM_SHADER_BINARY_FORMATS Z+ GetIntegerv 0 No. of shader binary formats
SHADER_BINARY_FORMATS 0* × Z+ GetIntegerv Enumerated shader binary formats
SHADER_COMPILER B GetBooleanv Shader compiler supported, always \glc{TRUE}
TEXTURE_BUFFER_OFFSET_ALIGNMENT Z+ GetIntegerv 256 Min. required alignment for texture buffer offsets
2 × 6 × 2 × Z+ GetShaderPrecisionFormat Shader data type ranges
2 × 6 × Z+ GetShaderPrecisionFormat Shader data type precisions

§ Implementation Dependent Version and Extension Support

EXTENSIONS 0* × S GetStringi Supported individual extension names
NUM_EXTENSIONS Z+ GetIntegerv No. of individual extension names
MAJOR_VERSION Z+ GetIntegerv 3 Major version no. supported
MINOR_VERSION Z+ GetIntegerv Minor version no. supported
CONTEXT_FLAGS Z+ GetIntegerv Context flags
RENDERER S GetString Renderer string
SHADING_LANGUAGE_VERSION S GetString Shading Language version supported
VENDOR S GetString Vendor string
VERSION S GetString OpenGL ES version supported

§ Implementation Dependent Vertex Shader Limits

MAX_VERTEX_ATTRIBS Z+ GetIntegerv $16$ No. of active vertex attributes
MAX_VERTEX_UNIFORM_COMPONENTS Z+ GetIntegerv 1024 No. of components for vertex shader uniform variables
MAX_VERTEX_UNIFORM_VECTORS Z+ GetIntegerv 256 No. of vectors for vertex shader uniform variables
MAX_VERTEX_UNIFORM_BLOCKS Z+ GetIntegerv 12 Max. no. of vertex uniform buffers per program
MAX_VERTEX_OUTPUT_COMPONENTS Z+ GetIntegerv 64 Max. no. of components of outputs written by a vertex shader
MAX_VERTEX_TEXTURE_IMAGE_UNITS Z+ GetIntegerv 16 No. of texture image units accessible by a vertex shader
MAX_VERTEX_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 0 No. of atomic counter buffers accessed by a vertex shader
MAX_VERTEX_ATOMIC_COUNTERS Z+ GetIntegerv 0 No. of atomic counters accessed by a vertex shader
MAX_VERTEX_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 0 No. of shader storage blocks accessed by a vertex shader

§ Implementation Dependent Tessellation Shader Limits

MAX_TESS_GEN_LEVEL Z+ GetIntegerv 64 Max. level supported by tess. primitive generator
MAX_PATCH_VERTICES Z+ GetIntegerv 32 Max. patch size
MAX_TESS_CONTROL_UNIFORM_COMPONENTS Z+ GetIntegerv 1024 No. of words for tess. control shader (TCS) uniforms
MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS Z+ GetIntegerv 16 No. of tex. image units for TCS
MAX_TESS_CONTROL_OUTPUT_COMPONENTS Z+ GetIntegerv 64 No. components for TCS per-vertex outputs
MAX_TESS_PATCH_COMPONENTS Z+ GetIntegerv 120 No. components for TCS per-patch outputs
MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS Z+ GetIntegerv 2048 Total no. components for TCS per-patch outputs
MAX_TESS_CONTROL_INPUT_COMPONENTS Z+ GetIntegerv 64 No. components for TCS per-vertex inputs
MAX_TESS_CONTROL_UNIFORM_BLOCKS Z+ GetIntegerv $12*$ No. of supported uniform blocks for TCS
MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 0 No. of atomic counter (AC) buffers accessed by a TCS
MAX_TESS_CONTROL_ATOMIC_COUNTERS Z+ GetIntegerv 0 No. of ACs accessed by a TCS
MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 0 No. of shader storage blocks accessed by a tess. control shader

§ Implementation Dependent Tessellation Shader Limits (cont.)

MAX_TESS_EVALUATION_UNIFORM_COMPONENTS Z+ GetIntegerv 1024 No. of words for tess. evaluation shader (TES) uniforms
MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS Z+ GetIntegerv 16 No. of tex. image units for TES
MAX_TESS_EVALUATION_OUTPUT_COMPONENTS Z+ GetIntegerv 64 No. components for TES per-vertex outputs
MAX_TESS_EVALUATION_INPUT_COMPONENTS Z+ GetIntegerv 64 No. components for TES per-vertex inputs
MAX_TESS_EVALUATION_UNIFORM_BLOCKS Z+ GetIntegerv $12*$ No. of supported uniform blocks for TES
MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 0 No. of AC buffers accessed by a TES
MAX_TESS_EVALUATION_ATOMIC_COUNTERS Z+ GetIntegerv 0 No. of ACs accessed by a TES
MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 0 No. of shader storage blocks accessed by a tess. evaluation shader

§ Implementation Dependent Geometry Shader Limits

MAX_GEOMETRY_UNIFORM_COMPONENTS Z+ GetIntegerv 1024 No. of components for geometry shader (GS) uniform variables
MAX_GEOMETRY_UNIFORM_BLOCKS Z+ GetIntegerv $12*$ Max. no. of GS uniform buffers per program
MAX_GEOMETRY_INPUT_COMPONENTS Z+ GetIntegerv 64 Max. no. of components of inputs read by a GS
MAX_GEOMETRY_OUTPUT_COMPONENTS Z+ GetIntegerv 64 Max. no. of components of outputs written by a GS
MAX_GEOMETRY_OUTPUT_VERTICES Z+ GetIntegerv 256 Max. no. of vertices that any GS {can} emit
MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS Z+ GetIntegerv 1024 Max. no. of total components (all vertices) of active outputs that a GS can emit
MAX_GEOMETRY_TEXTURE_IMAGE_UNITS Z+ GetIntegerv 16 No. of texture image units accessible by a GS
MAX_GEOMETRY_SHADER_INVOCATIONS Z+ GetIntegerv 32 Max. supported GS invocation count
MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 0 No. of atomic counter buffers accessed by a GS
MAX_GEOMETRY_ATOMIC_COUNTERS Z+ GetIntegerv 0 No. of atomic counters accessed by a GS
MAX_GEOMETRY_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 0 No. of shader storage blocks accessed by a GS

§ Implementation Dependent Fragment Shader Limits

MAX_FRAGMENT_UNIFORM_COMPONENTS Z+ GetIntegerv 1024 No. of components for fragment shader uniform variables
MAX_FRAGMENT_UNIFORM_VECTORS Z+ GetIntegerv 256 No. of vectors for fragment shader uniform variables
MAX_FRAGMENT_UNIFORM_BLOCKS Z+ GetIntegerv 12 Max. no. of fragment uniform buffers per program
MAX_FRAGMENT_INPUT_COMPONENTS Z+ GetIntegerv 60 Max. no. of components of inputs read by a fragment shader
MAX_TEXTURE_IMAGE_UNITS Z+ GetIntegerv 16 No. of texture image units accessible by a fragment shader
MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 1 No. of atomic counter buffers accessed by a fragment shader
MAX_FRAGMENT_ATOMIC_COUNTERS Z+ GetIntegerv 8 No. of atomic counters accessed by a fragment shader
MAX_FRAGMENT_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 4 No. of shader storage blocks accessed by a fragment shader
MIN_PROGRAM_TEXTURE_GATHER_OFFSET Z GetIntegerv Min. texel offset for \glv{textureGather}
MAX_PROGRAM_TEXTURE_GATHER_OFFSET Z+ GetIntegerv Max. texel offset for \glv{textureGather}
MIN_PROGRAM_TEXEL_OFFSET Z GetIntegerv -8 Min. texel offset allowed in lookup
MAX_PROGRAM_TEXEL_OFFSET Z GetIntegerv 7 Max. texel offset allowed in lookup

§ Implementation Dependent Compute Shader Limits

  1. † The minimum value is \glc{MAX_COMPUTE_UNIFORM_BLOCKS} $\times$ \glc{MAX_UNIFORM_BLOCK_SIZE} / 4 + \glc{MAX_COMPUTE_UNIFORM_COMPONENTS}
MAX_COMPUTE_WORK_GROUP_COUNT 3 × Z+ GetIntegeri_v 65535 Max. no. of workgroups that may be dispatched by a single dispatch command (per dimension)
MAX_COMPUTE_WORK_GROUP_SIZE 3 × Z+ GetIntegeri_v 128 (x, y), 64 (z) Max. local size of a compute workgroup (per dimension)
MAX_COMPUTE_WORK_GROUP_INVOCATIONS Z+ GetIntegerv 128 Max. total compute shader (CS) invocations in a single local workgroup
MAX_COMPUTE_UNIFORM_BLOCKS Z+ GetIntegerv 12 Max. no. of uniform blocks per compute program
MAX_COMPUTE_TEXTURE_IMAGE_UNITS Z+ GetIntegerv 16 Max. no. of texture image units accessible by a CS
MAX_COMPUTE_SHARED_MEMORY_SIZE Z+ GetIntegerv 16384 Max. total storage size of all variables declared as {\em shared} in all CSs linked into a single program object
MAX_COMPUTE_UNIFORM_COMPONENTS Z+ GetIntegerv 1024 No. of components for CS uniform variables
MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 1 No. of atomic counter buffers accessed by a CS
MAX_COMPUTE_ATOMIC_COUNTERS Z+ GetIntegerv 8 No. of atomic counters accessed by a CS
MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS Z+ GetIntegerv No. of words for CS uniform variables in all uniform blocks, including the default
MAX_COMPUTE_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 4 No. of shader storage blocks accessed by a compute shader

§ Implementation Dependent Aggregate Shader Limits

  1. † The value of {\small\tt UNIFORM_BUFFER_OFFSET_ALIGNMENT} is the maximum allowed, not the minimum.
  2. ‡ The minimum value for each stage is {\small\tt MAX_{\em{stage}}_UNIFORM_BLOCKS} $\times$ {\small\tt MAX_UNIFORM_BLOCK_SIZE / 4} + {\small\tt MAX_{\em{stage}}_UNIFORM_COMPONENTS}. The limit is totalled for all uniform variables in all uniform blocks, including the default.
MAX_UNIFORM_BUFFER_BINDINGS Z+ GetIntegerv 72 Max. no. of uniform buffer binding points on the context
MAX_UNIFORM_BLOCK_SIZE Z+ GetInteger64v 16384 Max. size in basic machine units of a uniform block
UNIFORM_BUFFER_OFFSET_ALIGNMENT Z+ GetIntegerv 256 {Min.} required alignment for uniform buffer sizes and offsets
MAX_COMBINED_UNIFORM_BLOCKS Z+ GetIntegerv $60*$ Max. no. of uniform buffers per program
MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS Z+ GetInteger64v No. of words for vertex shader uniform var. in all uniform blocks (incl. default)
MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS Z+ GetIntegerv No. of words for TCS uniform var. in all uniform blocks (incl. default)
MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS Z+ GetIntegerv No. of words for TES uniform var. in all uniform blocks (incl. default)
MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS Z+ GetIntegerv No. of words for geometry shader uniform var. in all uniform blocks (incl. default)
MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS Z+ GetInteger64v No. of words for fragment shader uniform var. in all uniform blocks (incl. default)

§ Implementation Dependent Aggregate Shader Limits (cont.)

MAX_VARYING_COMPONENTS Z+ GetIntegerv 60 No. of components for output variables
MAX_VARYING_VECTORS Z+ GetIntegerv 15 No. of vectors for output variables
MAX_COMBINED_TEXTURE_IMAGE_UNITS Z+ GetIntegerv $96$ Total no. of texture units accessible by the GL
MAX_COMBINED_SHADER_OUTPUT_RESOURCES Z+ GetIntegerv 4 Limit on active image units, shader storage blocks, and frag. outputs
MAX_UNIFORM_LOCATIONS Z+ GetIntegerv 1024 Max. no. of user-assignable uniform locations
MAX_ATOMIC_COUNTER_BUFFER_BINDINGS Z+ GetIntegerv 1 Max. no. of atomic counter buffer bindings
MAX_ATOMIC_COUNTER_BUFFER_SIZE Z+ GetIntegerv 32 Max. size in basic machine units of an atomic counter buffer
MAX_COMBINED_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 1 Max. no. of atomic counter buffers per program
MAX_COMBINED_ATOMIC_COUNTERS Z+ GetIntegerv 8 Max. no. of atomic counter uniforms per program

§ Implementation Dependent Aggregate Shader Limits (cont.)

  1. † The value of {\small\tt SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT} is the maximum allowed, not the minimum.
MAX_IMAGE_UNITS Z+ GetIntegerv $4$ No. of units for image load/store/atomics
MAX_VERTEX_IMAGE_UNIFORMS Z+ GetIntegerv 0 No. of image variables in vertex shaders
MAX_TESS_CONTROL_IMAGE_UNIFORMS Z+ GetIntegerv 0 No. of image variables in tess. control shaders
MAX_TESS_EVALUATION_IMAGE_UNIFORMS Z+ GetIntegerv 0 No. of image variables in tess. eval. shaders
MAX_GEOMETRY_IMAGE_UNIFORMS Z+ GetIntegerv 0 No. of image variables in geometry shaders
MAX_FRAGMENT_IMAGE_UNIFORMS Z+ GetIntegerv 4 No. of image variables in fragment shaders
MAX_COMPUTE_IMAGE_UNIFORMS Z+ GetIntegerv 4 No. of image variables in CSs
MAX_COMBINED_IMAGE_UNIFORMS Z+ GetIntegerv 4 No. of image variables in all shaders
MAX_SHADER_STORAGE_BUFFER_BINDINGS Z+ GetIntegerv 4 Max. no. of shader storage buffer bindings in the context
MAX_SHADER_STORAGE_BLOCK_SIZE Z+ GetInteger64v $2^{27}$ Max. size in basic machine units of a shader storage block
MAX_COMBINED_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 4 No. of shader storage blocks accessed by a program
SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT Z+ GetIntegerv 256 {Min.} required alignment for shader storage buffer binding offsets

§ Debug Output State

  1. † The initial value of \glc{DEBUG_OUTPUT} is \glc{TRUE} in a debug context and \glc{FALSE} in a non-debug context.
DEBUG_CALLBACK_FUNCTION Y GetPointerv \glc{NULL} The current debug output callback function pointer
DEBUG_CALLBACK_USER_PARAM Y GetPointerv \glc{NULL} The current debug output callback user parameter
DEBUG_LOGGED_MESSAGES Z+ GetIntegerv 0 The no. of messages currently in the debug message log
DEBUG_NEXT_LOGGED_MESSAGE_LENGTH Z+ GetIntegerv 0 The string length of the oldest debug message in the debug message log
DEBUG_OUTPUT_SYNCHRONOUS B IsEnabled \glc{FALSE} The enabled state for synchronous debug message callbacks
DEBUG_GROUP_STACK_DEPTH Z+ GetIntegerv 1 Debug group stack pointer
DEBUG_OUTPUT B IsEnabled Depends on the context The enabled state for debug output functionality

§ Implementation Dependent Debug Output State

MAX_DEBUG_MESSAGE_LENGTH Z+ GetIntegerv 1 The max length of a debug message string, including its null terminator
MAX_DEBUG_LOGGED_MESSAGES Z+ GetIntegerv 1 The max no. of messages stored in the debug message log
MAX_DEBUG_GROUP_STACK_DEPTH Z+ GetIntegerv 64 Max. group stack depth
MAX_LABEL_LENGTH Z+ GetIntegerv 256 Max. length of a label string

§ Implementation Dependent Transform Feedback Limits

MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS Z+ GetIntegerv 64 Max. no. of components to write to a single buffer in interleaved mode
MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS Z+ GetIntegerv 4 Max. no. of separate attributes or outputs that can be captured in transform feedback
MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS Z+ GetIntegerv 4 Max. no. of components per attribute or output in separate mode

§ Framebuffer Dependent Values

  1. † This state is queried from the currently bound read framebuffer, rather than the draw framebuffer. $n$ is the value of \glc{SAMPLES}.
SAMPLE_BUFFERS Z2 GetIntegerv 0 No. of multisample buffers
SAMPLES Z+ GetIntegerv 0 Coverage mask size
RED_BITS Z+ GetIntegerv No. of bits in RED color buffer component
GREEN_BITS Z+ GetIntegerv No. of bits in GREEN color buffer component
BLUE_BITS Z+ GetIntegerv No. of bits in BLUE color buffer component
ALPHA_BITS Z+ GetIntegerv No. of bits in ALPHA color buffer component
DEPTH_BITS Z+ GetIntegerv No. of depth buffer planes
STENCIL_BITS Z+ GetIntegerv No. of stencil planes
IMPLEMENTATION_COLOR_READ_TYPE E GetIntegerv Implementation preferred pixel {\em type}
IMPLEMENTATION_COLOR_READ_FORMAT E GetIntegerv Implementation preferred pixel {\em format}
SAMPLE_POSITION n × 2 × R[0,1] GetMultisamplefv impl-dependent Explicit sample positions

§ Miscellaneous

n × E GetError 0 Current error code(s)
n × B \glc{FALSE} True if there is a corresponding error
CURRENT_QUERY 3 × Z+ GetQueryiv 0 Active query object names
COPY_READ_BUFFER_BINDING Z+ GetIntegerv 0 Buffer object bound to copy buffer “read” bind point
COPY_WRITE_BUFFER_BINDING Z+ GetIntegerv 0 Buffer object bound to copy buffer “write” bind point
RESET_NOTIFICATION_STRATEGY Z2 GetIntegerv See sec.~\ref{fund:reset} Reset notification behavior
TEXTURE_BUFFER_BINDING Z+ GetIntegerv 0 Buffer object bound to generic texture buffer bind point texture

OpenGL 4.6 state tables

Get value Type Get command Initial value Description Attribute

§ GL Internal State (inaccessible)

(for \func{Begin}/\func{End} state variables)

E 0 When $\neq 0$, indicates primitive \arg{mode}
V Previous vertex in \bgl{line}
B Indicates if {\em line-vertex} is the first
V First vertex of a \bgl{line loop}
Z+ Line stipple counter
n × V Vertices inside of \bgl{polygon}
Z+ No. of {\em polygon-vertices}
2 × V Previous two vertices in a \bgl{triangle strip}
Z3 No. of vertices so far in triangle strip: 0, 1, or more
Z2 Triangle strip A/B vertex pointer
3 × V Vertices of the quad under construction
Z4 No. of vertices so far in quad strip: 0, 1, 2, or more

§ Current Values and Associated Data

CURRENT_COLOR C GetFloatv 1.0,1.0,1.0,1.0 Current color current
CURRENT_SECONDARY_COLOR C GetFloatv 0.0,0.0,0.0,1.0 Current secondary color current
CURRENT_INDEX CI GetIntegerv 1 Current color index current
CURRENT_TEXTURE_COORDS MAX_TEXTURE_COORDS × T GetFloatv 0,0,0,1 Current texture coordinates current
CURRENT_NORMAL N GetFloatv 0,0,1 Current normal current
CURRENT_FOG_COORD R GetFloatv 0 Current fog coordinate current
C Color associated with last vertex
CI Color index associated with last vertex
T Texture coordinates associated with last vertex
CURRENT_RASTER_POSITION R4 GetFloatv 0,0,0,1 Current raster position current
CURRENT_RASTER_DISTANCE R+ GetFloatv 0 Current raster distance current
CURRENT_RASTER_COLOR C GetFloatv 1.0,1.0,1.0,1.0 Color associated with raster position current
CURRENT_RASTER_SECONDARY_COLOR C GetFloatv 0.0,0.0,0.0,1.0 Secondary color associated with raster position current
CURRENT_RASTER_INDEX CI GetIntegerv 1 Color index associated with raster position current
CURRENT_RASTER_TEXTURE_COORDS MAX_TEXTURE_COORDS × T GetFloatv 0,0,0,1 Texture coordinates associated with raster position current
CURRENT_RASTER_POSITION_VALID B GetBooleanv \glc{TRUE} Raster position valid bit current
EDGE_FLAG B GetBooleanv \glc{TRUE} Edge flag current
PATCH_VERTICES Z+ GetIntegerv 3 No. of vertices in input patch current
PATCH_DEFAULT_OUTER_LEVEL 4 × R GetFloatv $(1.0,1.0,1.0,1.0)$ Default outer tess. level w/o control shader
PATCH_DEFAULT_INNER_LEVEL 2 × R GetFloatv $(1.0,1.0)$ Default inner tess. level w/o control shader

§ Vertex Array Object State

VERTEX_ARRAY B IsEnabled \glc{FALSE} Vertex array enable vertex-array
VERTEX_ARRAY_SIZE Z+ GetIntegerv 4 Coordinates per vertex vertex-array
VERTEX_ARRAY_TYPE E GetIntegerv \glc{FLOAT} Type of vertex coordinates vertex-array
VERTEX_ARRAY_STRIDE Z+ GetIntegerv 0 Stride between vertices vertex-array
VERTEX_ARRAY_POINTER Y GetPointerv 0 Pointer to the vertex array vertex-array
NORMAL_ARRAY B IsEnabled \glc{FALSE} Normal array enable vertex-array
NORMAL_ARRAY_TYPE E GetIntegerv \glc{FLOAT} Type of normal coordinates vertex-array
NORMAL_ARRAY_STRIDE Z+ GetIntegerv 0 Stride between normals vertex-array
NORMAL_ARRAY_POINTER Y GetPointerv 0 Pointer to the normal array vertex-array
FOG_COORD_ARRAY B IsEnabled \glc{FALSE} Fog coord array enable vertex-array
FOG_COORD_ARRAY_TYPE E GetIntegerv \glc{FLOAT} Type of fog coord components vertex-array
FOG_COORD_ARRAY_STRIDE Z+ GetIntegerv 0 Stride between fog coords vertex-array
FOG_COORD_ARRAY_POINTER Y GetPointerv 0 Pointer to the fog coord array vertex-array
COLOR_ARRAY B IsEnabled \glc{FALSE} Color array enable vertex-array
COLOR_ARRAY_SIZE Z3 GetIntegerv 4 Color components per vertex vertex-array
COLOR_ARRAY_TYPE E GetIntegerv \glc{FLOAT} Type of color components vertex-array
COLOR_ARRAY_STRIDE Z+ GetIntegerv 0 Stride between colors vertex-array
COLOR_ARRAY_POINTER Y GetPointerv 0 Pointer to the color array vertex-array

§ Vertex Array Object State (cont.)

SECONDARY_COLOR_ARRAY B IsEnabled \glc{FALSE} Secondary color array enable vertex-array
SECONDARY_COLOR_ARRAY_SIZE Z2 GetIntegerv 3 Secondary color components per vertex vertex-array
SECONDARY_COLOR_ARRAY_TYPE E GetIntegerv \glc{FLOAT} Type of secondary color components vertex-array
SECONDARY_COLOR_ARRAY_STRIDE Z+ GetIntegerv 0 Stride between secondary colors vertex-array
SECONDARY_COLOR_ARRAY_POINTER Y GetPointerv 0 Pointer to the secondary color array vertex-array
INDEX_ARRAY B IsEnabled \glc{FALSE} Index array enable vertex-array
INDEX_ARRAY_TYPE E GetIntegerv \glc{FLOAT} Type of indices vertex-array
INDEX_ARRAY_STRIDE Z+ GetIntegerv 0 Stride between indices vertex-array
INDEX_ARRAY_POINTER Y GetPointerv 0 Pointer to the index array vertex-array
TEXTURE_COORD_ARRAY MAX_TEXTURE_COORDS × B IsEnabled \glc{FALSE} Texture coordinate array enable vertex-array
TEXTURE_COORD_ARRAY_SIZE MAX_TEXTURE_COORDS × Z+ GetIntegerv 4 Coordinates per element vertex-array
TEXTURE_COORD_ARRAY_TYPE MAX_TEXTURE_COORDS × E GetIntegerv \glc{FLOAT} Type of texture coordinates vertex-array
TEXTURE_COORD_ARRAY_STRIDE MAX_TEXTURE_COORDS × Z+ GetIntegerv 0 Stride between texture coordinates vertex-array
TEXTURE_COORD_ARRAY_POINTER MAX_TEXTURE_COORDS × Y GetPointerv 0 Pointer to the texture coordinate array vertex-array

§ Vertex Array Object State (cont.)

VERTEX_ATTRIB_ARRAY_ENABLED MAX_VERTEX_ATTRIBS × B GetVertexAttribiv \glc{FALSE} Vertex attrib array enable vertex-array
VERTEX_ATTRIB_ARRAY_SIZE MAX_VERTEX_ATTRIBS × Z5 GetVertexAttribiv 4 Vertex attrib array size vertex-array
VERTEX_ATTRIB_ARRAY_STRIDE MAX_VERTEX_ATTRIBS × Z+ GetVertexAttribiv 0 Vertex attrib array stride vertex-array
VERTEX_ATTRIB_ARRAY_TYPE MAX_VERTEX_ATTRIBS × E GetVertexAttribiv \glc{FLOAT} Vertex attrib array type vertex-array
VERTEX_ATTRIB_ARRAY_NORMALIZED MAX_VERTEX_ATTRIBS × B GetVertexAttribiv \glc{FALSE} Vertex attrib array normalized vertex-array
VERTEX_ATTRIB_ARRAY_INTEGER MAX_VERTEX_ATTRIBS × B GetVertexAttribiv \glc{FALSE} Vertex attrib array has unconverted integers vertex-array
VERTEX_ATTRIB_ARRAY_LONG MAX_VERTEX_ATTRIBS × B GetVertexAttribiv \glc{FALSE} Vertex attrib array has unconverted doubles vertex-array
VERTEX_ATTRIB_ARRAY_DIVISOR MAX_VERTEX_ATTRIBS × Z+ GetVertexAttribiv 0 Vertex attrib array instance divisor vertex-array
VERTEX_ATTRIB_ARRAY_POINTER MAX_VERTEX_ATTRIBS × Y GetVertexAttribPointerv \glc{NULL} Vertex attrib array pointer vertex-array
EDGE_FLAG_ARRAY B IsEnabled \glc{FALSE} Edge flag array enable vertex-array
EDGE_FLAG_ARRAY_STRIDE Z+ GetIntegerv 0 Stride between edge flags vertex-array
EDGE_FLAG_ARRAY_POINTER Y GetPointerv 0 Pointer to the edge flag array vertex-array
S GetObjectLabel empty Debug label

§ Vertex Array Object State (cont.)

  1. † The $i$th attribute defaults to a value of $i$.
VERTEX_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 Vertex array buffer binding vertex-array
NORMAL_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 Normal array buffer binding vertex-array
COLOR_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 Color array buffer binding vertex-array
INDEX_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 Index array buffer binding vertex-array
TEXTURE_COORD_ARRAY_BUFFER_BINDING MAX_TEXTURE_COORDS × Z+ GetIntegerv 0 Texcoord array buffer binding vertex-array
EDGE_FLAG_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 Edge flag array buffer binding vertex-array
SECONDARY_COLOR_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 Secondary color array buffer binding vertex-array
FOG_COORD_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 Fog coordinate array buffer binding vertex-array
ELEMENT_ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 Element array buffer binding vertex-array
VERTEX_ATTRIB_ARRAY_BUFFER_BINDING MAX_VERTEX_ATTRIBS × Z+ GetVertexAttribiv 0 Attribute array buffer binding vertex-array
VERTEX_ATTRIB_BINDING 16 × Z16* GetVertexAttribiv $i$ Vertex buffer binding used by vertex attrib $i$ vertex-array
VERTEX_ATTRIB_RELATIVE_OFFSET 16 × Z+ GetVertexAttribiv 0 Byte offset added to vertex binding offset for this attribute vertex-array
VERTEX_BINDING_OFFSET 16 × Z GetInteger64i_v 0 Byte offset of the first element in data store of the buffer bound to vertex binding $i$ vertex-array
VERTEX_BINDING_STRIDE 16 × Z GetIntegeri_v 16 Stride between elements in vertex binding $i$ vertex-array
VERTEX_BINDING_DIVISOR 16 × Z GetIntegeri_v 0 Instance divisor for vertex binding $i$ vertex-array
VERTEX_BINDING_BUFFER 16 × Z GetIntegeri_v 0 Name of buffer bound to vertex binding $i$ vertex-array

§ Vertex Array Data (not in Vertex Array objects)

CLIENT_ACTIVE_TEXTURE E GetIntegerv \glc{TEXTURE0} Client active texture unit selector vertex-array
ARRAY_BUFFER_BINDING Z+ GetIntegerv 0 Current buffer binding vertex-array
DRAW_INDIRECT_BUFFER_BINDING Z+ GetIntegerv 0 Indirect command buffer binding
VERTEX_ARRAY_BINDING Z+ GetIntegerv 0 Current vertex array object binding vertex-array
PARAMETER_BUFFER_BINDING Z+ GetIntegerv 0 Indirect parameter buffer binding
PRIMITIVE_RESTART B IsEnabled \glc{FALSE} Primitive restart enable vertex-array
PRIMITIVE_RESTART_FIXED_INDEX B IsEnabled \glc{FALSE} Primitive restart fixed index enable vertex-array
PRIMITIVE_RESTART_INDEX Z+ GetIntegerv 0 Primitive restart index vertex-array

§ Buffer Object State

n × BMU GetBufferSubData Buffer data
BUFFER_SIZE n × Z+ GetBufferParameteri64v 0 Buffer data size
BUFFER_USAGE n × E GetBufferParameteriv \glc{STATIC_DRAW} Buffer usage pattern
BUFFER_ACCESS n × E GetBufferParameteriv \glc{READ_WRITE} Buffer access flag
BUFFER_ACCESS_FLAGS n × Z+ GetBufferParameteriv 0 Extended buffer access flag
BUFFER_IMMUTABLE_STORAGE B GetBufferParameteriv \glc{FALSE} \glc{TRUE} if buffer's data store is immutable, \glc{FALSE} otherwise
BUFFER_STORAGE_FLAGS Z+ GetBufferParameteriv 0 Buffer object storage flags
BUFFER_MAPPED n × B GetBufferParameteriv \glc{FALSE} Buffer map flag
BUFFER_MAP_POINTER n × Y GetBufferPointerv \glc{NULL} Mapped buffer pointer
BUFFER_MAP_OFFSET n × Z+ GetBufferParameteri64v 0 Start of mapped buffer range
BUFFER_MAP_LENGTH n × Z+ GetBufferParameteri64v 0 Size of mapped buffer range
S GetObjectLabel empty Debug label

§ Transformation state

COLOR_MATRIX or
TRANSPOSE_COLOR_MATRIX
2* × M4 GetFloatv Identity Color matrix stack
MODELVIEW_MATRIX or
TRANSPOSE_MODELVIEW_MATRIX
32* × M4 GetFloatv Identity Model-view matrix stack
PROJECTION_MATRIX or
TRANSPOSE_PROJECTION_MATRIX
2* × M4 GetFloatv Identity Projection matrix stack
TEXTURE_MATRIX or
TRANSPOSE_TEXTURE_MATRIX
MAX_TEXTURE_COORDS × 2* × M4 GetFloatv Identity Texture matrix stack
VIEWPORT 16* × 4 × R GetFloati_v See sec.~\ref{view:port} Viewport origin \& extent viewport
DEPTH_RANGE $16* \times {2 \times} R^{[0,1]}$ GetDoublei_v 0,1 Depth range near \& far viewport
COLOR_MATRIX_STACK_DEPTH Z+ GetIntegerv 1 Color matrix stack pointer
MODELVIEW_STACK_DEPTH Z+ GetIntegerv 1 Model-view matrix stack pointer
PROJECTION_STACK_DEPTH Z+ GetIntegerv 1 Projection matrix stack pointer
TEXTURE_STACK_DEPTH MAX_TEXTURE_COORDS × Z+ GetIntegerv 1 Texture matrix stack pointer
MATRIX_MODE E GetIntegerv \tt MODELVIEW Current matrix mode transform
NORMALIZE B IsEnabled \glc{FALSE} Current normal normalization on/off transform/enable
RESCALE_NORMAL B IsEnabled \glc{FALSE} Current normal rescaling on/off transform/enable
CLIP_PLANE0
CLIP_PLANE0 + (n-1)
where n ≥ 6
n × R4 GetClipPlane 0,0,0,0 User clipping plane coefficients transform
CLIP_DISTANCE0
CLIP_DISTANCE0 + (n-1)
where n ≥ 8
n × B IsEnabled \glc{FALSE} $i$th user clipping plane enabled transform/enable
CLIP_ORIGIN Z2 GetIntegerv \glc{LOWER_LEFT} Clip origin xform
CLIP_DEPTH_MODE Z2 GetIntegerv \glc{NEGATIVE_ONE_TO_ONE} Clip depth mode xform
DEPTH_CLAMP B IsEnabled \glc{FALSE} Depth clamping enabled transform/enable
TRANSFORM_FEEDBACK_BINDING Z+ GetIntegerv 0 Object bound for transform feedback operations
TRANSFORM_FEEDBACK_BUFFER_BINDING Z+ GetIntegerv 0 Buffer object bound to generic bind point for transform feedback

§ Coloring

FOG_COLOR C GetFloatv 0.0,0.0,0.0,0.0 Fog color fog
FOG_INDEX CI GetFloatv 0 Fog index fog
FOG_DENSITY R GetFloatv 1.0 Exponential fog density fog
FOG_START R GetFloatv 0.0 Linear fog start fog
FOG_END R GetFloatv 1.0 Linear fog end fog
FOG_MODE E GetIntegerv \glc{EXP} Fog mode fog
FOG B IsEnabled \glc{FALSE} True if fog enabled fog/enable
FOG_COORD_SRC E GetIntegerv \glc{FRAGMENT_DEPTH} Source of coordinate for fog calculation fog
COLOR_SUM B IsEnabled \glc{FALSE} True if color sum enabled fog/enable
SHADE_MODEL E GetIntegerv \glc{SMOOTH} \func{ShadeModel} setting lighting
CLAMP_VERTEX_COLOR E GetIntegerv \glc{TRUE} Vertex color clamping lighting/enable
CLAMP_FRAGMENT_COLOR E GetIntegerv \glc{FIXED_ONLY} Fragment color clamping color-buffer/enable
CLAMP_READ_COLOR E GetIntegerv \glc{FIXED_ONLY} Read color clamping color-buffer/enable
PROVOKING_VERTEX E GetIntegerv \glc{LAST_VERTEX_CONVENTION} Provoking vertex convention lighting

§ Lighting

(see also table~\ref{light:tab1} for defaults)

LIGHTING B IsEnabled \glc{FALSE} True if lighting is enabled lighting/enable
COLOR_MATERIAL B IsEnabled \glc{FALSE} True if color tracking is enabled lighting/enable
COLOR_MATERIAL_PARAMETER E GetIntegerv \tt AMBIENT_AND_DIFFUSE Material properties tracking current color lighting
COLOR_MATERIAL_FACE E GetIntegerv \tt FRONT_AND_BACK Face(s) affected by color tracking lighting
AMBIENT 2 × C GetMaterialfv (0.2,0.2,0.2,1.0) Ambient material color lighting
DIFFUSE 2 × C GetMaterialfv (0.8,0.8,0.8,1.0) Diffuse material color lighting
SPECULAR 2 × C GetMaterialfv (0.0,0.0,0.0,1.0) Specular material color lighting
EMISSION 2 × C GetMaterialfv (0.0,0.0,0.0,1.0) Emissive mat. color lighting
SHININESS 2 × R GetMaterialfv 0.0 Specular exponent of material lighting
LIGHT_MODEL_AMBIENT C GetFloatv (0.2,0.2,0.2,1.0) Ambient scene color lighting
LIGHT_MODEL_LOCAL_VIEWER B GetBooleanv \glc{FALSE} Viewer is local lighting
LIGHT_MODEL_TWO_SIDE B GetBooleanv \glc{FALSE} Use two-sided lighting lighting
LIGHT_MODEL_COLOR_CONTROL E GetIntegerv \glc{SINGLE_COLOR} Color control lighting

§ Lighting (cont.)

AMBIENT 8* × C GetLightfv (0.0,0.0,0.0,1.0) Ambient intensity of light $i$ lighting
DIFFUSE 8* × C GetLightfv See table~\ref{light:tab1} Diffuse intensity of light $i$ lighting
SPECULAR 8* × C GetLightfv See table~\ref{light:tab1} Specular intensity of light $i$ lighting
POSITION 8* × P GetLightfv (0.0,0.0,1.0,0.0) Position of light $i$ lighting
CONSTANT_ATTENUATION 8* × R+ GetLightfv 1.0 Constant atten. factor lighting
LINEAR_ATTENUATION 8* × R+ GetLightfv 0.0 Linear atten. factor lighting
QUADRATIC_ATTENUATION 8* × R+ GetLightfv 0.0 Quadratic atten. factor lighting
SPOT_DIRECTION 8* × D GetLightfv (0.0,0.0,-1.0) Spotlight direction of light $i$ lighting
SPOT_EXPONENT 8* × R+ GetLightfv 0.0 Spotlight exponent of light $i$ lighting
SPOT_CUTOFF 8* × R+ GetLightfv 180.0 Spot. angle of light $i$ lighting
LIGHT0
LIGHT0 + (n-1)
where n ≥ 8
n × B IsEnabled \glc{FALSE} True if light $i$ enabled lighting/enable
COLOR_INDEXES 2 × 3 × R GetMaterialfv 0,1,1 $a_m$, $d_m$, and $s_m$ for color index lighting lighting

§ Rasterization

  1. † Max. of the impl. dependent max. aliased and smooth point sizes
RASTERIZER_DISCARD B IsEnabled \glc{FALSE} Discard primitives before rasterization
POINT_SIZE R+ GetFloatv 1.0 Point size point
POINT_SMOOTH B IsEnabled \glc{FALSE} Point antialiasing on point/enable
POINT_SPRITE B IsEnabled \glc{FALSE} Point sprite enable point/enable
POINT_SIZE_MIN R+ GetFloatv 0.0 Attenuated min point size point
POINT_SIZE_MAX R+ GetFloatv Attenuated max point size. point
POINT_FADE_THRESHOLD_SIZE R+ GetFloatv 1.0 Threshold for alpha attenuation point
POINT_DISTANCE_ATTENUATION 3 × R+ GetFloatv 1,0,0 Attenuation coefficients point
POINT_SPRITE_COORD_ORIGIN E GetIntegerv \glc{UPPER_LEFT} Origin orientation for point sprites point
LINE_WIDTH R+ GetFloatv 1.0 Line width line
LINE_SMOOTH B IsEnabled \glc{FALSE} Line antialiasing on line/enable
LINE_STIPPLE_PATTERN Z+ GetIntegerv 1's Line stipple line
LINE_STIPPLE_REPEAT Z+ GetIntegerv 1 Line stipple repeat line
LINE_STIPPLE B IsEnabled \glc{FALSE} Line stipple enable line/enable

§ Rasterization (cont.)

CULL_FACE B IsEnabled \glc{FALSE} Polygon culling enabled polygon/enable
CULL_FACE_MODE E GetIntegerv \glc{BACK} Cull front-/back-facing polygons polygon
FRONT_FACE E GetIntegerv \glc{CCW} Polygon frontface CW/CCW indicator polygon
POLYGON_SMOOTH B IsEnabled \glc{FALSE} Polygon antialiasing on polygon/enable
POLYGON_MODE 2 × E GetIntegerv \glc{FILL} Polygon rasterization mode (front \& back) polygon
POLYGON_MODE E GetIntegerv \glc{FILL} Polygon rasterization mode (front \& back) polygon
POLYGON_OFFSET_CLAMP R GetFloatv 0 Polygon offset clamp polygon
POLYGON_OFFSET_FACTOR R GetFloatv 0 Polygon offset factor polygon
POLYGON_OFFSET_UNITS R GetFloatv 0 Polygon offset units polygon
POLYGON_OFFSET_POINT B IsEnabled \glc{FALSE} Polygon offset enable for \glc{POINT} mode rasterization polygon/enable
POLYGON_OFFSET_LINE B IsEnabled \glc{FALSE} Polygon offset enable for \glc{LINE} mode rasterization polygon/enable
POLYGON_OFFSET_FILL B IsEnabled \glc{FALSE} Polygon offset enable for \glc{FILL} mode rasterization polygon/enable
I GetPolygonStipple 1's Polygon stipple polygon-stipple
POLYGON_STIPPLE B IsEnabled \glc{FALSE} Polygon stipple enable polygon/enable

§ Multisampling

MULTISAMPLE B IsEnabled \glc{TRUE} Multisample rasterization multisample/enable
SAMPLE_ALPHA_TO_COVERAGE B IsEnabled \glc{FALSE} Modify coverage from alpha multisample/enable
SAMPLE_ALPHA_TO_ONE B IsEnabled \glc{FALSE} Set alpha to max multisample/enable
SAMPLE_COVERAGE B IsEnabled \glc{FALSE} Mask to modify coverage multisample/enable
SAMPLE_COVERAGE_VALUE R+ GetFloatv 1 Coverage mask value multisample
SAMPLE_COVERAGE_INVERT B GetBooleanv \glc{FALSE} Invert coverage mask value multisample
SAMPLE_SHADING B IsEnabled \glc{FALSE} Sample shading enable multisample/enable
MIN_SAMPLE_SHADING_VALUE R+ GetFloatv 0 Fraction of multisamples to use for sample shading multisample
SAMPLE_MASK B IsEnabled \glc{FALSE} Additional sample mask
SAMPLE_MASK_VALUE n × Z+ GetIntegeri_v All bits of all words set Additional sample mask value

§ Textures (state per texture unit)

TEXTURE_1D MAX_TEXTURE_COORDS × B IsEnabled \glc{FALSE} True if 1D texturing is enabled texture/enable
TEXTURE_2D MAX_TEXTURE_COORDS × B IsEnabled \glc{FALSE} True if 2D texturing is enabled texture/enable
TEXTURE_3D MAX_TEXTURE_COORDS × B IsEnabled \glc{FALSE} True if 3D texturing is enabled texture/enable
TEXTURE_CUBE_MAP MAX_TEXTURE_COORDS × B IsEnabled \glc{FALSE} True if cube map texturing is enabled texture/enable
TEXTURE_RECTANGLE MAX_TEXTURE_COORDS × B IsEnabled \glc{FALSE} True if rectangle texturing is enabled texture/enable
TEXTURE_BINDING_1D MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \enum{TEXTURE_1D} texture
TEXTURE_BINDING_2D MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \enum{TEXTURE_2D} texture
TEXTURE_BINDING_3D MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \enum{TEXTURE_3D} texture
TEXTURE_BINDING_1D_ARRAY MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_1D_ARRAY} texture
TEXTURE_BINDING_2D_ARRAY MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_2D_ARRAY} texture
TEXTURE_BINDING_CUBE_MAP_ARRAY MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_CUBE_MAP_ARRAY} texture
TEXTURE_BINDING_RECTANGLE MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_RECTANGLE} texture
TEXTURE_BINDING_BUFFER MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_BUFFER} texture
TEXTURE_BINDING_CUBE_MAP MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_CUBE_MAP} texture
TEXTURE_BINDING_2D_MULTISAMPLE MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_2D_MULTISAMPLE}
TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Texture object bound to \glc{TEXTURE_2D_MULTISAMPLE_ARRAY}

§ Textures (state per texture unit) (cont.)

SAMPLER_BINDING MAX_COMBINED_TEXTURE_IMAGE_UNITS × Z+ GetIntegerv 0 Sampler object bound to active texture unit
TEXTURE_1D 0* × I GetTexImage See ch.~\ref{texturing} 1D texture image at l.o.d. $i$
TEXTURE_2D 0* × I GetTexImage See ch.~\ref{texturing} 2D texture image at l.o.d. $i$
TEXTURE_3D 0* × I GetTexImage See ch.~\ref{texturing} 3D texture image at l.o.d. $i$
TEXTURE_1D_ARRAY 0* × I GetTexImage See ch.~\ref{texturing} 1D texture image at row $i$
TEXTURE_2D_ARRAY 0* × I GetTexImage See ch.~\ref{texturing} 2D texture image at slice $i$
TEXTURE_CUBE_MAP_ARRAY 0* × I GetTexImage See ch.~\ref{texturing} Cube map array texture image at l.o.d. $i$
TEXTURE_RECTANGLE 0* × I GetTexImage See ch.~\ref{texturing} Rectangle texture image at l.o.d. zero
TEXTURE_CUBE_MAP_POSITIVE_X 0* × I GetTexImage See sec.~\ref{tex:spec} $+x$ face cube map texture image at l.o.d. $i$
TEXTURE_CUBE_MAP_NEGATIVE_X 0* × I GetTexImage See sec.~\ref{tex:spec} $-x$ face cube map texture image at l.o.d. $i$
TEXTURE_CUBE_MAP_POSITIVE_Y 0* × I GetTexImage See sec.~\ref{tex:spec} $+y$ face cube map texture image at l.o.d. $i$
TEXTURE_CUBE_MAP_NEGATIVE_Y 0* × I GetTexImage See sec.~\ref{tex:spec} $-y$ face cube map texture image at l.o.d. $i$
TEXTURE_CUBE_MAP_POSITIVE_Z 0* × I GetTexImage See sec.~\ref{tex:spec} $+z$ face cube map texture image at l.o.d. $i$
TEXTURE_CUBE_MAP_NEGATIVE_Z 0* × I GetTexImage See sec.~\ref{tex:spec} $-z$ face cube map texture image at l.o.d. $i$

§ Textures (state per texture object)

TEXTURE_SWIZZLE_R E GetTexParameteriv \glc{RED} Red component swizzle texture
TEXTURE_SWIZZLE_G E GetTexParameteriv \glc{GREEN} Green component swizzle texture
TEXTURE_SWIZZLE_B E GetTexParameteriv \glc{BLUE} Blue component swizzle texture
TEXTURE_SWIZZLE_A E GetTexParameteriv \glc{ALPHA} Alpha component swizzle texture
TEXTURE_BORDER_COLOR C GetTexParameterfv 0.0,0.0,0.0,0.0 Border color texture
TEXTURE_MIN_FILTER E GetTexParameteriv See sec.~\ref{tex:state} Minification function texture
TEXTURE_MAG_FILTER E GetTexParameteriv \glc{LINEAR} Magnification function texture
TEXTURE_WRAP_S E GetTexParameteriv See sec.~\ref{tex:state} Texcoord $s$ wrap mode texture
TEXTURE_WRAP_T E GetTexParameteriv See sec.~\ref{tex:state} Texcoord $t$ wrap mode (2D, 3D, cube map textures only) texture
TEXTURE_WRAP_R E GetTexParameteriv See sec.~\ref{tex:state} Texcoord $r$ wrap mode (3D textures only) texture
TEXTURE_TARGET E GetTextureParameteriv \glc{NONE} Target of texture object
TEXTURE_PRIORITY R[0,1] GetTexParameterfv 1 Texture object priority texture
TEXTURE_RESIDENT B GetTexParameteriv See sec.\ref{tex:object} Texture residency texture
TEXTURE_MIN_LOD R GetTexParameterfv -1000 Min level-of-detail texture
TEXTURE_MAX_LOD R GetTexParameterfv 1000 Max. level-of-detail texture
TEXTURE_BASE_LEVEL Z+ GetTexParameterfv 0 Base texture array texture
TEXTURE_MAX_LEVEL Z+ GetTexParameterfv 1000 Max. texture array level texture
TEXTURE_LOD_BIAS R GetTexParameterfv 0.0 Texture level-of-detail bias ($\lodobjbias$) texture

§ Textures (state per texture object) (cont.)

DEPTH_TEXTURE_MODE E GetTexParameteriv \glc{LUMINANCE} Depth texture mode texture
DEPTH_STENCIL_TEXTURE_MODE E GetTexParameteriv \glc{DEPTH_COMPONENT} Depth stencil texture mode
TEXTURE_COMPARE_MODE E GetTexParameteriv \glc{NONE} Comparison mode texture
TEXTURE_COMPARE_FUNC E GetTexParameteriv \glc{LEQUAL} Comparison function texture
GENERATE_MIPMAP B GetTexParameteriv \glc{FALSE} Automatic mipmap generation enabled texture
IMAGE_FORMAT_COMPATIBILITY_TYPE E GetTexParameteriv See sec.~\ref{tex:loadstore} Compatibility rules for texture use with image units texture
TEXTURE_IMMUTABLE_FORMAT B GetTexParameteriv \glc{FALSE} Size and format immutable
TEXTURE_IMMUTABLE_LEVELS Z+ GetTexParameteriv 0 Storage no. of levels texture
TEXTURE_VIEW_MIN_LEVEL Z+ GetTexParameteriv 0 View base texture level texture
TEXTURE_VIEW_NUM_LEVELS Z+ GetTexParameteriv 0 View no. of texture levels texture
TEXTURE_VIEW_MIN_LAYER Z+ GetTexParameteriv 0 View min array layer texture
TEXTURE_VIEW_NUM_LAYERS Z+ GetTexParameteriv 0 View no. of array layers texture
S GetObjectLabel empty Debug label
TEXTURE_MAX_ANISOTROPY R GetTexParameterfv 1.0 Maximum degree of anisotropy texture

§ Textures (state per texture image)

TEXTURE_WIDTH Z+ GetTexLevelParameteriv 0 Specified width
TEXTURE_HEIGHT Z+ GetTexLevelParameteriv 0 Specified height (2D/3D)
TEXTURE_DEPTH Z+ GetTexLevelParameteriv 0 Specified depth (3D)
TEXTURE_BORDER Z+ GetTexLevelParameteriv 0 Specified border width
TEXTURE_SAMPLES Z+ GetTexLevelParameteriv 0 No. of samples per texel
TEXTURE_FIXED_SAMPLE_LOCATIONS B GetTexLevelParameteriv \glc{TRUE} Whether the image uses a fixed sample pattern
TEXTURE_INTERNAL_FORMAT or
TEXTURE_COMPONENTS
E GetTexLevelParameteriv 1 or \glc{LUMINANCE8} Internal format (see section~\ref{tex:state}
TEXTURE_INTERNAL_FORMAT E GetTexLevelParameteriv \glc{RGBA} or \glc{R8} Internal format (see section~\ref{tex:state})
TEXTURE_RED_SIZE Z+ GetTexLevelParameteriv 0 Component resolution
TEXTURE_GREEN_SIZE Z+ GetTexLevelParameteriv 0 Component resolution
TEXTURE_BLUE_SIZE Z+ GetTexLevelParameteriv 0 Component resolution
TEXTURE_ALPHA_SIZE Z+ GetTexLevelParameteriv 0 Component resolution
TEXTURE_LUMINANCE_SIZE Z+ GetTexLevelParameteriv 0 Component resolution
TEXTURE_INTENSITY_SIZE Z+ GetTexLevelParameteriv 0 Component resolution
TEXTURE_DEPTH_SIZE Z+ GetTexLevelParameteriv 0 Component resolution
TEXTURE_STENCIL_SIZE Z+ GetTexLevelParameteriv 0 Component resolution
TEXTURE_SHARED_SIZE Z+ GetTexLevelParameteriv 0 Shared exponent field resolution
TEXTURE_RED_TYPE E GetTexLevelParameteriv \glc{NONE} Component type
TEXTURE_GREEN_TYPE E GetTexLevelParameteriv \glc{NONE} Component type
TEXTURE_BLUE_TYPE E GetTexLevelParameteriv \glc{NONE} Component type
TEXTURE_ALPHA_TYPE E GetTexLevelParameteriv \glc{NONE} Component type
TEXTURE_LUMINANCE_TYPE E GetTexLevelParameteriv \glc{NONE} Component type
TEXTURE_INTENSITY_TYPE E GetTexLevelParameteriv \glc{NONE} Component type
TEXTURE_DEPTH_TYPE E GetTexLevelParameteriv \glc{NONE} Component type

§ Textures (state per texture image) (cont.)

TEXTURE_COMPRESSED B GetTexLevelParameteriv \glc{FALSE} True if image has a compressed internal format
TEXTURE_COMPRESSED_IMAGE_SIZE Z+ GetTexLevelParameteriv 0 Size (in \glt{ubyte}\/s) of compressed image
TEXTURE_BUFFER_DATA_STORE_BINDING Z+ GetTexLevelParameteriv 0 Buffer object bound as the data store for the active image unit's buffer texture texture
TEXTURE_BUFFER_OFFSET n × Z GetTexLevelParameteriv 0 Offset into buffer's data store used for the active image unit's buffer texture
TEXTURE_BUFFER_SIZE n × Z GetTexLevelParameteriv 0 Size of the buffer's data store used for the active image unit's buffer texture

§ Textures (state per sampler object)

TEXTURE_BORDER_COLOR C GetSamplerParameterfv 0.0,0.0,0.0,0.0 Border color
TEXTURE_COMPARE_FUNC E GetSamplerParameteriv \glc{LEQUAL} Comparison function
TEXTURE_COMPARE_MODE E GetSamplerParameteriv \glc{NONE} Comparison mode
TEXTURE_LOD_BIAS R GetSamplerParameterfv 0.0 Texture level-of-detail bias ($\lodobjbias$)
TEXTURE_MAX_LOD R GetSamplerParameterfv 1000 Max. level-of-detail
TEXTURE_MAG_FILTER E GetSamplerParameteriv \glc{LINEAR} Magnification function
TEXTURE_MIN_FILTER E GetSamplerParameteriv \glc{NEAREST_MIPMAP_LINEAR} Minification function
TEXTURE_MIN_LOD R GetSamplerParameterfv -1000 Min level-of-detail
TEXTURE_MAX_ANISOTROPY R GetSamplerParameterfv 1.0 Maximum degree of anisotropy texture
TEXTURE_WRAP_S E GetSamplerParameteriv \glc{REPEAT} Texcoord $s$ wrap mode
TEXTURE_WRAP_T E GetSamplerParameteriv \glc{REPEAT} Texcoord $t$ wrap mode (2D, 3D, cube map textures only)
TEXTURE_WRAP_R E GetSamplerParameteriv \glc{REPEAT} Texcoord $r$ wrap mode (3D textures only)
S GetObjectLabel empty Debug label

§ Texture Environment and Generation

ACTIVE_TEXTURE E GetIntegerv \glc{TEXTURE0} Active texture unit selector texture
COORD_REPLACE MAX_TEXTURE_UNITS × B GetTexEnviv \glc{FALSE} Coordinate replacement enable point
TEXTURE_ENV_MODE MAX_TEXTURE_UNITS × E GetTexEnviv \glc{MODULATE} Texture application function texture
TEXTURE_ENV_COLOR MAX_TEXTURE_UNITS × C GetTexEnvfv 0.0,0.0,0.0,0.0 Texture environment color texture
TEXTURE_LOD_BIAS MAX_TEXTURE_UNITS × R GetTexEnvfv 0.0 Texture level-of-detail bias $\lodunitbias$ texture
TEXTURE_GEN_S MAX_TEXTURE_UNITS × B IsEnabled \glc{FALSE} Texgen enabled texture/enable
TEXTURE_GEN_T MAX_TEXTURE_UNITS × B IsEnabled \glc{FALSE} Texgen enabled texture/enable
TEXTURE_GEN_R MAX_TEXTURE_UNITS × B IsEnabled \glc{FALSE} Texgen enabled texture/enable
TEXTURE_GEN_Q MAX_TEXTURE_UNITS × B IsEnabled \glc{FALSE} Texgen enabled texture/enable
EYE_PLANE MAX_TEXTURE_UNITS × 4 × R4 GetTexGenfv See sec.~\ref{texgen} Texgen plane equation coefficients (for S, T, R, and Q) texture
OBJECT_PLANE MAX_TEXTURE_UNITS × 4 × R4 GetTexGenfv See sec.~\ref{texgen} Texgen object linear coefficients (for S, T, R, and Q) texture
TEXTURE_GEN_MODE MAX_TEXTURE_UNITS × 4 × E GetTexGeniv \glc{EYE_LINEAR} Function used for texgen (for S, T, R, and Q texture
COMBINE_RGB MAX_TEXTURE_UNITS × E GetTexEnviv \glc{MODULATE} RGB combiner function texture
COMBINE_ALPHA MAX_TEXTURE_UNITS × E GetTexEnviv \glc{MODULATE} Alpha combiner function texture

§ Texture Environment and Generation (cont.)

SRC0_RGB MAX_TEXTURE_UNITS × E GetTexEnviv \glc{TEXTURE} RGB source 0 texture
SRC1_RGB MAX_TEXTURE_UNITS × E GetTexEnviv \glc{PREVIOUS} RGB source 1 texture
SRC2_RGB MAX_TEXTURE_UNITS × E GetTexEnviv \glc{CONSTANT} RGB source 2 texture
SRC0_ALPHA MAX_TEXTURE_UNITS × E GetTexEnviv \glc{TEXTURE} Alpha source 0 texture
SRC1_ALPHA MAX_TEXTURE_UNITS × E GetTexEnviv \glc{PREVIOUS} Alpha source 1 texture
SRC2_ALPHA MAX_TEXTURE_UNITS × E GetTexEnviv \glc{CONSTANT} Alpha source 2 texture
OPERAND0_RGB MAX_TEXTURE_UNITS × E GetTexEnviv \glc{SRC_COLOR} RGB operand 0 texture
OPERAND1_RGB MAX_TEXTURE_UNITS × E GetTexEnviv \glc{SRC_COLOR} RGB operand 1 texture
OPERAND2_RGB MAX_TEXTURE_UNITS × E GetTexEnviv \glc{SRC_ALPHA} RGB operand 2 texture
OPERAND0_ALPHA MAX_TEXTURE_UNITS × E GetTexEnviv \glc{SRC_ALPHA} Alpha operand 0 texture
OPERAND1_ALPHA MAX_TEXTURE_UNITS × E GetTexEnviv \glc{SRC_ALPHA} Alpha operand 1 texture
OPERAND2_ALPHA MAX_TEXTURE_UNITS × E GetTexEnviv \glc{SRC_ALPHA} Alpha operand 2 texture
RGB_SCALE MAX_TEXTURE_UNITS × R3 GetTexEnvfv 1.0 RGB post-combiner scaling texture
ALPHA_SCALE MAX_TEXTURE_UNITS × R3 GetTexEnvfv 1.0 Alpha post-combiner scaling texture

§ Pixel Operations

SCISSOR_TEST 16* × B IsEnabledi \glc{FALSE} Scissoring enabled scissor/enable
SCISSOR_BOX 16* × 4 × Z GetIntegeri_v See sec.~\ref{scissor} Scissor box scissor
ALPHA_TEST B IsEnabled \glc{FALSE} Alpha test enabled color-buffer/enable
ALPHA_TEST_FUNC E GetIntegerv \glc{ALWAYS} Alpha test function color-buffer
ALPHA_TEST_REF R+ GetFloatv 0 Alpha test reference value color-buffer
STENCIL_TEST B IsEnabled \glc{FALSE} Stenciling enabled stencil-buffer/enable
STENCIL_FUNC E GetIntegerv \glc{ALWAYS} Front stencil function stencil-buffer
STENCIL_VALUE_MASK Z+ GetIntegerv See sec.~\ref{stencil} Front stencil mask stencil-buffer
STENCIL_REF Z+ GetIntegerv 0 Front stencil reference value stencil-buffer
STENCIL_FAIL E GetIntegerv \glc{KEEP} Front stencil fail action stencil-buffer
STENCIL_PASS_DEPTH_FAIL E GetIntegerv \glc{KEEP} Front stencil depth buffer fail action stencil-buffer
STENCIL_PASS_DEPTH_PASS E GetIntegerv \glc{KEEP} Front stencil depth buffer pass action stencil-buffer
STENCIL_BACK_FUNC E GetIntegerv \glc{ALWAYS} Back stencil function stencil-buffer
STENCIL_BACK_VALUE_MASK Z+ GetIntegerv See sec.~\ref{stencil} Back stencil mask stencil-buffer
STENCIL_BACK_REF Z+ GetIntegerv 0 Back stencil reference value stencil-buffer
STENCIL_BACK_FAIL E GetIntegerv \glc{KEEP} Back stencil fail action stencil-buffer
STENCIL_BACK_PASS_DEPTH_FAIL E GetIntegerv \glc{KEEP} Back stencil depth buffer fail action stencil-buffer
STENCIL_BACK_PASS_DEPTH_PASS E GetIntegerv \glc{KEEP} Back stencil depth buffer pass action stencil-buffer
DEPTH_TEST B IsEnabled \glc{FALSE} Depth buffer enabled depth-buffer/enable
DEPTH_FUNC E GetIntegerv \glc{LESS} Depth buffer test function depth-buffer

§ Pixel Operations (cont.)

BLEND MAX_DRAW_BUFFERS × B IsEnabledi \glc{FALSE} Blending enabled for draw buffer $i$ color-buffer/enable
BLEND_SRC_RGB MAX_DRAW_BUFFERS × E GetIntegeri_v \glc{ONE} Blending source RGB function for draw buffer $i$ color-buffer
BLEND_SRC_ALPHA MAX_DRAW_BUFFERS × E GetIntegeri_v \glc{ONE} Blending source A function for draw buffer $i$ color-buffer
BLEND_DST_RGB MAX_DRAW_BUFFERS × E GetIntegeri_v \glc{ZERO} Blending dest. RGB function for draw buffer $i$ color-buffer
BLEND_DST_ALPHA MAX_DRAW_BUFFERS × E GetIntegeri_v \glc{ZERO} Blending dest. A function for draw buffer $i$ color-buffer
BLEND_EQUATION_RGB MAX_DRAW_BUFFERS × E GetIntegeri_v \glc{FUNC_ADD} RGB blending equation for draw buffer $i$ color-buffer
BLEND_EQUATION_ALPHA MAX_DRAW_BUFFERS × E GetIntegeri_v \glc{FUNC_ADD} Alpha blending equation for draw buffer $i$ color-buffer
BLEND_COLOR C GetFloatv 0.0,0.0,0.0,0.0 Constant blend color color-buffer
FRAMEBUFFER_SRGB B IsEnabled \glc{FALSE} sRGB update and blending enable color-buffer/enable
DITHER B IsEnabled \glc{TRUE} Dithering enabled color-buffer/enable
INDEX_LOGIC_OP B IsEnabled \glc{FALSE} Index logic op enabled color-buffer/enable
COLOR_LOGIC_OP B IsEnabled \glc{FALSE} Color logic op enabled color-buffer/enable
LOGIC_OP_MODE E GetIntegerv \glc{COPY} Logic op function color-buffer

§ Framebuffer Control

INDEX_WRITEMASK Z+ GetIntegerv 1's Color index writemask color-buffer
COLOR_WRITEMASK MAX_DRAW_BUFFERS × 4 × B GetBooleani_v (\glc{TRUE},\glc{TRUE},\glc{TRUE},\glc{TRUE}) Color write enables (R,G,B,A) for draw buffer $i$ color-buffer
DEPTH_WRITEMASK B GetBooleanv \glc{TRUE} Depth buffer enabled for writing depth-buffer
STENCIL_WRITEMASK Z+ GetIntegerv 1's Front stencil buffer writemask stencil-buffer
STENCIL_BACK_WRITEMASK Z+ GetIntegerv 1's Back stencil buffer writemask stencil-buffer
COLOR_CLEAR_VALUE C GetFloatv 0.0,0.0,0.0,0.0 Color buffer clear value (RGBA mode) color-buffer
COLOR_CLEAR_VALUE C GetFloatv 0.0,0.0,0.0,0.0 Color buffer clear value color-buffer
INDEX_CLEAR_VALUE CI GetFloatv 0 Color buffer clear value (color index mode) color-buffer
DEPTH_CLEAR_VALUE R+ GetFloatv 1 Depth buffer clear value depth-buffer
STENCIL_CLEAR_VALUE Z+ GetIntegerv 0 Stencil clear value stencil-buffer
ACCUM_CLEAR_VALUE 4 × R+ GetFloatv 0 Accumulation buffer clear value accum-buffer

§ Framebuffer (state per target binding point)

DRAW_FRAMEBUFFER_BINDING Z+ GetIntegerv 0 Framebuffer object bound to \glc{DRAW_FRAMEBUFFER}
READ_FRAMEBUFFER_BINDING Z+ GetIntegerv 0 Framebuffer object bound to \glc{READ_FRAMEBUFFER}

§ Framebuffer (state per framebuffer object)

  1. † This state is queried from the currently bound read framebuffer.
DRAW_BUFFER0
DRAW_BUFFER0 + (n-1)
where nMAX_DRAW_BUFFERS
n × E GetIntegerv See sec.~\ref{setbuffers} Draw buffer selected for color output $i$ color-buffer
READ_BUFFER E GetIntegerv See sec.~\ref{pix:read} Read source buffer pixel
FRAMEBUFFER_DEFAULT_WIDTH Z+ GetFramebufferParameteriv 0 Default width of framebuffer w/o attachments
FRAMEBUFFER_DEFAULT_HEIGHT Z+ GetFramebufferParameteriv 0 Default height of framebuffer w/o attachments
FRAMEBUFFER_DEFAULT_LAYERS Z+ GetFramebufferParameteriv 0 Default layer count of framebuffer w/o attachments
FRAMEBUFFER_DEFAULT_SAMPLES Z+ GetFramebufferParameteriv 0 Default sample count of framebuffer w/o attachments
FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS B GetFramebufferParameteriv \glc{FALSE} Default sample location pattern of framebuffer w/o attachments
S GetObjectLabel empty Debug label

§ Framebuffer (state per attachment point)

FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE E GetFramebufferAttachmentParameteriv \glc{NONE} Type of image attached to framebuffer attachment point
FRAMEBUFFER_ATTACHMENT_OBJECT_NAME Z+ GetFramebufferAttachmentParameteriv 0 Name of object attached to framebuffer attachment point
FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL Z+ GetFramebufferAttachmentParameteriv 0 Mipmap level of texture image attached, if object attached is texture
FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE E GetFramebufferAttachmentParameteriv \glc{NONE} Cubemap face of texture image attached, if object attached is cubemap texture
FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER Z GetFramebufferAttachmentParameteriv 0 Layer of texture image attached, if object attached is 3D texture
FRAMEBUFFER_ATTACHMENT_LAYERED B GetFramebufferAttachmentParameteriv \glc{FALSE} Framebuffer attachment is layered
FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING E GetFramebufferAttachmentParameteriv Encoding of components in the attached image
FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE E GetFramebufferAttachmentParameteriv Data type of components in the attached image
FRAMEBUFFER_ATTACHMENT_RED_SIZE Z+ GetFramebufferAttachmentParameteriv Size in bits of attached image's RED component
FRAMEBUFFER_ATTACHMENT_GREEN_SIZE Z+ GetFramebufferAttachmentParameteriv Size in bits of attached image's GREEN component
FRAMEBUFFER_ATTACHMENT_BLUE_SIZE Z+ GetFramebufferAttachmentParameteriv Size in bits of attached image's BLUE component
FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE Z+ GetFramebufferAttachmentParameteriv Size in bits of attached image's ALPHA component
FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE Z+ GetFramebufferAttachmentParameteriv Size in bits of attached image's DEPTH component
FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE Z+ GetFramebufferAttachmentParameteriv Size in bits of attached image's STENCIL component

§ Renderbuffer (state per target and binding point)

RENDERBUFFER_BINDING Z GetIntegerv 0 Renderbuffer object bound to \glc{RENDERBUFFER}

§ Renderbuffer (state per renderbuffer object)

RENDERBUFFER_WIDTH Z+ GetRenderbufferParameteriv 0 Width of renderbuffer
RENDERBUFFER_HEIGHT Z+ GetRenderbufferParameteriv 0 Height of renderbuffer
RENDERBUFFER_INTERNAL_FORMAT E GetRenderbufferParameteriv \glc{RGBA} Internal format of renderbuffer
RENDERBUFFER_RED_SIZE Z+ GetRenderbufferParameteriv 0 Size in bits of renderbuffer image's red component
RENDERBUFFER_GREEN_SIZE Z+ GetRenderbufferParameteriv 0 Size in bits of renderbuffer image's green component
RENDERBUFFER_BLUE_SIZE Z+ GetRenderbufferParameteriv 0 Size in bits of renderbuffer image's blue component
RENDERBUFFER_ALPHA_SIZE Z+ GetRenderbufferParameteriv 0 Size in bits of renderbuffer image's alpha component
RENDERBUFFER_DEPTH_SIZE Z+ GetRenderbufferParameteriv 0 Size in bits of renderbuffer image's depth component
RENDERBUFFER_STENCIL_SIZE Z+ GetRenderbufferParameteriv 0 Size in bits of renderbuffer image's stencil component
RENDERBUFFER_SAMPLES Z+ GetRenderbufferParameteriv 0 No. of samples
S GetObjectLabel empty Debug label

§ Pixels

UNPACK_SWAP_BYTES B GetBooleanv \glc{FALSE} Value of \glc{UNPACK_SWAP_BYTES} pixel-store
UNPACK_LSB_FIRST B GetBooleanv \glc{FALSE} Value of \glc{UNPACK_LSB_FIRST} pixel-store
UNPACK_IMAGE_HEIGHT Z+ GetIntegerv 0 Value of \glc{UNPACK_IMAGE_HEIGHT} pixel-store
UNPACK_SKIP_IMAGES Z+ GetIntegerv 0 Value of \glc{UNPACK_SKIP_IMAGES} pixel-store
UNPACK_ROW_LENGTH Z+ GetIntegerv 0 Value of \glc{UNPACK_ROW_LENGTH} pixel-store
UNPACK_SKIP_ROWS Z+ GetIntegerv 0 Value of \glc{UNPACK_SKIP_ROWS} pixel-store
UNPACK_SKIP_PIXELS Z+ GetIntegerv 0 Value of \glc{UNPACK_SKIP_PIXELS} pixel-store
UNPACK_ALIGNMENT Z+ GetIntegerv 4 Value of \glc{UNPACK_ALIGNMENT} pixel-store
UNPACK_COMPRESSED_BLOCK_WIDTH Z+ GetIntegerv 0 Value of \glc{UNPACK_COMPRESSED_BLOCK_WIDTH}
UNPACK_COMPRESSED_BLOCK_HEIGHT Z+ GetIntegerv 0 Value of \glc{UNPACK_COMPRESSED_BLOCK_HEIGHT}
UNPACK_COMPRESSED_BLOCK_DEPTH Z+ GetIntegerv 0 Value of \glc{UNPACK_COMPRESSED_BLOCK_DEPTH}
UNPACK_COMPRESSED_BLOCK_SIZE Z+ GetIntegerv 0 Value of \glc{UNPACK_COMPRESSED_BLOCK_SIZE}
PIXEL_UNPACK_BUFFER_BINDING Z+ GetIntegerv 0 Pixel unpack buffer binding pixel-store

§ Pixels (cont.)

PACK_SWAP_BYTES B GetBooleanv \glc{FALSE} Value of \glc{PACK_SWAP_BYTES} pixel-store
PACK_LSB_FIRST B GetBooleanv \glc{FALSE} Value of \glc{PACK_LSB_FIRST} pixel-store
PACK_IMAGE_HEIGHT Z+ GetIntegerv 0 Value of \glc{PACK_IMAGE_HEIGHT} pixel-store
PACK_SKIP_IMAGES Z+ GetIntegerv 0 Value of \glc{PACK_SKIP_IMAGES} pixel-store
PACK_ROW_LENGTH Z+ GetIntegerv 0 Value of \glc{PACK_ROW_LENGTH} pixel-store
PACK_SKIP_ROWS Z+ GetIntegerv 0 Value of \glc{PACK_SKIP_ROWS} pixel-store
PACK_SKIP_PIXELS Z+ GetIntegerv 0 Value of \glc{PACK_SKIP_PIXELS} pixel-store
PACK_ALIGNMENT Z+ GetIntegerv 4 Value of \glc{PACK_ALIGNMENT} pixel-store
PACK_COMPRESSED_BLOCK_WIDTH Z+ GetIntegerv 0 Value of \glc{PACK_COMPRESSED_BLOCK_WIDTH}
PACK_COMPRESSED_BLOCK_HEIGHT Z+ GetIntegerv 0 Value of \glc{PACK_COMPRESSED_BLOCK_HEIGHT}
PACK_COMPRESSED_BLOCK_DEPTH Z+ GetIntegerv 0 Value of \glc{PACK_COMPRESSED_BLOCK_DEPTH}
PACK_COMPRESSED_BLOCK_SIZE Z+ GetIntegerv 0 Value of \glc{PACK_COMPRESSED_BLOCK_SIZE}
PIXEL_PACK_BUFFER_BINDING Z+ GetIntegerv 0 Pixel pack buffer binding pixel-store
MAP_COLOR B GetBooleanv \glc{FALSE} True if colors are mapped pixel
MAP_STENCIL B GetBooleanv \glc{FALSE} True if stencil values are mapped pixel
INDEX_SHIFT Z GetIntegerv 0 Value of \glc{INDEX_SHIFT} pixel
INDEX_OFFSET Z GetIntegerv 0 Value of \glc{INDEX_OFFSET} pixel
RED_SCALE R GetFloatv 1 Value of \enum{RED_SCALE} pixel
GREEN_SCALE R GetFloatv 1 Value of \enum{GREEN_SCALE} pixel
BLUE_SCALE R GetFloatv 1 Value of \enum{BLUE_SCALE} pixel
ALPHA_SCALE R GetFloatv 1 Value of \enum{ALPHA_SCALE} pixel
DEPTH_SCALE R GetFloatv 1 Value of \enum{DEPTH_SCALE} pixel
RED_BIAS R GetFloatv 0 Value of \enum{RED_BIAS} pixel
GREEN_BIAS R GetFloatv 0 Value of \enum{GREEN_BIAS} pixel
BLUE_BIAS R GetFloatv 0 Value of \enum{BLUE_BIAS} pixel
ALPHA_BIAS R GetFloatv 0 Value of \enum{ALPHA_BIAS} pixel

§ Pixels (cont.)

COLOR_TABLE B IsEnabled \glc{FALSE} True if color table lookup is done pixel/enable
POST_CONVOLUTION_COLOR_TABLE B IsEnabled \glc{FALSE} True if post convolution color table lookup is done pixel/enable
POST_COLOR_MATRIX_COLOR_TABLE B IsEnabled \glc{FALSE} True if post color matrix color table lookup is done pixel/enable
COLOR_TABLE I GetColorTable \em empty Color table
POST_CONVOLUTION_COLOR_TABLE I GetColorTable \em empty Post convolution color table
POST_COLOR_MATRIX_COLOR_TABLE I GetColorTable \em empty Post color matrix color table
COLOR_TABLE_FORMAT 2 × 3 × E GetColorTableParameteriv \glc{RGBA} Color tables' internal image format
COLOR_TABLE_WIDTH 2 × 3 × Z+ GetColorTableParameteriv 0 Color tables' specified width
COLOR_TABLE_RED_SIZE 2 × 3 × Z+ GetColorTableParameteriv 0 Color table component resolution
COLOR_TABLE_GREEN_SIZE 2 × 3 × Z+ GetColorTableParameteriv 0 Color table component resolution
COLOR_TABLE_BLUE_SIZE 2 × 3 × Z+ GetColorTableParameteriv 0 Color table component resolution
COLOR_TABLE_ALPHA_SIZE 2 × 3 × Z+ GetColorTableParameteriv 0 Color table component resolution
COLOR_TABLE_LUMINANCE_SIZE 2 × 3 × Z+ GetColorTableParameteriv 0 Color table component resolution
COLOR_TABLE_INTENSITY_SIZE 2 × 3 × Z+ GetColorTableParameteriv 0 Color table component resolution
COLOR_TABLE_SCALE 3 × R4 GetColorTableParameterfv 1,1,1,1 Scale factors applied to color table entries pixel
COLOR_TABLE_BIAS 3 × R4 GetColorTableParameterfv 0,0,0,0 Bias factors applied to color table entries pixel

§ Pixels (cont.)

CONVOLUTION_1D B IsEnabled \glc{FALSE} True if 1D convolution is done pixel/enable
CONVOLUTION_2D B IsEnabled \glc{FALSE} True if 2D convolution is done pixel/enable
SEPARABLE_2D B IsEnabled \glc{FALSE} True if separable 2D convolution is done pixel/enable
CONVOLUTION_1D 2 × I GetConvolutionFilter \em empty Convolution filters
CONVOLUTION_2D 2 × I GetConvolutionFilter \em empty Convolution filters
CONVOLUTION_3D 2 × I GetConvolutionFilter \em empty Convolution filters
SEPARABLE_2D 2 × I GetSeparableFilter \em empty Separable convolution filter
CONVOLUTION_BORDER_COLOR 3 × C GetConvolutionParameterfv 0.0,0.0,0.0,0.0 Convolution border color pixel
CONVOLUTION_BORDER_MODE 3 × E GetConvolutionParameteriv \glc{REDUCE} Convolution border mode pixel
CONVOLUTION_FILTER_SCALE 3 × R4 GetConvolutionParameterfv 1,1,1,1 Scale factors applied to convolution filter entries pixel
CONVOLUTION_FILTER_BIAS 3 × R4 GetConvolutionParameterfv 0,0,0,0 Bias factors applied to convolution filter entries pixel
CONVOLUTION_FORMAT 3 × E GetConvolutionParameteriv \glc{RGBA} Convolution filter internal format
CONVOLUTION_WIDTH 3 × Z+ GetConvolutionParameteriv 0 Convolution filter width
CONVOLUTION_HEIGHT 2 × Z+ GetConvolutionParameteriv 0 Convolution filter height

§ Pixels (cont.)

POST_CONVOLUTION_RED_SCALE R GetFloatv 1 Component scale factors after convolution pixel
POST_CONVOLUTION_GREEN_SCALE R GetFloatv 1 Component scale factors after convolution pixel
POST_CONVOLUTION_BLUE_SCALE R GetFloatv 1 Component scale factors after convolution pixel
POST_CONVOLUTION_ALPHA_SCALE R GetFloatv 1 Component scale factors after convolution pixel
POST_CONVOLUTION_RED_BIAS R GetFloatv 0 Component bias factors after convolution pixel
POST_CONVOLUTION_GREEN_BIAS R GetFloatv 0 Component bias factors after convolution pixel
POST_CONVOLUTION_BLUE_BIAS R GetFloatv 0 Component bias factors after convolution pixel
POST_CONVOLUTION_ALPHA_BIAS R GetFloatv 0 Component bias factors after convolution pixel
POST_COLOR_MATRIX_RED_SCALE R GetFloatv 1 Component scale factors after color matrix pixel
POST_COLOR_MATRIX_GREEN_SCALE R GetFloatv 1 Component scale factors after color matrix pixel
POST_COLOR_MATRIX_BLUE_SCALE R GetFloatv 1 Component scale factors after color matrix pixel
POST_COLOR_MATRIX_ALPHA_SCALE R GetFloatv 1 Component scale factors after color matrix pixel
POST_COLOR_MATRIX_RED_BIAS R GetFloatv 0 Component bias factors after color matrix pixel
POST_COLOR_MATRIX_GREEN_BIAS R GetFloatv 0 Component bias factors after color matrix pixel
POST_COLOR_MATRIX_BLUE_BIAS R GetFloatv 0 Component bias factors after color matrix pixel
POST_COLOR_MATRIX_ALPHA_BIAS R GetFloatv 0 Component bias factors after color matrix pixel
HISTOGRAM B IsEnabled \glc{FALSE} True if histogramming is enabled pixel/enable
HISTOGRAM I GetHistogram \em empty Histogram table
HISTOGRAM_WIDTH 2 × Z+ GetHistogramParameteriv 0 Histogram table width
HISTOGRAM_FORMAT 2 × E GetHistogramParameteriv \glc{RGBA} Histogram table internal format
HISTOGRAM_RED_SIZE 2 × Z+ GetHistogramParameteriv 0 Histogram table component resolution
HISTOGRAM_GREEN_SIZE 2 × Z+ GetHistogramParameteriv 0 Histogram table component resolution
HISTOGRAM_BLUE_SIZE 2 × Z+ GetHistogramParameteriv 0 Histogram table component resolution
HISTOGRAM_ALPHA_SIZE 2 × Z+ GetHistogramParameteriv 0 Histogram table component resolution
HISTOGRAM_LUMINANCE_SIZE 2 × Z+ GetHistogramParameteriv 0 Histogram table component resolution
HISTOGRAM_SINK B GetHistogramParameteriv \glc{FALSE} True if histogramming consumes pixel groups

§ Pixels (cont.)

MINMAX B IsEnabled \glc{FALSE} True if minmax is enabled pixel/enable
MINMAX $R^n$ GetMinmax (M,M,M,M),(m,m,m,m) Minmax table
MINMAX_FORMAT E GetMinmaxParameteriv \glc{RGBA} Minmax table internal format
MINMAX_SINK B GetMinmaxParameteriv \glc{FALSE} True if minmax consumes pixel groups
ZOOM_X R GetFloatv 1.0 $x$ zoom factor pixel
ZOOM_Y R GetFloatv 1.0 $y$ zoom factor pixel
PIXEL_MAP_I_TO_R 32* × R GetPixelMap 0's RGBA \func{PixelMap} translation table
PIXEL_MAP_I_TO_G 32* × R GetPixelMap 0's RGBA \func{PixelMap} translation table
PIXEL_MAP_I_TO_B 32* × R GetPixelMap 0's RGBA \func{PixelMap} translation table
PIXEL_MAP_I_TO_A 32* × R GetPixelMap 0's RGBA \func{PixelMap} translation table
PIXEL_MAP_R_TO_R 32* × R GetPixelMap 0's RGBA \func{PixelMap} translation table
PIXEL_MAP_G_TO_G 32* × R GetPixelMap 0's RGBA \func{PixelMap} translation table
PIXEL_MAP_B_TO_B 32* × R GetPixelMap 0's RGBA \func{PixelMap} translation table
PIXEL_MAP_A_TO_A 32* × R GetPixelMap 0's RGBA \func{PixelMap} translation table
PIXEL_MAP_I_TO_I 32* × Z GetPixelMap 0's Index \func{PixelMap} translation table
PIXEL_MAP_S_TO_S 32* × Z GetPixelMap 0's Index \func{PixelMap} translation table
PIXEL_MAP_I_TO_R_SIZE Z+ GetIntegerv 1 Size of table PIXEL_MAP_I_TO_R
PIXEL_MAP_I_TO_G_SIZE Z+ GetIntegerv 1 Size of table PIXEL_MAP_I_TO_G
PIXEL_MAP_I_TO_B_SIZE Z+ GetIntegerv 1 Size of table PIXEL_MAP_I_TO_B
PIXEL_MAP_I_TO_A_SIZE Z+ GetIntegerv 1 Size of table PIXEL_MAP_I_TO_A
PIXEL_MAP_R_TO_R_SIZE Z+ GetIntegerv 1 Size of table PIXEL_MAP_R_TO_R
PIXEL_MAP_G_TO_G_SIZE Z+ GetIntegerv 1 Size of table PIXEL_MAP_G_TO_G
PIXEL_MAP_B_TO_B_SIZE Z+ GetIntegerv 1 Size of table PIXEL_MAP_B_TO_B
PIXEL_MAP_A_TO_A_SIZE Z+ GetIntegerv 1 Size of table PIXEL_MAP_A_TO_A
PIXEL_MAP_I_TO_I_SIZE Z+ GetIntegerv 1 Size of table PIXEL_MAP_I_TO_I
PIXEL_MAP_S_TO_S_SIZE Z+ GetIntegerv 1 Size of table PIXEL_MAP_S_TO_S

§ Evaluators

(\func{GetMap} takes a map name)

ORDER 9 × E GetMapiv 1 1d map order
ORDER 9 × 2 × E GetMapiv 1,1 2d map orders
COEFF $9 \times 8* \times R^n$ GetMapfv See sec.~\ref{evaluators} 1d control points
COEFF $9 \times 8* \times 8* \times R^n$ GetMapfv See sec.~\ref{evaluators} 2d control points
DOMAIN 9 × 2 × R GetMapfv See sec.~\ref{evaluators} 1d domain endpoints
DOMAIN 9 × 4 × R GetMapfv See sec.~\ref{evaluators} 2d domain endpoints
MAP1_VERTEX_3 B IsEnabled \glc{FALSE} 1d map enable eval/enable
MAP1_VERTEX_4 B IsEnabled \glc{FALSE} 1d map enable eval/enable
MAP1_INDEX B IsEnabled \glc{FALSE} 1d map enable eval/enable
MAP1_COLOR_4 B IsEnabled \glc{FALSE} 1d map enable eval/enable
MAP1_NORMAL B IsEnabled \glc{FALSE} 1d map enable eval/enable
MAP1_TEXTURE_COORD_1 B IsEnabled \glc{FALSE} 1d map enable eval/enable
MAP1_TEXTURE_COORD_2 B IsEnabled \glc{FALSE} 1d map enable eval/enable
MAP1_TEXTURE_COORD_3 B IsEnabled \glc{FALSE} 1d map enable eval/enable
MAP1_TEXTURE_COORD_4 B IsEnabled \glc{FALSE} 1d map enable eval/enable
MAP2_VERTEX_3 B IsEnabled \glc{FALSE} 2d map enable eval/enable
MAP2_VERTEX_4 B IsEnabled \glc{FALSE} 2d map enable eval/enable
MAP2_INDEX B IsEnabled \glc{FALSE} 2d map enable eval/enable
MAP2_COLOR_4 B IsEnabled \glc{FALSE} 2d map enable eval/enable
MAP2_NORMAL B IsEnabled \glc{FALSE} 2d map enable eval/enable
MAP2_TEXTURE_COORD_1 B IsEnabled \glc{FALSE} 2d map enable eval/enable
MAP2_TEXTURE_COORD_2 B IsEnabled \glc{FALSE} 2d map enable eval/enable
MAP2_TEXTURE_COORD_3 B IsEnabled \glc{FALSE} 2d map enable eval/enable
MAP2_TEXTURE_COORD_4 B IsEnabled \glc{FALSE} 2d map enable eval/enable
MAP1_GRID_DOMAIN 2 × R GetFloatv 0,1 1d grid endpoints eval
MAP2_GRID_DOMAIN 4 × R GetFloatv 0,1;0,1 2d grid endpoints eval
MAP1_GRID_SEGMENTS Z+ GetFloatv 1 1d grid divisions eval
MAP2_GRID_SEGMENTS 2 × Z+ GetFloatv 1,1 2d grid divisions eval
AUTO_NORMAL B IsEnabled \glc{FALSE} True if automatic normal generation enabled eval/enable

§ Shader Object State

SHADER_TYPE E GetShaderiv Type of shader (see table~\ref{tab:programs:shadertypes}
DELETE_STATUS B GetShaderiv \glc{FALSE} Shader flagged for deletion
COMPILE_STATUS B GetShaderiv \glc{FALSE} Last compile succeeded
S GetShaderInfoLog Empty string Info log for shader objects
INFO_LOG_LENGTH Z+ GetShaderiv 0 Length of info log
S GetShaderSource Empty string Source code for a shader
SHADER_SOURCE_LENGTH Z+ GetShaderiv 0 Length of source code
S GetObjectLabel empty Debug label
SPIR_V_BINARY B GetShaderiv \glc{FALSE} Shader is associated with a SPIR-V module.

§ Program Pipeline Object State

ACTIVE_PROGRAM Z+ GetProgramPipelineiv 0 Program object updated by \func{Uniform*} when PPO bound
VERTEX_SHADER Z+ GetProgramPipelineiv 0 Name of current vertex shader program object
GEOMETRY_SHADER Z+ GetProgramPipelineiv 0 Name of current geometry shader program object
FRAGMENT_SHADER Z+ GetProgramPipelineiv 0 Name of current fragment shader program object
COMPUTE_SHADER Z+ GetProgramPipelineiv 0 Name of current compute shader program object
TESS_CONTROL_SHADER Z+ GetProgramPipelineiv 0 Name of current TCS program object
TESS_EVALUATION_SHADER Z+ GetProgramPipelineiv 0 Name of current TES program object
VALIDATE_STATUS B GetProgramPipelineiv \glc{FALSE} Validate status of program pipeline object
S GetProgramPiplineInfoLog empty Info log for program {pipeline} object
INFO_LOG_LENGTH Z+ GetProgramPipelineiv 0 Length of info log
S GetObjectLabel empty Debug label

§ Program Object State

CURRENT_PROGRAM Z+ GetIntegerv 0 Name of current program object
PROGRAM_PIPELINE_BINDING Z+ GetIntegerv 0 Current program pipeline object binding
PROGRAM_SEPARABLE B GetProgramiv \glc{FALSE} Program object can be bound for separate pipeline stages
DELETE_STATUS B GetProgramiv \glc{FALSE} Program object deleted
LINK_STATUS B GetProgramiv \glc{FALSE} Last link attempt succeeded
VALIDATE_STATUS B GetProgramiv \glc{FALSE} Last validate attempt succeeded
ATTACHED_SHADERS Z+ GetProgramiv 0 No. of attached shader objects
0* × Z+ GetAttachedShaders empty Shader objects attached
S GetProgramInfoLog empty Info log for program object
INFO_LOG_LENGTH Z+ GetProgramiv 0 Length of info log
PROGRAM_BINARY_LENGTH Z+ GetProgramiv 0 Length of program binary
PROGRAM_BINARY_RETRIEVABLE_HINT B GetProgramiv \glc{FALSE} Retrievable binary hint enabled
0* × BMU GetProgramBinary Binary representation of program
COMPUTE_WORK_GROUP_SIZE 3 × Z+ GetProgramiv $\{ 0, \dots \}$ Local work size of a linked compute program
S GetObjectLabel empty Debug label

§ Program Object State (cont.)

ACTIVE_UNIFORMS Z+ GetProgramiv 0 No. of active uniforms
0* × Z GetUniformLocation Location of active uniforms
0* × Z+ GetActiveUniform Size of active uniform
0* × Z+ GetActiveUniform Type of active uniform
0* × char GetActiveUniform empty Name of active uniform
ACTIVE_UNIFORM_MAX_LENGTH Z+ GetProgramiv 0 Max. active uniform name length
GetUniform 0 Uniform value
ACTIVE_ATTRIBUTES Z+ GetProgramiv 0 No. of active attributes
0* × Z GetAttribLocation Location of active generic attribute
0* × Z+ GetActiveAttrib Size of active attribute
0* × Z+ GetActiveAttrib Type of active attribute
0* × char GetActiveAttrib empty Name of active attribute
ACTIVE_ATTRIBUTE_MAX_LENGTH Z+ GetProgramiv 0 Max. active attribute name length

§ Program Object State (cont.)

GEOMETRY_VERTICES_OUT Z+ GetProgramiv 0 Max. no. of output vertices
GEOMETRY_INPUT_TYPE E GetProgramiv \glc{TRIANGLES} Primitive input type
GEOMETRY_OUTPUT_TYPE E GetProgramiv \glc{TRIANGLE_STRIP} Primitive output type
GEOMETRY_SHADER_INVOCATIONS Z+ GetProgramiv 1 No. of times a geom. shader should be executed for each input primitive
TRANSFORM_FEEDBACK_BUFFER_MODE E GetProgramiv \glc{INTERLEAVED_ATTRIBS} Transform feedback mode for the program
TRANSFORM_FEEDBACK_VARYINGS Z+ GetProgramiv 0 No. of outputs to stream to buffer object(s)
TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH Z+ GetProgramiv 0 Max. transform feedback output variable name length
Z+ GetTransformFeedbackVarying Size of each transform feedback output variable
Z+ GetTransformFeedbackVarying Type of each transform feedback output variable
0^{+} × char GetTransformFeedbackVarying Name of each transform feedback output variable

§ Program Object State (cont.)

ACTIVE_UNIFORM_BLOCKS Z+ GetProgramiv 0 No. of active uniform blocks in a program
ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH Z+ GetProgramiv 0 Length of longest active uniform block name
UNIFORM_TYPE 0* × E GetActiveUniformsiv Type of active uniform
UNIFORM_SIZE 0* × Z+ GetActiveUniformsiv Size of active uniform
UNIFORM_NAME_LENGTH 0* × Z+ GetActiveUniformsiv Uniform name length
UNIFORM_BLOCK_INDEX 0* × Z GetActiveUniformsiv Uniform block index
UNIFORM_OFFSET 0* × Z GetActiveUniformsiv Uniform buffer offset

§ Program Object State (cont.)

UNIFORM_ARRAY_STRIDE 0* × Z GetActiveUniformsiv Uniform buffer array stride
UNIFORM_MATRIX_STRIDE 0* × Z GetActiveUniformsiv Uniform buffer intra-matrix stride
UNIFORM_IS_ROW_MAJOR 0* × B GetActiveUniformsiv Whether uniform is a row-major matrix
UNIFORM_BLOCK_BINDING Z+ GetActiveUniformBlockiv 0 Uniform buffer binding {point} associated with the specified uniform block
UNIFORM_BLOCK_DATA_SIZE Z+ GetActiveUniformBlockiv Size of the storage needed to hold this uniform block's data
UNIFORM_BLOCK_NAME_LENGTH Z+ GetActiveUniformBlockiv Uniform block name length
UNIFORM_BLOCK_ACTIVE_UNIFORMS Z+ GetActiveUniformBlockiv Count of active uniforms in the specified uniform block
UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES n × Z+ GetActiveUniformBlockiv Array of active uniform indices of the specified uniform block
UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER B GetActiveUniformBlockiv 0 True if uniform block is actively referenced by the vertex stage
UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER B GetActiveUniformBlockiv 0 True if uniform block is actively referenced by tess. control stage
UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUTION_SHADER B GetActiveUniformBlockiv 0 True if uniform block is actively referenced by tess. evaluation stage

§ Program Object State (cont.)

UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER B GetActiveUniformBlockiv 0 True if uniform block is actively referenced by the geometry stage
UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER B GetActiveUniformBlockiv 0 True if uniform block is actively referenced by the fragment stage
UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER B GetActiveUniformBlockiv \glc{FALSE} True if uniform block is referenced by the compute stage
TESS_CONTROL_OUTPUT_VERTICES Z+ GetProgramiv 0 Output patch size for tess. control shader
TESS_GEN_MODE E GetProgramiv \glc{QUADS} Base primitive type for tess. prim. generator
TESS_GEN_SPACING E GetProgramiv \glc{EQUAL} Spacing of tess. prim. generator edge subdivision
TESS_GEN_VERTEX_ORDER E GetProgramiv \glc{CCW} Order of vertices in primitives generated by tess. primitive generator
TESS_GEN_POINT_MODE B GetProgramiv \glc{FALSE} Tess. prim. generator emits points?

§ Program Object State (cont.)

ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 6 × Z+ GetProgramStageiv 0 No. of subroutine unif. locations in the shader
ACTIVE_SUBROUTINE_UNIFORMS 6 × Z+ GetProgramStageiv 0 No. of subroutine unif. variables in the shader
ACTIVE_SUBROUTINES 6 × Z+ GetProgramStageiv 0 No. of subroutine functions in the shader
ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 6 × Z+ GetProgramStageiv 0 Max. subroutine uniform name length
ACTIVE_SUBROUTINE_MAX_LENGTH 6 × Z+ GetProgramStageiv 0 Max. subroutine name length
NUM_COMPATIBLE_SUBROUTINES 6 × 0* × Z+ GetActiveSubroutineUniformiv No. of subroutines compatible with a sub. uniform
COMPATIBLE_SUBROUTINES 6 × 0* × 0* × Z+ GetActiveSubroutineUniformiv List of subroutines compatible with a sub. uniform
UNIFORM_SIZE 6 × 0* × Z+ GetActiveSubroutineUniformiv No. of elements in sub. uniform array
UNIFORM_NAME_LENGTH 6 × 0* × Z+ GetActiveSubroutineUniformiv Length of sub. uniform name
6 × 0* × S GetActiveSubroutineUniformName Sub. uniform name string
6 × 0* × S GetActiveSubroutineName Length of subroutine name
6 × 0* × S GetActiveSubroutineName Subroutine name string

§ Program Object State (cont.)

ACTIVE_ATOMIC_COUNTER_BUFFERS Z+ GetProgramiv 0 No. of active atomic counter buffers (AACBs) used by a program
ATOMIC_COUNTER_BUFFER_BINDING n × Z+ GetActiveAtomicCounterBufferiv Binding point associated with an AACB
ATOMIC_COUNTER_BUFFER_DATA_SIZE n × Z+ GetActiveAtomicCounterBufferiv Min size required by an AACB
ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS n × Z+ GetActiveAtomicCounterBufferiv No. of active atomic counters in an AACB
ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES m × n × Z+ GetActiveAtomicCounterBufferiv List of active atomic counters in an AACB
ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER n × B GetActiveAtomicCounterBufferiv \glc{FALSE} AACB has a counter used by vertex shaders
ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER n × B GetActiveAtomicCounterBufferiv \glc{FALSE} AACB has a counter used by tess. control shaders
ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUTION_SHADER n × B GetActiveAtomicCounterBufferiv \glc{FALSE} AACB has a counter used by tess. evaluation shaders
ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER n × B GetActiveAtomicCounterBufferiv \glc{FALSE} AACB has a counter used by geometry shaders
ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER n × B GetActiveAtomicCounterBufferiv \glc{FALSE} AACB has a counter used by fragment shaders
ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER B GetActiveAtomicCounterBufferiv \glc{FALSE} AACB has a counter used by compute shaders
UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX n × Z+ GetActiveUniformsiv AACB associated with an active uniform

§ Program Interface State

ACTIVE_RESOURCES n × Z+ GetProgramInterfaceiv 0 No. of active resources on an interface
MAX_NAME_LENGTH n × Z+ GetProgramInterfaceiv 0 Max. name length for active resources
MAX_NUM_ACTIVE_VARIABLES n × Z+ GetProgramInterfaceiv 0 Max. no. of active variables for active resources
MAX_NUM_COMPATIBLE_SUBROUTINES n × Z+ GetProgramInterfaceiv 0 Max. no. of compatible subroutines for subroutine uniforms

§ Program Object Resource State

ACTIVE_VARIABLES Z+ GetProgramResourceiv List of active variables owned by active resource
ARRAY_SIZE Z+ GetProgramResourceiv Active resource array size
ARRAY_STRIDE Z+ GetProgramResourceiv Active resource array stride in memory
ATOMIC_COUNTER_BUFFER_INDEX Z+ GetProgramResourceiv Index of atomic counter buffer owning resource
BLOCK_INDEX Z+ GetProgramResourceiv Index of interface block owning resource
BUFFER_BINDING Z+ GetProgramResourceiv Buffer binding assigned to active resource
BUFFER_DATA_SIZE Z+ GetProgramResourceiv Min. buffer data size required for resource
COMPATIBLE_SUBROUTINES Z+ GetProgramResourceiv List of compatible subroutines for active subroutine uniform
IS_PER_PATCH Z+ GetProgramResourceiv Is active input/output a per-patch attribute?
IS_ROW_MAJOR Z+ GetProgramResourceiv Active resource stored as a row major matrix?
LOCATION Z+ GetProgramResourceiv Location assigned to active resource
LOCATION_COMPONENT Z+ GetProgramResourceiv Location component assigned to active resources
LOCATION_INDEX Z+ GetProgramResourceiv Location index assigned to active resource
MATRIX_STRIDE Z+ GetProgramResourceiv Active resource matrix stride in memory

§ Program Object Resource State (cont.)

NAME_LENGTH Z+ GetProgramResourceiv Length of active resource name
NUM_ACTIVE_VARIABLES Z+ GetProgramResourceiv No. of active variables owned by active resource
NUM_COMPATIBLE_SUBROUTINES Z+ GetProgramResourceiv No. of compatible subroutines for active subroutine uniform
OFFSET Z+ GetProgramResourceiv Active resource offset in memory
REFERENCED_BY_VERTEX_SHADER Z+ GetProgramResourceiv Active resource used by vertex shader?
REFERENCED_BY_TESS_CONTROL_SHADER Z+ GetProgramResourceiv Active resource used by tess. control shader?
REFERENCED_BY_TESS_EVALUATION_SHADER Z+ GetProgramResourceiv Active resource used by tess. evaluation shader?
REFERENCED_BY_GEOMETRY_SHADER Z+ GetProgramResourceiv Active resource used by geometry shader?
REFERENCED_BY_FRAGMENT_SHADER Z+ GetProgramResourceiv Active resource used by fragment shader?
REFERENCED_BY_COMPUTE_SHADER Z+ GetProgramResourceiv Active resource used by compute shader?
TOP_LEVEL_ARRAY_SIZE Z+ GetProgramResourceiv Array size of top level shd. storage block member
TOP_LEVEL_ARRAY_STRIDE Z+ GetProgramResourceiv Array stride of top level shd. storage block member
TYPE Z+ GetProgramResourceiv Active resource data type

§ Vertex and Geometry Shader State

(not part of program objects)

VERTEX_PROGRAM_TWO_SIDE B IsEnabled \glc{FALSE} Two-sided color mode enable
CURRENT_VERTEX_ATTRIB MAX_VERTEX_ATTRIBS × R4 GetVertexAttribfv 0.0,0.0,0.0,1.0 Current generic vertex attribute values current
PROGRAM_POINT_SIZE B IsEnabled \glc{FALSE} Point size mode enable

§ Query Object State

QUERY_RESULT Z+ GetQueryObjectuiv 0 or \glc{FALSE} Query object result
QUERY_RESULT_AVAILABLE B GetQueryObjectiv \glc{TRUE} Is the query object result available?
S GetObjectLabel empty Debug label
QUERY_TARGET E GetQueryObjectiv \glc{NONE} Target of query object

§ Image State (state per image unit)

IMAGE_BINDING_NAME MAX_IMAGE_UNITS × Z+ GetIntegeri_v 0 Name of bound texture object
IMAGE_BINDING_LEVEL MAX_IMAGE_UNITS × Z+ GetIntegeri_v 0 Level of bound texture object
IMAGE_BINDING_LAYERED MAX_IMAGE_UNITS × B GetBooleani_v \glc{FALSE} Texture object bound with multiple layers
IMAGE_BINDING_LAYER MAX_IMAGE_UNITS × Z+ GetIntegeri_v 0 Layer of bound texture, if not layered
IMAGE_BINDING_ACCESS MAX_IMAGE_UNITS × E GetIntegeri_v \glc{READ_ONLY} Read and/or write access for bound texture
IMAGE_BINDING_FORMAT MAX_IMAGE_UNITS × Z+ GetIntegeri_v \glc{R8} Format used for accesses to bound texture

§ Atomic Counter Buffer Binding State

ATOMIC_COUNTER_BUFFER_BINDING Z+ GetIntegerv 0 Current value of generic atomic counter buffer binding
ATOMIC_COUNTER_BUFFER_BINDING n × Z+ GetIntegeri_v 0 Buffer object bound to each atomic counter buffer binding point
ATOMIC_COUNTER_BUFFER_START n × Z+ GetInteger64i_v 0 Start offset of binding range for each atomic counter buffer
ATOMIC_COUNTER_BUFFER_SIZE n × Z+ GetInteger64i_v 0 Size of binding range for each atomic counter buffer

§ Shader Storage Buffer Binding State

SHADER_STORAGE_BUFFER_BINDING Z+ GetIntegerv 0 Current value of generic shader storage buffer binding
SHADER_STORAGE_BUFFER_BINDING n × Z+ GetIntegeri_v 0 Buffer object bound to each shader storage buffer binding point
SHADER_STORAGE_BUFFER_START n × Z+ GetInteger64i_v 0 Start offset of binding range for each shader storage buffer
SHADER_STORAGE_BUFFER_SIZE n × Z+ GetInteger64i_v 0 Size of binding range for each shader storage buffer

§ Transform Feedback Object State

TRANSFORM_FEEDBACK_BUFFER_BINDING n × Z+ GetIntegeri_v 0 Buffer object bound to each transform feedback attribute stream
TRANSFORM_FEEDBACK_BUFFER_START n × Z+ GetInteger64i_v 0 Start offset of binding range for each transform feedback attrib. stream
TRANSFORM_FEEDBACK_BUFFER_SIZE n × Z+ GetInteger64i_v 0 Size of binding range for each transform feedback attrib. stream
TRANSFORM_FEEDBACK_PAUSED B GetBooleanv \glc{FALSE} Is transform feedback paused on this object?
TRANSFORM_FEEDBACK_ACTIVE B GetBooleanv \glc{FALSE} Is transform feedback active on this object?
S GetObjectLabel empty Debug label

§ Uniform Buffer Binding State

UNIFORM_BUFFER_BINDING Z+ GetIntegerv 0 Uniform buffer object bound to the context for buffer object manipulation
UNIFORM_BUFFER_BINDING n × Z+ GetIntegeri_v 0 Uniform buffer object bound to the specified context binding point
UNIFORM_BUFFER_START n × Z+ GetInteger64i_v 0 Start of bound uniform buffer region
UNIFORM_BUFFER_SIZE n × Z+ GetInteger64i_v 0 Size of bound uniform buffer region

§ Sync Object State

OBJECT_TYPE E GetSynciv \glc{SYNC_FENCE} Type of sync object
SYNC_STATUS E GetSynciv \glc{UNSIGNALED} Sync object status
SYNC_CONDITION E GetSynciv \glc{SYNC_GPU_COMMANDS_COMPLETE} Sync object condition
SYNC_FLAGS Z+ GetSynciv 0 Sync object flags
S GetObjectPtrLabel empty Debug label

§ Hints

PERSPECTIVE_CORRECTION_HINT E GetIntegerv \glc{DONT_CARE} Perspective correction hint hint
POINT_SMOOTH_HINT E GetIntegerv \glc{DONT_CARE} Point smooth hint hint
LINE_SMOOTH_HINT E GetIntegerv \glc{DONT_CARE} Line smooth hint hint
POLYGON_SMOOTH_HINT E GetIntegerv \glc{DONT_CARE} Polygon smooth hint hint
FOG_HINT E GetIntegerv \glc{DONT_CARE} Fog hint hint
GENERATE_MIPMAP_HINT E GetIntegerv \glc{DONT_CARE} Mipmap generation hint hint
TEXTURE_COMPRESSION_HINT E GetIntegerv \glc{DONT_CARE} Texture compression quality hint hint
FRAGMENT_SHADER_DERIVATIVE_HINT E GetIntegerv \glc{DONT_CARE} Fragment shader derivative accuracy hint hint

§ Compute Dispatch State

DISPATCH_INDIRECT_BUFFER_BINDING Z+ GetIntegerv 0 Indirect dispatch buffer binding

§ Implementation Dependent Values

CONTEXT_RELEASE_BEHAVIOR E GetIntegerv See sec.~\ref{query:context} Flush behavior when context is released
MAX_CLIP_DISTANCES Z+ GetIntegerv 8 Max. no. of user clipping planes
MAX_CULL_DISTANCES Z+ GetIntegerv 8 Max. no. of user culling planes
MAX_COMBINED_CLIP_AND_CULL_DISTANCES Z+ GetIntegerv 8 Max. combined no. of user clipping
SUBPIXEL_BITS Z+ GetIntegerv 4 No. of bits of subpixel precision in screen $x_w$ and $y_w$
MAX_ELEMENT_INDEX Z+ GetInteger64v $2^{32} - 1$ Max. element index
PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED B GetBooleanv Primitive restart support for \glc{PATCHES}
MAX_3D_TEXTURE_SIZE Z+ GetIntegerv 2048 Max. 3D texture image dimension
MAX_TEXTURE_SIZE Z+ GetIntegerv 16384 Max. 2D/1D texture image dimension
MAX_ARRAY_TEXTURE_LAYERS Z+ GetIntegerv 2048 Max. no. of layers for texture arrays
MAX_TEXTURE_LOD_BIAS R+ GetFloatv 2.0 Max. absolute texture level-of-detail bias
MAX_CUBE_MAP_TEXTURE_SIZE Z+ GetIntegerv 16384 Max. cube map texture image dimension
MAX_RENDERBUFFER_SIZE Z+ GetIntegerv 16384 Max. width and height of renderbuffers
MAX_TEXTURE_MAX_ANISOTROPY R GetFloatv 16.0 Limit of maximum degree of anisotropy

§ Implementation Dependent Values (cont.)

MAX_LIGHTS Z+ GetIntegerv 8 Max. no. of lights
MAX_COLOR_MATRIX_STACK_DEPTH Z+ GetIntegerv 2 Max. color matrix stack depth
MAX_MODELVIEW_STACK_DEPTH Z+ GetIntegerv 32 Max. model-view stack depth
MAX_PROJECTION_STACK_DEPTH Z+ GetIntegerv 2 Max. projection matrix stack depth
MAX_TEXTURE_STACK_DEPTH Z+ GetIntegerv 2 Max. no. depth of texture matrix stack
MAX_PIXEL_MAP_TABLE Z+ GetIntegerv 32 Max. size of a \func{PixelMap} translation table
MAX_NAME_STACK_DEPTH Z+ GetIntegerv 64 Max. selection name stack depth
MAX_LIST_NESTING Z+ GetIntegerv 64 Max. display list call nesting
MAX_EVAL_ORDER Z+ GetIntegerv 8 Max. evaluator polynomial order
MAX_ATTRIB_STACK_DEPTH Z+ GetIntegerv 16 Max. depth of the server attribute stack
MAX_CLIENT_ATTRIB_STACK_DEPTH Z+ GetIntegerv 16 Max. depth of the client attribute stack
3 × Z+ 32 Max. size of a color table
Z+ 32 Max. size of the histogram table
ALIASED_POINT_SIZE_RANGE 2 × R+ GetFloatv 1,1 Range (lo to hi) of aliased point sizes
MAX_CONVOLUTION_WIDTH 3 × Z+ GetConvolutionParameteriv 3 Max. width of convolution filter
MAX_CONVOLUTION_HEIGHT 2 × Z+ GetConvolutionParameteriv 3 Max. height of convolution filter

§ Implementation Dependent Values (cont.)

  1. † (at least $[-32768,32767]$)
MAX_VIEWPORT_DIMS 2 × Z+ GetFloatv See sec.~\ref{view:port} Max. viewport dimensions
MAX_VIEWPORTS Z+ GetIntegerv 16 Max. no. of active viewports
VIEWPORT_SUBPIXEL_BITS Z+ GetIntegerv 0 No. of bits of sub-pixel precision for viewport bounds
VIEWPORT_BOUNDS_RANGE 2 × R GetFloatv Viewport bounds range $[min,max]$
LAYER_PROVOKING_VERTEX E GetIntegerv See sec.~\ref{geomshad:exec} Vertex convention followed by \glv{gl_Layer}
VIEWPORT_INDEX_PROVOKING_VERTEX E GetIntegerv See sec.~\ref{geomshad:exec} Vertex convention followed by \glv{gl_ViewportIndex}
POINT_SIZE_RANGE 2 × R+ GetFloatv 1,1 Range (lo to hi) of point sprite sizes
POINT_SIZE_GRANULARITY R+ GetFloatv Point sprite size granularity
ALIASED_LINE_WIDTH_RANGE 2 × R+ GetFloatv 1,1 Range (lo to hi) of aliased line widths
SMOOTH_LINE_WIDTH_RANGE 2 × R+ GetFloatv 1,1 Range (lo to hi) of antialiased line widths
SMOOTH_LINE_WIDTH_GRANULARITY R+ GetFloatv Antialiased line width granularity
MAX_ELEMENTS_INDICES Z+ GetIntegerv Recommended max no. of \glr{DrawRangeElements} indices
MAX_ELEMENTS_VERTICES Z+ GetIntegerv Recommended max no. of \glr{DrawRangeElements} vertices

§ Implementation Dependent Values (cont.)

  1. † The value of \enum{TEXTURE_BUFFER_OFFSET_ALIGNMENT} is the maximum allowed, not the minimum.
MAX_VERTEX_ATTRIB_RELATIVE_OFFSET Z GetIntegerv 2047 Max. offset added to vertex buffer binding offset
MAX_VERTEX_ATTRIB_BINDINGS Z16* GetIntegerv 16 Max. no. of vertex buffers
MAX_VERTEX_ATTRIB_STRIDE Z GetIntegerv 2048 Max. vertex attribute stride
NUM_COMPRESSED_TEXTURE_FORMATS Z+ GetIntegerv 18 No. of compressed texture formats
COMPRESSED_TEXTURE_FORMATS 18* × Z+ GetIntegerv Enumerated compressed texture formats
MAX_TEXTURE_BUFFER_SIZE Z+ GetIntegerv 65536 No. of addressable texels for buffer textures
MAX_RECTANGLE_TEXTURE_SIZE Z+ GetIntegerv 16384 Max. width \& height of rectangle textures
NUM_PROGRAM_BINARY_FORMATS Z+ GetIntegerv 0 No. of program binary formats
PROGRAM_BINARY_FORMATS 0* × Z+ GetIntegerv N/A Enumerated program binary formats
NUM_SHADER_BINARY_FORMATS Z+ GetIntegerv 0 No. of shader binary formats
SHADER_BINARY_FORMATS 0* × Z+ GetIntegerv Enumerated shader binary formats
SHADER_COMPILER B GetBooleanv \glc{TRUE} Shader compiler supported
MIN_MAP_BUFFER_ALIGNMENT Z+ GetIntegerv 64 Min byte alignment of pointers returned by \func{Map*Buffer}
TEXTURE_BUFFER_OFFSET_ALIGNMENT Z+ GetIntegerv 256 Min. required alignment for texture buffer offsets

§ Implementation Dependent Version and Extension Support

MAJOR_VERSION Z+ GetIntegerv Major version no. supported
MINOR_VERSION Z+ GetIntegerv Minor version no. supported
CONTEXT_FLAGS Z+ GetIntegerv Context full/forward-compatible flag
CONTEXT_PROFILE_MASK Z+ GetIntegerv Context profile mask
EXTENSIONS S GetString Supported extension names
EXTENSIONS n × S GetStringi Supported individual extension names
NUM_EXTENSIONS Z+ GetIntegerv 0 No. of individual extension names
RENDERER S GetString Renderer string
SHADING_LANGUAGE_VERSION S GetString Latest Shading Language version supported
SHADING_LANGUAGE_VERSION n × S GetStringi Supported Shading Language versions
NUM_SHADING_LANGUAGE_VERSIONS Z+ GetIntegerv 3 No. of supported Shading Language versions
SPIR_V_EXTENSIONS n × S GetStringi Supported SPIR-V extension names
NUM_SPIR_V_EXTENSIONS Z+ GetIntegerv 0 No. of supported SPIR-V extension names
VENDOR S GetString Vendor string
VERSION S GetString OpenGL version supported

§ Implementation Dependent Vertex Shader Limits

MAX_VERTEX_ATTRIBS Z+ GetIntegerv $16$ No. of active vertex attributes
MAX_VERTEX_UNIFORM_COMPONENTS Z+ GetIntegerv 1024 No. of components for vertex shader uniform variables
MAX_VERTEX_UNIFORM_VECTORS Z+ GetIntegerv 256 No. of vectors for vertex shader uniform variables
MAX_VERTEX_UNIFORM_BLOCKS Z+ GetIntegerv $14*$ Max. no. of vertex uniform buffers per program
MAX_VERTEX_OUTPUT_COMPONENTS Z+ GetIntegerv 64 Max. no. of components of outputs written by a vertex shader
MAX_VERTEX_TEXTURE_IMAGE_UNITS Z+ GetIntegerv 16 No. of texture image units accessible by a vertex shader
MAX_VERTEX_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 0 No. of atomic counter buffers accessed by a vertex shader
MAX_VERTEX_ATOMIC_COUNTERS Z+ GetIntegerv 0 No. of atomic counters accessed by a vertex shader
MAX_VERTEX_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 0 No. of shader storage blocks accessed by a vertex shader

§ Implementation Dependent Tessellation Shader Limits

MAX_TESS_GEN_LEVEL Z+ GetIntegerv 64 Max. level supported by tess. primitive generator
MAX_PATCH_VERTICES Z+ GetIntegerv 32 Max. patch size
MAX_TESS_CONTROL_UNIFORM_COMPONENTS Z+ GetIntegerv 1024 No. of words for tess. control shader (TCS) uniforms
MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS Z+ GetIntegerv 16 No. of tex. image units for TCS
MAX_TESS_CONTROL_OUTPUT_COMPONENTS Z+ GetIntegerv 128 No. components for TCS per-vertex outputs
MAX_TESS_PATCH_COMPONENTS Z+ GetIntegerv 120 No. components for TCS per-patch outputs
MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS Z+ GetIntegerv 4096 Total no. components for TCS outputs
MAX_TESS_CONTROL_INPUT_COMPONENTS Z+ GetIntegerv 128 No. components for TCS per-vertex inputs
MAX_TESS_CONTROL_UNIFORM_BLOCKS Z+ GetIntegerv $14*$ No. of supported uniform blocks for TCS
MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 0 No. of atomic counter (AC) buffers accessed by a TCS
MAX_TESS_CONTROL_ATOMIC_COUNTERS Z+ GetIntegerv 0 No. of ACs accessed by a TCS
MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 0 No. of shader storage blocks accessed by a tess. control shader

§ Implementation Dependent Tessellation Shader Limits (cont.)

MAX_TESS_EVALUATION_UNIFORM_COMPONENTS Z+ GetIntegerv 1024 No. of words for tess. evaluation shader (TES) uniforms
MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS Z+ GetIntegerv 16 No. of tex. image units for TES
MAX_TESS_EVALUATION_OUTPUT_COMPONENTS Z+ GetIntegerv 128 No. components for TES per-vertex outputs
MAX_TESS_EVALUATION_INPUT_COMPONENTS Z+ GetIntegerv 128 No. components for TES per-vertex inputs
MAX_TESS_EVALUATION_UNIFORM_BLOCKS Z+ GetIntegerv $14*$ No. of supported uniform blocks for TES
MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 0 No. of AC buffers accessed by a TES
MAX_TESS_EVALUATION_ATOMIC_COUNTERS Z+ GetIntegerv 0 No. of ACs accessed by a TES
MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 0 No. of shader storage blocks accessed by a tess. evaluation shader

§ Implementation Dependent Geometry Shader Limits

MAX_GEOMETRY_UNIFORM_COMPONENTS Z+ GetIntegerv 1024 No. of components for geometry shader (GS) uniform variables
MAX_GEOMETRY_UNIFORM_BLOCKS Z+ GetIntegerv $14*$ Max. no. of GS uniform buffers per program
MAX_GEOMETRY_INPUT_COMPONENTS Z+ GetIntegerv 64 Max. no. of components of inputs read by a GS
MAX_GEOMETRY_OUTPUT_COMPONENTS Z+ GetIntegerv 128 Max. no. of components of outputs written by a GS
MAX_GEOMETRY_OUTPUT_VERTICES Z+ GetIntegerv 256 Max. no. of vertices that any GS {can} emit
MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS Z+ GetIntegerv 1024 Max. no. of total components (all vertices) of active outputs that a GS can emit
MAX_GEOMETRY_TEXTURE_IMAGE_UNITS Z+ GetIntegerv 16 No. of texture image units accessible by a GS
MAX_GEOMETRY_SHADER_INVOCATIONS Z+ GetIntegerv 32 Max. supported GS invocation count
MAX_VERTEX_STREAMS Z+ GetIntegerv 4 Total no. of vertex streams
MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 0 No. of atomic counter buffers accessed by a GS
MAX_GEOMETRY_ATOMIC_COUNTERS Z+ GetIntegerv 0 No. of atomic counters accessed by a GS
MAX_GEOMETRY_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 0 No. of shader storage blocks accessed by a GS

§ Implementation Dependent Fragment Shader Limits

MAX_FRAGMENT_UNIFORM_COMPONENTS Z+ GetIntegerv 1024 No. of components for fragment shader (FS) uniform variables
MAX_FRAGMENT_UNIFORM_VECTORS Z+ GetIntegerv 256 No. of vectors for FS uniform variables
MAX_FRAGMENT_UNIFORM_BLOCKS Z+ GetIntegerv $14*$ Max. no. of FS uniform buffers per program
MAX_FRAGMENT_INPUT_COMPONENTS Z+ GetIntegerv 128 Max. no. of components of inputs read by a FS
MAX_TEXTURE_IMAGE_UNITS Z+ GetIntegerv 16 No. of texture image units accessible by a FS
MIN_PROGRAM_TEXTURE_GATHER_OFFSET Z GetIntegerv -8 Min texel offset for \glv{textureGather}
MAX_PROGRAM_TEXTURE_GATHER_OFFSET Z+ GetIntegerv 7 Max. texel offset for \glv{textureGather}
MAX_TEXTURE_UNITS Z+ GetIntegerv $2$ No. of fixed-function texture units
MAX_TEXTURE_COORDS Z+ GetIntegerv $8$ No. of texture coordinate sets
MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 1 No. of atomic counter buffers accessed by a FS
MAX_FRAGMENT_ATOMIC_COUNTERS Z+ GetIntegerv 8 No. of atomic counters accessed by a FS
MAX_FRAGMENT_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 8 No. of shader storage blocks accessed by a FS

§ Implementation Dependent Compute Shader Limits

MAX_COMPUTE_WORK_GROUP_COUNT 3 × Z+ GetIntegeri_v 65535 Max. no. of workgroups (WG) that may be dispatched by a single dispatch command (per dimension)
MAX_COMPUTE_WORK_GROUP_SIZE 3 × Z+ GetIntegeri_v 1024 (x, y), 64 (z) Max. local size of a compute WG (per dimension)
MAX_COMPUTE_WORK_GROUP_INVOCATIONS Z+ GetIntegerv 1024 Max. total compute shader (CS) invocations in a single local WG
MAX_COMPUTE_UNIFORM_BLOCKS Z+ GetIntegerv $14*$ Max. no. of uniform blocks per compute program
MAX_COMPUTE_TEXTURE_IMAGE_UNITS Z+ GetIntegerv 16 Max. no. of texture image units accessible by a CS
MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 8 No. of atomic counter buffers accessed by a CS
MAX_COMPUTE_ATOMIC_COUNTERS Z+ GetIntegerv 8 No. of atomic counters accessed by a CS
MAX_COMPUTE_SHARED_MEMORY_SIZE Z+ GetIntegerv 32768 Max. total storage size of all variables declared as {\em shared} in all CSs linked into a single program object
MAX_COMPUTE_UNIFORM_COMPONENTS Z+ GetIntegerv 1024 No. of components for CS uniform variables
MAX_COMPUTE_IMAGE_UNIFORMS Z+ GetIntegerv 8 No. of image variables in compute shaders
MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS Z+ GetIntegerv * No. of words for compute shader uniform variables in all uniform blocks, including the default
MAX_COMPUTE_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 8 No. of shader storage blocks accessed by a compute shader

§ Implementation Dependent Aggregate Shader Limits

  1. † The value of \enum{UNIFORM_BUFFER_OFFSET_ALIGNMENT} is the maximum allowed, not the minimum.
MIN_PROGRAM_TEXEL_OFFSET Z GetIntegerv -8 Min texel offset allowed in lookup
MAX_PROGRAM_TEXEL_OFFSET Z GetIntegerv 7 Max. texel offset allowed in lookup
MAX_UNIFORM_BUFFER_BINDINGS Z+ GetIntegerv 84 Max. no. of uniform buffer binding points on the context
MAX_UNIFORM_BLOCK_SIZE Z+ GetIntegerv 16384 Max. size in basic machine units of a uniform block
UNIFORM_BUFFER_OFFSET_ALIGNMENT Z+ GetIntegerv 256 Min. required alignment for uniform buffer sizes and offsets
MAX_COMBINED_UNIFORM_BLOCKS Z+ GetIntegerv $70*$ Max. no. of uniform buffers per program
MAX_VARYING_COMPONENTS Z+ GetIntegerv 60 No. of components for output variables
MAX_VARYING_VECTORS Z+ GetIntegerv 15 No. of vectors for output variables
MAX_COMBINED_TEXTURE_IMAGE_UNITS Z+ GetIntegerv $80$ Total no. of texture units accessible by the GL
MAX_SUBROUTINES Z+ GetIntegerv 256 Max. no. of subroutines per shader stage
MAX_SUBROUTINE_UNIFORM_LOCATIONS Z+ GetIntegerv 1024 Max. no. of subroutine uniform locations per stage
MAX_UNIFORM_LOCATIONS Z+ GetIntegerv 1024 Max. no. of user-assignable uniform locations

§ Implementation Dependent Aggregate Shader Limits (cont.)

  1. † The value of \enum{SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT} is the maximum allowed, not the minimum.
MAX_ATOMIC_COUNTER_BUFFER_BINDINGS Z+ GetIntegerv 1 Max. no. of atomic counter buffer bindings
MAX_ATOMIC_COUNTER_BUFFER_SIZE Z+ GetIntegerv 32 Max. size in basic machine units of an atomic counter buffer
MAX_COMBINED_ATOMIC_COUNTER_BUFFERS Z+ GetIntegerv 1 Max. no. of atomic counter buffers per program
MAX_COMBINED_ATOMIC_COUNTERS Z+ GetIntegerv 8 Max. no. of atomic counter uniforms per program
MAX_SHADER_STORAGE_BUFFER_BINDINGS Z+ GetIntegerv 8 Max. no. of shader storage buffer bindings in the context
MAX_SHADER_STORAGE_BLOCK_SIZE Z+ GetInteger64v $2^{27}$ Max. size in basic machine units of a shader storage block
MAX_COMBINED_SHADER_STORAGE_BLOCKS Z+ GetIntegerv 8 No. of shader storage blocks accessed by a program
SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT Z+ GetIntegerv 256 Min. required alignment for shader storage buffer binding offsets

§ Implementation Dependent Aggregate Shader Limits (cont.)

MAX_IMAGE_UNITS Z+ GetIntegerv $8$ No. of units for image load/store/atom
MAX_COMBINED_SHADER_OUTPUT_RESOURCES Z+ GetIntegerv 8 Limit on active image units + {shader storage blocks +} fragment outputs
MAX_IMAGE_SAMPLES Z+ GetIntegerv 0 Max. allowed samples for a texture level bound to an image unit
MAX_VERTEX_IMAGE_UNIFORMS Z+ GetIntegerv 0 No. of image variables in vertex shaders
MAX_TESS_CONTROL_IMAGE_UNIFORMS Z+ GetIntegerv 0 No. of image variables in tess. control shaders
MAX_TESS_EVALUATION_IMAGE_UNIFORMS Z+ GetIntegerv 0 No. of image variables in tess. eval. shaders
MAX_GEOMETRY_IMAGE_UNIFORMS Z+ GetIntegerv 0 No. of image variables in geometry shaders
MAX_FRAGMENT_IMAGE_UNIFORMS Z+ GetIntegerv 8 No. of image variables in fragment shaders
MAX_COMBINED_IMAGE_UNIFORMS Z+ GetIntegerv 8 No. of image variables in all shaders

§ Implementation Dependent Aggregate Shader Limits (cont.)

  1. † The minimum value for each stage is \enum{MAX_{\em{stage}}_UNIFORM_BLOCKS} $\times$ \enum{MAX_UNIFORM_BLOCK_SIZE / 4} + \enum{MAX_{\em{stage}}_UNIFORM_COMPONENTS}
MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS Z+ GetIntegerv No. of words for vertex shader uniform variables in all uniform blocks (including default)
MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS Z+ GetIntegerv No. of words for geometry shader uniform variables in all uniform blocks (including default)
MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS Z+ GetIntegerv No. of words for TCS uniform variables in all uniform blocks (including default)
MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS Z+ GetIntegerv No. of words for TES uniform variables in all uniform blocks (including default)
MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS Z+ GetIntegerv No. of words for fragment shader uniform variables in all uniform blocks (including default)

§ Debug Output State

  1. † The initial value of \glc{DEBUG_OUTPUT} is \glc{TRUE} in a debug context and \glc{FALSE} in a non-debug context.
DEBUG_CALLBACK_FUNCTION Y GetPointerv \glc{NULL} The current debug output callback function pointer
DEBUG_CALLBACK_USER_PARAM Y GetPointerv \glc{NULL} The current debug output callback user parameter
DEBUG_LOGGED_MESSAGES Z+ GetIntegerv 0 The no. of messages currently in the debug message log
DEBUG_NEXT_LOGGED_MESSAGE_LENGTH Z+ GetIntegerv 0 The string length of the oldest debug message in the debug message log
DEBUG_OUTPUT_SYNCHRONOUS B IsEnabled \glc{FALSE} The enabled state for synchronous debug message callbacks
DEBUG_GROUP_STACK_DEPTH Z+ GetIntegerv 1 Debug group stack pointer
DEBUG_OUTPUT B IsEnabled Depends on the context The enabled state for debug output functionality

§ Implementation Dependent Debug Output State

MAX_DEBUG_MESSAGE_LENGTH Z+ GetIntegerv 1 The max length of a debug message string, including its null terminator
MAX_DEBUG_LOGGED_MESSAGES Z+ GetIntegerv 1 The max no. of messages stored in the debug message log
MAX_DEBUG_GROUP_STACK_DEPTH Z+ GetIntegerv 64 Max. group stack depth
MAX_LABEL_LENGTH Z+ GetIntegerv 256 Max. length of a label string

§ Implementation Dependent Values (cont.)

  1. † These queries return the maximum no. of samples for all internal formats required to support multisampled rendering.
MAX_FRAMEBUFFER_WIDTH Z+ GetIntegerv 16384 Max. width for framebuffer object
MAX_FRAMEBUFFER_HEIGHT Z+ GetIntegerv 16384 Max. height for framebuffer object
MAX_FRAMEBUFFER_LAYERS Z+ GetIntegerv 2048 Max. layer count for layered framebuffer object
MAX_FRAMEBUFFER_SAMPLES Z+ GetIntegerv 4 Max. sample count for framebuffer object
MAX_SAMPLE_MASK_WORDS Z+ GetIntegerv 1 Max. no. of sample mask words
MAX_SAMPLES Z+ GetIntegerv 4 Max. no. of samples supported for multisampling
MAX_COLOR_TEXTURE_SAMPLES Z+ GetIntegerv 1 Max. no. of samples supported for all color formats in a multisample texture
MAX_DEPTH_TEXTURE_SAMPLES Z+ GetIntegerv 1 Max. no. of samples supported for all depth/stencil formats in a multisample texture
MAX_INTEGER_SAMPLES Z+ GetIntegerv 1 Max. no. of samples supported for all integer format multisample buffers
QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION B GetBooleanv Whether quads follow provoking vertex convention
QUERY_COUNTER_BITS n × Z+ GetQueryiv See sec.~\ref{state:occquery} Asynchronous query counter bits
MAX_SERVER_WAIT_TIMEOUT Z+ GetInteger64v 0 Max. \glr{WaitSync} timeout interval

§ Implementation Dependent Values (cont.)

  1. † “ULP” means “Units in the Last Place” or “Unit of Least Precision”.
MIN_FRAGMENT_INTERPOLATION_OFFSET R GetFloatv -0.5 Furthest negative offset for \glv{interpolateAtOffset}
MAX_FRAGMENT_INTERPOLATION_OFFSET R GetFloatv +0.5 - 1 ULP Furthest positive offset for \glv{interpolateAtOffset}
FRAGMENT_INTERPOLATION_OFFSET_BITS Z+ GetIntegerv 4 Subpixel bits for \glv{interpolateAtOffset}
MAX_DRAW_BUFFERS Z+ GetIntegerv $8$ Max. no. of active draw buffers
MAX_DUAL_SOURCE_DRAW_BUFFERS Z+ GetIntegerv 1 Max. no. of active draw buffers when using dual-source blending
MAX_COLOR_ATTACHMENTS Z+ GetIntegerv 8 Max. no. of FBO attachment points for color buffers

§ Internal Format Dependent Values

  1. † See section~\ref{gets:internal}
SAMPLES 0* × Z+ GetInternalformativ Supported sample counts
NUM_SAMPLE_COUNTS Z+ GetInternalformativ 1 No. of supported sample counts

§ Implementation Dependent Transform Feedback Limits

MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS Z+ GetIntegerv 64 Max. no. of components to write to a single buffer in interleaved mode
MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS Z+ GetIntegerv 4 Max. no. of separate attributes or {outputs} that can be captured in transform feedback
MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS Z+ GetIntegerv 4 Max. no. of components per attribute or output in separate mode
MAX_TRANSFORM_FEEDBACK_BUFFERS Z+ GetIntegerv 4 Max. no. of buffer objs to write with transform feedback

§ Framebuffer Dependent Values

  1. † Unlike most framebuffer-dependent state, which is queried from the currently bound draw framebuffer, this state is queried from the currently bound read framebuffer. $n$ is the value of \glc{SAMPLES}.
DOUBLEBUFFER B GetBooleanv True if front \& back buffers exist
STEREO B GetBooleanv True if left \& right buffers exist
SAMPLE_BUFFERS Z2 GetIntegerv 0 No. of multisample buffers
SAMPLES Z+ GetIntegerv 0 Coverage mask size
SAMPLE_POSITION n × 2 × R[0,1] GetMultisamplefv Explicit sample positions
IMPLEMENTATION_COLOR_READ_FORMAT E GetIntegerv Implementation preferred pixel {\em format}
IMPLEMENTATION_COLOR_READ_TYPE E GetIntegerv Implementation preferred pixel {\em type}

§ Framebuffer Dependent Values (cont.)

AUX_BUFFERS Z+ GetIntegerv 0 No. of auxiliary buffers
RGBA_MODE B GetBooleanv True if color buffers store RGBA
INDEX_MODE B GetBooleanv True if color buffers store indexes
RED_BITS Z+ GetIntegerv No. of bits in RED color buffer component
GREEN_BITS Z+ GetIntegerv No. of bits in GREEN color buffer component
BLUE_BITS Z+ GetIntegerv No. of bits in BLUE color buffer component
ALPHA_BITS Z+ GetIntegerv No. of bits in ALPHA color buffer component
INDEX_BITS Z+ GetIntegerv No. of bits in INDEX color buffer component
DEPTH_BITS Z+ GetIntegerv No. of depth buffer planes
STENCIL_BITS Z+ GetIntegerv No. of stencil planes
ACCUM_RED_BITS Z+ GetIntegerv No. of bits in RED accumulation buffer component
ACCUM_GREEN_BITS Z+ GetIntegerv No. of bits in GREEN accumulation buffer component
ACCUM_BLUE_BITS Z+ GetIntegerv No. of bits in BLUE accumulation buffer component
ACCUM_ALPHA_BITS Z+ GetIntegerv No. of bits in ALPHA accumulation buffer component

§ Miscellaneous

LIST_BASE Z+ GetIntegerv 0 Setting of \func{ListBase} list
LIST_INDEX Z+ GetIntegerv 0 No. of display list under construction; 0 if none
LIST_MODE Z+ GetIntegerv 0 Mode of display list under construction; undefined if none
n × S GetObjectLabel empty Debug label (per display list)
16* × A empty Server attribute stack
ATTRIB_STACK_DEPTH Z+ GetIntegerv 0 Server attribute stack pointer
16* × A empty Client attribute stack
CLIENT_ATTRIB_STACK_DEPTH Z+ GetIntegerv 0 Client attribute stack pointer
NAME_STACK_DEPTH Z+ GetIntegerv 0 Name stack depth
RENDER_MODE E GetIntegerv \glc{RENDER} \func{RenderMode} setting
SELECTION_BUFFER_POINTER Y GetPointerv 0 Selection buffer pointer select
SELECTION_BUFFER_SIZE Z+ GetIntegerv 0 Selection buffer size select
FEEDBACK_BUFFER_POINTER Y GetPointerv 0 Feedback buffer pointer feedback
FEEDBACK_BUFFER_SIZE Z+ GetIntegerv 0 Feedback buffer size feedback
FEEDBACK_BUFFER_TYPE E GetIntegerv \glc{2D} Feedback type feedback
n × E GetError 0 Current error code(s)
n × B \glc{FALSE} True if there is a corresponding error
CURRENT_QUERY n × Z+ GetQueryiv 0 Active query object names
QUERY_BUFFER_BINDING Z+ GetIntegeriv 0 Query result buffer binding
COPY_READ_BUFFER_BINDING Z+ GetIntegerv 0 Buffer object bound to copy buffer “read” bind point
COPY_WRITE_BUFFER_BINDING Z+ GetIntegerv 0 Buffer object bound to copy buffer “write” bind point
RESET_NOTIFICATION_STRATEGY Z2 GetIntegerv See sec.~\ref{fund:reset} Reset notification behavior
TEXTURE_BUFFER_BINDING Z+ GetIntegerv 0 Buffer object bound to generic texture buffer bind point texture
TEXTURE_CUBE_MAP_SEAMLESS B IsEnabled \glc{FALSE} Seamless cube map filtering enable

This page is not produced by the Khronos Group, and cannot substitute for the Khronos Group specifications. This page is an independently created composite and reinterpretation that may contain inaccuracies; you rely on it at your own risk. Always consult the Khronos Group specifications. OpenGL® and OpenGL ES™ are trademarks used under license by the Khronos Group.

OpenGL ES 1.1 specification acknowledgments:
Copyright 2002-2008 The Khronos Group Inc.
Copyright 1992-2002 Silicon Graphics, Inc.
SPDX-License-Identifier: CC-BY-4.0
OpenGL ES 3.2 specification acknowledgments:
Copyright 2008-2022 The Khronos Group Inc.
Copyright 1992-2005 Silicon Graphics, Inc.
SPDX-License-Identifier: CC-BY-4.0
OpenGL 4.6 specification acknowledgments:
Copyright 2008-2022 The Khronos Group Inc
Copyright 1992-2005 Silicon Graphics, Inc.
SPDX-License-Identifier: CC-BY-4.0

OpenGL-state-table-parser © 2023 hikari_no_yume. The content of this page may be redistributed under CC BY 4.0.