
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
  - Dynamically uniform 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
  - New overload resolution rules                      not started
  GL_ARB_gpu_shader_fp64                               not started
  GL_ARB_sample_shading                                DONE (i965, nv50, nvc0)
  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                       DONE (all drivers)
  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, nv30, nv50, nvc0, r300, r600, radeonsi)
  GL_ARB_clear_texture                                 not started
  GL_ARB_enhanced_layouts                              not started
  GL_ARB_multi_bind                                    DONE (all drivers)
  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, radeonsi)


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