
Status of OpenGL 3.x features in Mesa


Note: when an item is marked as "DONE" it means all the core Mesa
infrastructure is complete but it may be the case that few (if any) drivers
implement the features.


OpenGL Core and Compatibility context support

OpenGL 3.1 and later versions are only supported with the Core profile.
There are no plans to support GL_ARB_compatibility. The last supported OpenGL
version with all deprecated features is 3.0. Some of the later GL features
are exposed in the 3.0 context as extensions.


Feature                                               Status
----------------------------------------------------- ------------------------

GL 3.0 --- all DONE: i965, nv50, nvc0, r600, radeonsi

  GLSL 1.30                                             DONE ()
  glBindFragDataLocation, glGetFragDataLocation         DONE
  Conditional rendering (GL_NV_conditional_render)      DONE (r300, swrast)
  Map buffer subranges (GL_ARB_map_buffer_range)        DONE (r300, swrast)
  Clamping controls (GL_ARB_color_buffer_float)         DONE (r300)
  Float textures, renderbuffers (GL_ARB_texture_float)  DONE (r300)
  GL_EXT_packed_float                                   DONE ()
  GL_EXT_texture_shared_exponent                        DONE (swrast)
  Float depth buffers (GL_ARB_depth_buffer_float)       DONE ()
  Framebuffer objects (GL_ARB_framebuffer_object)       DONE (r300, swrast)
  GL_ARB_half_float_pixel                               DONE (all drivers)
  GL_ARB_half_float_vertex                              DONE (r300, swrast)
  GL_EXT_texture_integer                                DONE ()
  GL_EXT_texture_array                                  DONE ()
  Per-buffer blend and masks (GL_EXT_draw_buffers2)     DONE (swrast)
  GL_EXT_texture_compression_rgtc                       DONE (r300, swrast)
  GL_ARB_texture_rg                                     DONE (r300, swrast)
  Transform feedback (GL_EXT_transform_feedback)        DONE ()
  Vertex array objects (GL_ARB_vertex_array_object)     DONE (all drivers)
  sRGB framebuffer format (GL_EXT_framebuffer_sRGB)     DONE ()
  glClearBuffer commands                                DONE
  glGetStringi command                                  DONE
  glTexParameterI, glGetTexParameterI commands          DONE
  glVertexAttribI commands                              DONE
  Depth format cube textures                            DONE ()
  GLX_ARB_create_context (GLX 1.4 is required)          DONE
  Multisample anti-aliasing                             DONE (r300)


GL 3.1 --- all DONE: i965, nv50, nvc0, r600, radeonsi

  GLSL 1.40                                             DONE ()
  Forward compatible context support/deprecations       DONE ()
  Instanced drawing (GL_ARB_draw_instanced)             DONE (swrast)
  Buffer copying (GL_ARB_copy_buffer)                   DONE (r300, swrast)
  Primitive restart (GL_NV_primitive_restart)           DONE (r300)
  16 vertex texture image units                         DONE ()
  Texture buffer objs (GL_ARB_texture_buffer_object)    DONE for OpenGL 3.1 contexts ()
  Rectangular textures (GL_ARB_texture_rectangle)       DONE (r300, swrast)
  Uniform buffer objs (GL_ARB_uniform_buffer_object)    DONE (swrast)
  Signed normalized textures (GL_EXT_texture_snorm)     DONE (r300)


GL 3.2 --- all DONE: i965, nv50, nvc0, r600, radeonsi

  Core/compatibility profiles                           DONE
  GLSL 1.50                                             DONE ()
  Geometry shaders                                      DONE ()
  BGRA vertex order (GL_ARB_vertex_array_bgra)          DONE (r300, swrast)
  Base vertex offset(GL_ARB_draw_elements_base_vertex)  DONE (r300, swrast)
  Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (r300, swrast)
  Provoking vertex (GL_ARB_provoking_vertex)            DONE (r300, swrast)
  Seamless cubemaps (GL_ARB_seamless_cube_map)          DONE ()
  Multisample textures (GL_ARB_texture_multisample)     DONE ()
  Frag depth clamp (GL_ARB_depth_clamp)                 DONE (swrast)
  Fence objects (GL_ARB_sync)                           DONE (r300, swrast)
  GLX_ARB_create_context_profile                        DONE


GL 3.3 --- all DONE: i965, nv50, nvc0, r600, radeonsi

  GLSL 3.30                                             DONE ()
  GL_ARB_blend_func_extended                            DONE (softpipe)
  GL_ARB_explicit_attrib_location                       DONE (all drivers that support GLSL)
  GL_ARB_occlusion_query2                               DONE (r300, swrast)
  GL_ARB_sampler_objects                                DONE (all drivers)
  GL_ARB_shader_bit_encoding                            DONE ()
  GL_ARB_texture_rgb10_a2ui                             DONE ()
  GL_ARB_texture_swizzle                                DONE (r300, swrast)
  GL_ARB_timer_query                                    DONE ()
  GL_ARB_instanced_arrays                               DONE (r300)
  GL_ARB_vertex_type_2_10_10_10_rev                     DONE ()


