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.org

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 Hardware Reviews
  1. Even With Re-Clocking, Nouveau Remains Behind NVIDIA's Proprietary Linux Driver
  2. The Power Consumption & Efficiency Of Open-Source GPU Drivers
  3. AMD R600g/RadeonSI Performance On Linux 3.16 With Mesa 10.3-devel
  4. Intel Pentium G3258 On Linux
Latest Linux Articles
  1. AMD Catalyst 14.6 Does Slightly Better With APITest OpenGL Tests
  2. Updated Source Engine Benchmarks On The Latest AMD/NVIDIA Linux Drivers
  3. Nouveau vs. Radeon vs. Intel Tests On Linux 3.16, Mesa 10.3-devel
  4. KVM Benchmarks On Ubuntu 14.10
Latest Linux News
  1. Fedora Assembles A Security Team
  2. AMD Launches The A10-7800, The 65 Watt Kaveri
  3. Builder: A New Development IDE Being Built For GNOME
  4. GDB 7.8 Betters Python Scripting, Adds Guile Support
  5. GNOME's GTK+ Is Still Striving For A Scene Graph, Canvas API
  6. Unreal Tournament Looks Great For Team Deathmatch
  7. LibreOffice 4.3 Released With Many Exciting Changes
  8. GNOME/GTK On Wayland Gains Focus At GUADEC
  9. GNOME Stakeholders Take Issue With Groupon Over their Gnome
  10. GStreamer VA-API Plug-In Update Adds New Features
Latest Forum Discussions
  1. Grand Theft Auto Running On Direct3D Natively On Linux Shows Gallium3D Potential
  2. AMD Publishes Open-Source Linux HSA Kernel Driver
  3. Linus Torvalds On GCC 4.9: Pure & Utter Crap
  4. Debian + radeonsi
  5. Open-source drivers on ATI R7 260X
  6. AMD Athlon 5350 APU On Linux
  7. Updated and Optimized Ubuntu Free Graphics Drivers
  8. List of Linux friendly Kickstarter projects