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 Articles & Reviews
  1. Khronos Group Announces Vulkan, OpenCL 2.1, SPIR-V
  2. Samsung 850 EVO SSD Linux Benchmarks
  3. Kubuntu 15.04 Is Turning Out Quite Nice, Good Way To Try Out The Latest KDE
  4. 5-Way Linux Distribution Comparison On The Core i3 NUC
  5. OCZ ARC 100 Linux SSD Benchmarks
  6. Lenovo ThinkPad X1 Carbon Works Great As A Linux Ultrabook
Latest Linux News
  1. A Brand New Linux Network Stack Proposed: Linux XIA
  2. Niche Drivers Get Ported To Atomic Mode-Setting For Linux 4.1
  3. openSUSE Tumbleweed Continues Ascending
  4. Open-Source SPIR-V Reader & Writer Written In Java
  5. LunarGLASS Adds Experimental SPIR-V Front-End
  6. The New Open-Source Linux Test Farm Is Almost Operational
  7. Samba 4.2 Brings Transparent File Compression & Clustering Support
  8. Mutter 3.15.91 Fixes Wayland Nested Compositor Mode, Pointer Constraining
  9. NVIDIA Opens Up CPU-Based PhysX Code
  10. SPIR-V In GCC Is Already Being Talked About
Most Viewed News This Week
  1. The Tremendous Features Of Fedora 22
  2. Confirmed: Vulkan Is The Next-Gen Graphics API
  3. Xfce 4.12 Released After Nearly Three Years Of Work
  4. 8cc: A Small C11 Compiler
  5. LLVM 3.6 & Clang 3.6 Deliver More Features, Complete C++14 Support
  6. Unreal Engine Made Free By Epic Games
  7. Canonical's Latest Demo Of Ubuntu Unity 8 Convergence In Action
  8. ALSA 1.0.29 Released