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

OpenGL 4.3 Support Is A Ways Out In Mesa

Mesa

Published on 06 August 2012 08:25 PM EDT
Written by Michael Larabel in Mesa
11 Comments

While the OpenGL 4.3 specification was just released (along with OpenGL ES 3.0), there's already a beta NVIDIA Linux proprietary driver supporting this latest desktop graphics API from Khronos. AMD will also soon be released a Catalyst beta with the GL 4.3 / GLSL 4.30 support. However, the open-source Mesa support will still be a ways out.

The Mesa documentation was updated today to reflect what's left in supporting the latest revisions of the OpenGL standard. Unfortunately, there's a lot left with officially Mesa/Gallium3D still being limited to OpenGL 3.0 compliance.

There's many new OpenGL 4.3 functions to support aside from all of the new features of the matching GL Shading Language update. From what made it into the OpenGL 4.3 specification, the only items that have been started by Mesa developers to date has been GL_ARB_compute_shader and GL_ARB_debug_output. Early work on the ARB_compute_shader extension has been done within Gallium3D and is used for dealing with graphics compute programs/shaders, but the support is currently incomplete.

The GL_ARB_debug_output support in Mesa originated with a request from Valve for Mesa supporting this OpenGL extension that allows for applications/games to be notified when different events occur, which is used during application development and testing/debugging.

The other OpenGL 4.3 extensions like ARB_ES3_compatibility, ARB_arrays_of_arrays, and ARB_copy_image have yet to be started. Before some of the GL 4.3 specifications can be implemented, earlier versions of the OpenGL specifications need to be implemented where needed.

Large portions of the OpenGL 3.1/3.2/3.3 are nearing (or at) completion, but still it will be at least until early next year that a major new version of OpenGL compliance is reached -- Mesa 8.1 is coming this month and there's still a six-month release cycle for major Mesa releases. Perhaps in the following Mesa release it will be able to jump straight to OpenGL 3.2 or even OpenGL 3.3 if being rather optimistic. However, for OpenGL 4.0/4.1/4.2/4.3 there's still much left where I would be very surprised if that's reached before 2014, unless some profound shift happens with Mesa/Gallium3D development (keep in mind that it took nearly four years for Mesa to go from OpenGL 2.1 to 3.0 support). Some of this development also needs to happen before OpenGL ES 3.0 support is reached by Mesa/Gallium3D as well.

Below is the Mesa GL3/GL4 status documentation as of this evening in Git.
GL 3.0:

GLSL 1.30                                             DONE
glBindFragDataLocation, glGetFragDataLocation         DONE
Conditional rendering (GL_NV_conditional_render)      DONE (i965, r300, r600, swrast)
Map buffer subranges (GL_ARB_map_buffer_range)        DONE (i965, r300, r600, swrast)
Clamping controls (GL_ARB_color_buffer_float)         DONE (i965, r300, r600)
Float textures, renderbuffers (GL_ARB_texture_float)  DONE (i965, r300, r600)
GL_EXT_packed_float                                   DONE (i965, r600)
GL_EXT_texture_shared_exponent                        DONE (i965, r600, swrast)
Float depth buffers (GL_ARB_depth_buffer_float)       DONE (i965, r600)
Framebuffer objects (GL_ARB_framebuffer_object)       DONE (i965, r300, r600, swrast)
Half-float                                            DONE
Non-normalized Integer texture/framebuffer formats    DONE (i965)
1D/2D Texture arrays                                  DONE
Per-buffer blend and masks (GL_EXT_draw_buffers2)     DONE (i965, r600, swrast)
GL_EXT_texture_compression_rgtc                       DONE (i965, r300, r600, swrast)
Red and red/green texture formats                     DONE (i965, swrast, gallium)
Transform feedback (GL_EXT_transform_feedback)        DONE (i965)
Vertex array objects (GL_APPLE_vertex_array_object)   DONE (i965, r300, r600, swrast)
sRGB framebuffer format (GL_EXT_framebuffer_sRGB)     DONE (i965, r600)
glClearBuffer commands                                DONE
glGetStringi command                                  DONE
glTexParameterI, glGetTexParameterI commands          DONE
glVertexAttribI commands                              ~50% done (converts int
                                                                 values to floats)
Depth format cube textures                            DONE
GLX_ARB_create_context (GLX 1.4 is required)          DONE


GL 3.1:

GLSL 1.40                                             needs UBOs (in progress)
Forward compatibile context support/deprecations      not started
Instanced drawing (GL_ARB_draw_instanced)             DONE (i965, gallium, swrast)
Buffer copying (GL_ARB_copy_buffer)                   DONE (i965, r300, r600, swrast)
Primitive restart (GL_NV_primitive_restart)           DONE (i965, r600)
16 vertex texture image units                         DONE
Texture buffer objs (GL_ARB_texture_buffer_object)    needs GL3.1 enabling (i965)
Rectangular textures (GL_ARB_texture_rectangle)       DONE (i965, r300, r600, swrast)
Uniform buffer objs (GL_ARB_uniform_buffer_object)    not started
Signed normalized textures (GL_EXT_texture_snorm)     DONE (i965, r300, r600)


