Skip to content
Daniel Limberger edited this page Aug 11, 2020 · 10 revisions

Brief overview of the following glbinding tools:

The tools are also available pre-compiled, e.g., as Windows archive glbinding-2.0.0-msvc2015-x64-tools.zip or Ubuntu package:

sudo apt-add-repository ppa:cginternals/ppa
sudo apt-get update
sudo apt-get install libglbinding-tools

glcontexts

contexts requests OpenGL contexts for all valid versions and lists the resulting versions. This helps to gather intel on context creation on various system setup's (operating systems, GPUs, and OpenGL drivers). Feel free to post your results to complete the Context Creation Cheat Sheet. Example output on a Windows 8.1:

test: requesting all context configurations ...

  scheme: <requested_version>  <forward> <core>  <created_version>

  1.0  - -  4.6
  1.0  - c  -.-
  1.0  f -  -.-
  1.0  f c  -.-

  ...

  3.0  - -  3.0
  3.0  - c  -.-
  3.0  f -  -.-
  3.0  f c  -.-

  3.1  - -  3.1
  3.1  - c  -.-
  3.1  f -  -.-
  3.1  f c  -.-

  3.2  - -  3.2c
  3.2  - c  3.2c
  3.2  f -  3.2fc
  3.2  f c  3.2fc

  3.3  - -  3.3c
  3.3  - c  3.3c
  3.3  f -  3.3fc
  3.3  f c  3.3fc

  4.0  - -  4.0c
  4.0  - c  4.0c
  4.0  f -  4.0fc
  4.0  f c  4.0fc

  4.1  - -  4.1c
  4.1  - c  4.1c
  4.1  f -  4.1fc
  4.1  f c  4.1fc

  4.2  - -  4.2c
  4.2  - c  4.2c
  4.2  f -  4.2fc
  4.2  f c  4.2fc

  4.3  - -  4.3c
  4.3  - c  4.3c
  4.3  f -  4.3fc
  4.3  f c  4.3fc

  4.4  - -  4.4c
  4.4  - c  4.4c
  4.4  f -  4.4fc
  4.4  f c  4.4fc

  4.5  - -  4.5c
  4.5  - c  4.5c
  4.5  f -  4.5fc
  4.5  f c  4.5fc

  4.6  - -  4.6c
  4.6  - c  4.6c
  4.6  f -  4.6fc
  4.6  f c  4.6fc

OpenGL Version:  4.6
OpenGL Vendor:   Intel
OpenGL Renderer: Intel(R) Iris(R) Plus Graphics
OpenGL Revision: 20200811 (gl.xml)

glfunctions

functions lists all extensions along with their associated functions. For every function and extension, the support status is shown, and the supported version are summarized (similar to the OpenGL Extensions Viewer). Shortened example output:

[-.- EXTENSIONS]

GL_3DFX_multisample

GL_3DFX_tbuffer
	(0x0000000000000000) glTbufferMask3DFX

GL_3DFX_texture_compression_FXT1 (supported)

...

[4.6 EXTENSIONS]

GL_ARB_gl_spirv (supported)
	(0x00007FFF183C2040) glSpecializeShaderARB

GL_ARB_indirect_parameters (supported)
	(0x00007FFF183B9B00) glMultiDrawArraysIndirectCountARB
	(0x00007FFF183B9D20) glMultiDrawElementsIndirectCountARB

GL_ARB_pipeline_statistics_query (supported)

GL_ARB_polygon_offset_clamp (supported)
	(0x00007FFF183BD6D0) glPolygonOffsetClamp

GL_ARB_shader_atomic_counter_ops (supported)

...

[EXTENSIONS NOT COVERED BY GLBINDING]

GL_EXT_texture_edge_clamp
GL_EXT_texture_rectangle
GL_EXT_texture_storage
GL_INTEL_coarse_fragment_shader
GL_INTEL_multi_rate_fragment_shader
GL_SUN_multi_draw_arrays
GL_WIN_swap_hint
WGL_EXT_swap_control


[NON-EXTENSION OR NOT-COVERED-EXTENSION FUNCTIONS]

	(0x00007FFF968A0E90) glAccum
	(0x00007FFF183A84A0) glActiveTexture
	(0x00007FFF968A1740) glAlphaFunc
	(0x00007FFF968A2F20) glAreTexturesResident
	(0x00007FFF968A3510) glArrayElement
	(0x00007FFF183A8710) glAttachShader
	(0x00007FFF9689D9F0) glBegin
	
	...


[SUMMARY]

# Functions:     1793 of 2992 resolved (1199 unresolved)
                 2358 assigned to extensions.

