1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking Benchmarking Platform
Phoromatic Test Orchestration

The State Of OpenGL 3.x/4.x Features In Mesa 9.2

Mesa

Published on 22 August 2013 12:02 AM EDT
Written by Michael Larabel in Mesa
14 Comments

With the release of Mesa 9.2 due out as soon as Thursday, here's a continuation of the earlier Why Mesa 9.2 Doesn't Work For All Linux Users article covering the missing GL3/GL4 functionality from this key open-source graphics project.

As said already, Mesa 9.2 has full support for up through OpenGL 3.1 for the key hardware drivers: Intel, Radeon, and Nouveau. Missing from the pact though is the commonly used Gallium3D LLVMpipe for fallback software rasterization and RadeonSI for the modern HD 7000/8000 series GPU driver.

When it comes to the OpenGL 3.2 support state, the Mesa Git "GL3.txt" documentation as of this evening shows:
GL 3.2:

Core/compatibility profiles DONE
GLSL 1.50 in progress
Geometry shaders (GL_ARB_geometry_shader4) partially done
BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (i965, r300, r600, swrast)
Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (i965, r300, r600, swrast)
Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (i965, r300, r600, swrast)
Provoking vertex (GL_ARB_provoking_vertex) DONE (i965, r300, r600, swrast)
Seamless cubemaps (GL_ARB_seamless_cube_map) DONE (i965, r600)
Multisample textures (GL_ARB_texture_multisample) DONE (i965)
Frag depth clamp (GL_ARB_depth_clamp) DONE (i965, r600, swrast)
Fence objects (GL_ARB_sync) DONE (i965, r300, r600, swrast)
GLX_ARB_create_context_profile DONE
The problems with officially advertising OpenGL 3.2 compliance is that GLSL 1.50 support isn't fully complete nor is OpenGL Geometry Shaders. Much of GLSL 1.50 support is complete, but not all. For the geometry shaders support, it's long been worked on and the last I've heard is they're mostly waiting on GS Piglit tests for ensuring no regressions and the specification is properly implemented.
GL 3.3:

GLSL 3.30 new features in this version pretty much done
GL_ARB_blend_func_extended DONE (i965, r600, softpipe)
GL_ARB_explicit_attrib_location DONE (i915, i965, r300, r600, swrast)
GL_ARB_occlusion_query2 DONE (i965, r300, r600, swrast)
GL_ARB_sampler_objects DONE (i965, r300, r600)
GL_ARB_shader_bit_encoding DONE
GL_ARB_texture_rgb10_a2ui DONE (i965, r600)
GL_ARB_texture_swizzle DONE (same as EXT version) (i965, r300, r600, swrast)
GL_ARB_timer_query DONE (i965, r600)
GL_ARB_instanced_arrays DONE (i965, r300, r600)
GL_ARB_vertex_type_2_10_10_10_rev DONE (i965, r600)
After GL3.2 there is OpenGL 3.3, but there pretty much everything is already wired up except for some GL Shading Language 3.30 changes. Intel expects to be able to advertise OpenGL 3.3 in their driver for their recent HD Graphics before the end of the calendar year.
GL 4.0:

GLSL 4.0 not started
GL_ARB_texture_query_lod DONE (i965)
GL_ARB_draw_buffers_blend DONE (i965, r600, softpipe)
GL_ARB_draw_indirect started (Christoph)
GL_ARB_gpu_shader5 started
GL_ARB_gpu_shader_fp64 not started
GL_ARB_sample_shading not started
GL_ARB_shader_subroutine not started
GL_ARB_tessellation_shader not started
GL_ARB_texture_buffer_object_rgb32 DONE (i965, softpipe)
GL_ARB_texture_cube_map_array DONE (i965, softpipe)
GL_ARB_texture_gather started (Maxence, Chris)
GL_ARB_transform_feedback2 DONE
GL_ARB_transform_feedback3 DONE

GL 4.1:

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

GL 4.2:

GLSL 4.2 not started
GL_ARB_texture_compression_bptc not started
GL_ARB_compressed_texture_pixel_storage not started
GL_ARB_shader_atomic_counters not started
GL_ARB_texture_storage DONE (i965, r300, r600, swrast, gallium)
GL_ARB_transform_feedback_instanced DONE
GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi)
GL_ARB_shader_image_load_store not started
GL_ARB_conservative_depth DONE (softpipe)
GL_ARB_shading_language_420pack started (Todd)
GL_ARB_internalformat_query DONE (i965, gallium)
GL_ARB_map_buffer_alignment DONE (r300, r600, radeonsi)

GL 4.3:

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 some work done (ARB_debug_output)
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 not started
ARB_texture_storage_multisample DONE (i965)
ARB_texture_view not started
ARB_vertex_attrib_binding not started
Some OpenGL 4 functionality is already in place, but there's a lot to be done in catching up with the Khronos OpenGL 4.0, 4.1, 4.2, 4.3, and 4.4 specifications. OpenGL 4.0 support will likely be met in 2014 but I'd be very surprised if GL4.4 is done by the end of 2014, which by then the Khronos Group will almost surely have out yet another OpenGL revision to the industry-standard graphics API.

More details on missing OpenGL/Mesa functionality can be found via this DRI FreeDesktop.org Wiki page.

About The Author
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 and or contacted via .
Latest Linux News
  1. New Mesa Vec4 Backend For Intel, Supports Their NIR Goals
  2. "PulseVideo" Coming To Complement PulseAudio?
  3. Premium Users Now Can Experience Our New Site
  4. XFS Will Get DAX Support In The Linux 4.2 Kernel
  5. X.Org Server Lands More Mode-Setting/GLAMOR Improvements, But No Sign Of 1.18
  6. Linux Mint 17.2 Officially Released With Cinnamon/MATE Flavors
  7. Fedora For MIPS Is Now Out In Testing, Supports The Creator CI20
  8. KDE Plasma 5.3.2 Fixes Shutdown Scripts, Few Dozen Other Bugs
  9. KDE Marks Four Years In Its Process Of Porting To Wayland
  10. Btrfs In Linux 4.2 Brings Quota Updates, Many Fixes
Latest Articles & Reviews
  1. How KDE VDG Is Trying To Make Open-Source Software Beautiful
  2. Attempting To Try Out BCache On The Linux 4.1 Kernel
  3. CompuLab's Fitlet Is A Very Tiny, Fanless, Linux PC With AMD A10 Micro
  4. AMD A10-7870K Godavari: RadeonSI Gallium3D vs. Catalyst Linux Drivers
Most Viewed News This Week
  1. Kubuntu 15.10 Could Be The End Of The Road
  2. Linus Is Looking Forward To Merging KDBUS, But Not Convinced By Performance
  3. NVIDIA Starts Supplying Open-Source Hardware Reference Headers
  4. KDBUS Won't Be Pushed Until The Linux 4.3 Kernel
  5. Linux 4.2 Kernel Gets Port To New Processor Architecture
  6. The Staging Pull For Linux 4.2: "Big, Really Big"
  7. The State & Complications Of Porting The Unity Editor To Linux
  8. SteamOS "Brewmaster" Is Valve's New Debian 8.1 Based Version