GL 4.0:

  GLSL 4.0                                             not started
  GL_ARB_texture_query_lod                             DONE (i965, nv50, nvc0)
  GL_ARB_draw_buffers_blend                            DONE (i965, nv50, nvc0, r600, radeonsi, softpipe)
  GL_ARB_draw_indirect                                 DONE (i965)
  GL_ARB_gpu_shader5                                   started
  - 'precise' qualifier                                not started
  - Dynamically uniform sampler array indices          not started
  - Unrestricted UBO array indices                     not started
  - Implicit signed -> unsigned conversions            not started
  - Fused multiply-add                                 DONE
  - Packing/bitfield/conversion functions              DONE
  - Enhanced textureGather                             DONE
  - Geometry shader instancing                         DONE
  - Geometry shader multiple streams                   not started
  - Enhanced per-sample shading                        DONE
  - Interpolation functions                            started
  GL_ARB_gpu_shader_fp64                               not started
  GL_ARB_sample_shading                                DONE (i965)
  GL_ARB_shader_subroutine                             not started
  GL_ARB_tessellation_shader                           not started
  GL_ARB_texture_buffer_object_rgb32                   DONE (i965, nvc0, r600, radeonsi, softpipe)
  GL_ARB_texture_cube_map_array                        DONE (i965, nv50, nvc0, r600, softpipe)
  GL_ARB_texture_gather                                DONE (i965, nv50, nvc0)
  GL_ARB_transform_feedback2                           DONE (i965, nv50, nvc0, r600, radeonsi)
  GL_ARB_transform_feedback3                           DONE (i965, nv50, nvc0, r600, radeonsi)


GL 4.1:

  GLSL 4.1                                             not started
  GL_ARB_ES2_compatibility                             DONE (i965, nv50, nvc0, r300, r600, radeonsi)
  GL_ARB_get_program_binary                            DONE (0 binary formats)
  GL_ARB_separate_shader_objects                       started (Ian Romanick, Gregory Hainaut)
  GL_ARB_shader_precision                              not started
  GL_ARB_vertex_attrib_64bit                           not started
  GL_ARB_viewport_array                                DONE (i965, nv50, r600)


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                        DONE (i965)
  GL_ARB_texture_storage                               DONE (all drivers)
  GL_ARB_transform_feedback_instanced                  DONE (i965, nv50, nvc0, r600, radeonsi)
  GL_ARB_base_instance                                 DONE (i965, nv50, nvc0, r600, radeonsi)
  GL_ARB_shader_image_load_store                       in progress (curro)
  GL_ARB_conservative_depth                            DONE (all drivers that support GLSL 1.30)
  GL_ARB_shading_language_420pack                      DONE (all drivers that support GLSL 1.30)
  GL_ARB_internalformat_query                          DONE (i965, nv50, nvc0, r300, r600, radeonsi)
  GL_ARB_map_buffer_alignment                          DONE (all drivers)


GL 4.3:

  GLSL 4.3                                             not started
  GL_ARB_arrays_of_arrays                              started
  GL_ARB_ES3_compatibility                             DONE (i965)
  GL_ARB_clear_buffer_object                           DONE (all drivers)
  GL_ARB_compute_shader                                started (Paul Berry)
  GL_ARB_copy_image                                    not started
  GL_KHR_debug                                         DONE (all drivers)
  GL_ARB_explicit_uniform_location                     not started
  GL_ARB_fragment_layer_viewport                       not started
  GL_ARB_framebuffer_no_attachments                    not started
  GL_ARB_internalformat_query2                         not started
  GL_ARB_invalidate_subdata                            DONE (all drivers)
  GL_ARB_multi_draw_indirect                           DONE (i965)
  GL_ARB_program_interface_query                       not started
  GL_ARB_robust_buffer_access_behavior                 not started
  GL_ARB_shader_image_size                             not started
  GL_ARB_shader_storage_buffer_object                  not started
  GL_ARB_stencil_texturing                             DONE (i965/gen8+)
  GL_ARB_texture_buffer_range                          DONE (nv50, nvc0, i965, r600, radeonsi)
  GL_ARB_texture_query_levels                          DONE (i965)
  GL_ARB_texture_storage_multisample                   DONE (all drivers that support GL_ARB_texture_multisample)
  GL_ARB_texture_view                                  DONE (i965)
  GL_ARB_vertex_attrib_binding                         DONE (all drivers)


GL 4.4:

  GLSL 4.4                                             not started
  GL_MAX_VERTEX_ATTRIB_STRIDE                          not started
  GL_ARB_buffer_storage                                DONE (i965, r300, r600, radeonsi)
  GL_ARB_clear_texture                                 not started
  GL_ARB_enhanced_layouts                              not started
  GL_ARB_multi_bind                                    started (Fredrik Höglund)
  GL_ARB_query_buffer_object                           not started
  GL_ARB_texture_mirror_clamp_to_edge                  DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi, swrast)
  GL_ARB_texture_stencil8                              not started
  GL_ARB_vertex_type_10f_11f_11f_rev                   DONE (i965, nv50, nvc0, r600)


More info about these features and the work involved can be found at
http://dri.freedesktop.org/wiki/MissingFunctionality