# Extensions:    231 of 619 supported (8 of which are unknown to glbinding)
  # -.- assoc.:  116 / 503
  # 1.4 assoc.:  0 / 1
  # 3.0 assoc.:  9 / 9
  # 3.1 assoc.:  2 / 2
  # 3.2 assoc.:  7 / 7
  # 3.3 assoc.:  9 / 9
  # 4.0 assoc.:  12 / 12
  # 4.1 assoc.:  6 / 6
  # 4.2 assoc.:  12 / 12
  # 4.3 assoc.:  22 / 22
  # 4.4 assoc.:  8 / 8
  # 4.5 assoc.:  8 / 8
  # 4.6 assoc.:  12 / 12

# Missing Feature Extensions and Functions: 
  # 1.4 assoc. Extensions:
                 GL_ARB_imaging
  # 1.4 assoc. Functions:
                 glColorSubTable
                 glColorTable

  ...

                 glGetnTexImage
                 glGetnUniformdv
  # 4.6 assoc. Functions:
                 glMultiDrawArraysIndirectCount
                 glMultiDrawElementsIndirectCount

OpenGL Version:  4.6
OpenGL Vendor:   Intel
OpenGL Renderer: Intel(R) Iris(R) Plus Graphics
OpenGL Revision: 20200811 (gl.xml)

glinfo

info is similar to glxinfo and enlists all extensions with respect to their associated OpenGL versions:

Miscellaneous: 8 Extensions
        GL_EXT_texture_edge_clamp, GL_EXT_texture_rectangle,
        GL_EXT_texture_storage, GL_INTEL_coarse_fragment_shader,
        GL_INTEL_multi_rate_fragment_shader, GL_SUN_multi_draw_arrays,
        GL_WIN_swap_hint, WGL_EXT_swap_control

Unassociated: 116 Extensions
        GL_3DFX_multisample, GL_3DFX_tbuffer, GL_3DFX_texture_compression_FXT1,
        GL_AMD_blend_minmax_factor, GL_AMD_conservative_depth, GL_AMD_debug_output,
        GL_AMD_depth_clamp_separate, GL_AMD_draw_buffers_blend,

...

Feature 4.4 (supported): 8 of 8 Extensions
        GL_ARB_buffer_storage, GL_ARB_clear_texture, GL_ARB_enhanced_layouts,
        GL_ARB_multi_bind, GL_ARB_query_buffer_object,
        GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_stencil8,
        GL_ARB_vertex_type_10f_11f_11f_rev

Feature 4.5 (supported): 8 of 8 Extensions
        GL_ARB_ES3_1_compatibility, GL_ARB_clip_control,
        GL_ARB_conditional_render_inverted, GL_ARB_cull_distance,
        GL_ARB_direct_state_access, GL_ARB_get_texture_sub_image,
        GL_ARB_robustness, GL_ARB_texture_barrier

Feature 4.6 (supported): 12 of 12 Extensions
        GL_ARB_gl_spirv, GL_ARB_indirect_parameters,
        GL_ARB_pipeline_statistics_query, GL_ARB_polygon_offset_clamp,
        GL_ARB_shader_atomic_counter_ops, GL_ARB_shader_draw_parameters,
        GL_ARB_shader_group_vote, GL_ARB_spirv_extensions,
        GL_ARB_texture_filter_anisotropic,
        GL_ARB_transform_feedback_overflow_query, GL_KHR_context_flush_control,
        GL_KHR_no_error

OpenGL Version:  4.6
OpenGL Vendor:   Intel
OpenGL Renderer: Intel(R) Iris(R) Plus Graphics
OpenGL Revision: 20200811 (gl.xml)

glmeta

meta gathers list of string for versions, enums, and extensions and converts them to their associated OpenGL symbols:

[VERSIONS]

# Versions: 19

1.0
1.1

...

[ENUMS]

# Enums: 3352

 (0x00040b) GL_AUX2
 (0x008cda) GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
 
...

[EXTENSIONS]

 # Extensions: 486

 GL_3DFX_multisample 
 GL_3DFX_tbuffer 
 
...

OpenGL Revision: 27590 (gl.xml)

glqueries

queries calls glGet functions to retrieve lots (probably not all) valid glGet enums and further verifies the specification defaults:

[QUERYING STATE VALUES]

Matrix Stack States
        GL_MATRIX_MODE                        = GL_MODELVIEW
        GL_COLOR_MATRIX                       = identity4
        GL_MODELVIEW_MATRIX                   = identity4
        GL_PROJECTION_MATRIX                  = identity4
        GL_TEXTURE_MATRIX                     = identity4
        GL_COLOR_MATRIX_STACK_DEPTH           = 1
        GL_MODELVIEW_STACK_DEPTH              = 1
        GL_PROJECTION_STACK_DEPTH             = 1
        GL_TEXTURE_STACK_DEPTH                = 1
        GL_MAX_MODELVIEW_STACK_DEPTH          = 32
        GL_MAX_PROJECTION_STACK_DEPTH         = 4
        GL_MAX_TEXTURE_STACK_DEPTH            = 10

Viewport States
        GL_VIEWPORT                           = (0, 0, 320, 240)
        GL_MAX_VIEWPORT_DIMS                  = (16384, 16384)

...
Clone this wiki locally