GL 3.2:

Core/compatibility profiles                           not started
GLSL 1.50                                             not started
Geometry shaders (GL_ARB_geometry_shader4)            partially done (Zack)
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)     not started
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


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 (r300, r600, swrast)
GL_ARB_sampler_objects                                DONE (i965, r300, r600)
GL_ARB_shader_bit_encoding                            DONE
GL_ARB_texture_rgb10_a2ui                             DONE (r600)
GL_ARB_texture_swizzle                                DONE (same as EXT version) (i965, r300, r600, swrast)
GL_ARB_timer_query                                    DONE
GL_ARB_instanced_arrays                               DONE (i965, r300, r600)
GL_ARB_vertex_type_2_10_10_10_rev                     DONE (r600)


GL 4.0:

GLSL 4.0                                             not started
GL_ARB_texture_query_lod                             not started
GL_ARB_draw_buffers_blend                            DONE (i965, r600, softpipe)
GL_ARB_draw_indirect                                 not started
GL_ARB_gpu_shader5                                   not 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                   not started
GL_ARB_texture_cube_map_array                        not started
GL_ARB_texture_gather                                not started
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                            not started
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 (r300, r600, swrast)
GL_ARB_transform_feedback_instanced                  DONE
GL_ARB_base_instance                                 DONE (nv50, nvc0, r600, radeonsi)
GL_ARB_shader_image_load_store                       not started
GL_ARB_conservative_depth                            DONE (softpipe)
GL_ARB_shading_language_420pack                      not started
GL_ARB_internalformat_query                          not started
GL_ARB_map_buffer_alignment                          not started


GL 4.3:

GLSL 4.3                                             not started
ARB_arrays_of_arrays                                 not started
ARB_ES3_compatibility                                not started
ARB_clear_buffer_object                              not started
ARB_compute_shader                                   started (gallium)
ARB_copy_image                                       not started
ARB_debug_group                                      not started
ARB_debug_label                                      not started
ARB_debug_output                                     DONE
ARB_debug_output2                                    not started
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                             not started
ARB_texture_query_levels                             not started
ARB_texture_storage_multisample                      not started
ARB_texture_view                                     not started
ARB_vertex_attrib_binding                            not started

Latest Linux Hardware Reviews
  1. Mini-Box M350: A Simple, Affordable Mini-ITX Case
  2. Overclocking The AMD AM1 Athlon & Sempron APUs
  3. AMD Athlon 5350 / 5150 & Sempron 3850 / 2650
  4. Upgraded Kernel & Mesa Yield A Big Boost For Athlon R3 Graphics
Latest Linux Articles
  1. A Quick Look At GCC 4.9 vs. LLVM Clang 3.5
  2. Are AMD Athlon/Sempron APUs Fast Enough For Steam On Linux?
  3. AMD Athlon's R3 Graphics: RadeonSI Gallium3D vs. Catalyst
  4. GCC 4.9 Compiler Optimization Benchmarks For Faster Binaries
Latest Linux News
  1. R600 Gallium3D Disables LLVM Back-End By Default
  2. Fedora 21 Gets GNOME 3.12, PHP 5.6, Mono 3.4
  3. Fedora Workstation Is Making Me Quite Excited
  4. Maynard: A Lightweight Wayland Desktop
  5. Chromium Browser Going Through Growing Pains In Ubuntu 14.04
  6. KDE 4.13 Is Being Released Today With New Features
  7. Trying Out Radeon R9 290 Graphics On Open-Source
  8. Intel Broadwell GT3 Graphics Have Dual BSD Rings
  9. Early Linux 3.15 Benchmarks Of Intel Core i7 + Radeon
  10. Red Hat Releases Its RHEL 7 Release Candidate
  11. New Features Coming To Xubuntu 14.04 LTS
  12. NVIDIA Officially Releases CUDA 6
Latest Forum Discussions
  1. The GNOME Foundation Is Running Short On Money
  2. Updated and Optimized Ubuntu Free Graphics Drivers
  3. Linux Kernel Developers Fed Up With Ridiculous Bugs In Systemd
  4. Change installation destination from home directory
  5. After Jack Keane, RuseSoft will briing Ankh 3 to Linux through Desura
  6. Bye bye BSD, Hello Linux: A Sys Admin's Story
  7. New tool for undervolt/overclock AMD K8L and K10 processors
  8. How to enable opengl 3.3 on r9 270?