The State Of OpenGL 3.x, 4.x Extensions In Mesa

With a number of new OpenGL extensions having been recently added to Mesa, here's a look at where the OpenGL 3.x/4.x support stands today in the open-source OpenGL implementation.

Following all the recent code activity about one month out from the next release, the "GL3.txt" documentation was updated to reflect Mesa's current position in catching up to the latest Khronos Group OpenGL specifications.

What's still blocking Mesa from advertising OpenGL 3.2 compliance is the GL Shading Language (GLSL) 1.50 changes not yet being complete but work is in progress. The OpenGL Geometry Shaders support is also only partially complete at this time.

The good news is that once OpenGL 3.2 support is in place, the only work remaining to advertise OpenGL 3.3 compliance are some new GLSL 3.30 changes, but most of those shading language changes are already complete. Developers are hoping for the next release of Mesa will have OpenGL 3.2~3.3 compliance, which would make the new three-month release as Mesa 10.0 rather than Mesa 9.3. There was a recent presentation about the next Mesa in case you missed it. We'll see in the coming weeks what ultimately happens.

In terms of hitting OpenGL 4.0 support, that isn't likely until sometime in 2014 as there's many GL Shading Language changes, some GL4 extensions are complete, other extensions are only started, and some extensions like the GL_ARB_tessellation_shader haven't even been touched yet.

A fair amount of work on OpenGL 4.1 and OpenGL 4.2 has also been committed, but when it comes to OpenGL 4.3 and OpenGL 4.4 there's still much work left to be completed. Unless there's a fundamental shift and major investment to Mesa, I'd find it unlikely to have OpenGL 4.3~4.4 support in the project until at least 2015.

As usual, the Mesa driver in the best shape for supporting the most OpenGL 3/4 functionality is the Intel DRI driver with most of the major Mesa advancements happening by Intel Open-Source Technology Center developers around their investment in the open-source driver stack.

GLSL 4.1 not started
GL_ARB_ES2_compatibility DONE (i965, r300, r600)
GL_ARB_get_program_binary DONE (0 binary formats)
GL_ARB_separate_shader_objects some infrastructure done
GL_ARB_shader_precision not started
GL_ARB_vertex_attrib_64bit not started
GL_ARB_viewport_array not started

GLSL 4.3 not started
ARB_arrays_of_arrays not started
ARB_ES3_compatibility DONE (i965)
ARB_clear_buffer_object not started
ARB_compute_shader started (gallium)
ARB_copy_image not started
KHR_debug DONE
ARB_explicit_uniform_location not started
ARB_fragment_layer_viewport not started
ARB_framebuffer_no_attachments not started
ARB_internalformat_query2 not started
ARB_invalidate_subdata not started
ARB_multi_draw_indirect not started
ARB_program_interface_query not started
ARB_robust_buffer_access_behavior not started
ARB_shader_image_size not started
ARB_shader_storage_buffer_object not started
ARB_stencil_texturing not started
ARB_texture_buffer_range DONE (nv50, nvc0)
ARB_texture_query_levels DONE (i965)
ARB_texture_storage_multisample DONE (i965)
ARB_texture_view not started
ARB_vertex_attrib_binding started (Fredrik)

GL 4.4:

GLSL 4.4 not started
MAX_VERTEX_ATTRIB_STRIDE not started
ARB_buffer_storage not started
ARB_clear_texture not started
ARB_enhanced_layouts not started
ARB_multi_bind not started
ARB_query_buffer_object not started
ARB_texture_mirror_clamp_to_edge not started
ARB_texture_stencil8 not started
ARB_vertex_type_10f_11f_11f_rev not started

Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via Twitter and Google+ or contacted via MichaelLarabel.com.