# Status of OpenGL extensions in Mesa

Here's how to read this file:

all DONE: <driver>, ...
    All the extensions are done for the given list of drivers.

DONE
    The extension is done for Mesa and no implementation is necessary on the
    driver-side.

DONE ()
    The extension is done for Mesa and all the drivers in the "all DONE" list.

DONE (<driver>, ...)
    The extension is done for Mesa, all the drivers in the "all DONE" list, and
    all the drivers in the brackets.

in progress
    The extension is started but not finished yet.

not started
    The extension isn't started yet.

# 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, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr

  glBindFragDataLocation, glGetFragDataLocation         DONE
  GL_NV_conditional_render (Conditional rendering)      DONE ()
  GL_ARB_map_buffer_range (Map buffer subranges)        DONE ()
  GL_ARB_color_buffer_float (Clamping controls)         DONE ()
  GL_ARB_texture_float (Float textures, renderbuffers)  DONE ()
  GL_EXT_packed_float                                   DONE ()
  GL_EXT_texture_shared_exponent                        DONE ()
  GL_ARB_depth_buffer_float (Float depth buffers)       DONE ()
  GL_ARB_framebuffer_object (Framebuffer objects)       DONE ()
  GL_ARB_half_float_pixel                               DONE (all drivers)
  GL_ARB_half_float_vertex                              DONE ()
  GL_EXT_texture_integer                                DONE ()
  GL_EXT_texture_array                                  DONE ()
  GL_EXT_draw_buffers2 (Per-buffer blend and masks)     DONE ()
  GL_EXT_texture_compression_rgtc                       DONE ()
  GL_ARB_texture_rg                                     DONE ()
  GL_EXT_transform_feedback (Transform feedback)        DONE ()
  GL_ARB_vertex_array_object (Vertex array objects)     DONE ()
  GL_EXT_framebuffer_sRGB (sRGB framebuffer format)     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 (llvmpipe (*), softpipe (*), swr (*))

(*) llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support


GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr

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


GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe

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


GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe

  GL_ARB_blend_func_extended                            DONE (swr)
  GL_ARB_explicit_attrib_location                       DONE (all drivers that support GLSL)
  GL_ARB_occlusion_query2                               DONE (swr)
  GL_ARB_sampler_objects                                DONE (all drivers)
  GL_ARB_shader_bit_encoding                            DONE (swr)
  GL_ARB_texture_rgb10_a2ui                             DONE (swr)
  GL_ARB_texture_swizzle                                DONE (swr)
  GL_ARB_timer_query                                    DONE (swr)
  GL_ARB_instanced_arrays                               DONE (swr)
  GL_ARB_vertex_type_2_10_10_10_rev                     DONE (swr)


GL 4.0, GLSL 4.00 --- all DONE: nvc0, r600, radeonsi

  GL_ARB_draw_buffers_blend                             DONE (i965, nv50, llvmpipe, softpipe, swr)
  GL_ARB_draw_indirect                                  DONE (i965, llvmpipe, softpipe, swr)
  GL_ARB_gpu_shader5                                    DONE (i965)
  - 'precise' qualifier                                 DONE
  - Dynamically uniform sampler array indices           DONE (softpipe)
  - Dynamically uniform UBO array indices               DONE ()
  - Implicit signed -> unsigned conversions             DONE
  - Fused multiply-add                                  DONE ()
  - Packing/bitfield/conversion functions               DONE (softpipe)
  - Enhanced textureGather                              DONE (softpipe)
  - Geometry shader instancing                          DONE (llvmpipe, softpipe)
  - Geometry shader multiple streams                    DONE ()
  - Enhanced per-sample shading                         DONE ()
  - Interpolation functions                             DONE ()
  - New overload resolution rules                       DONE
  GL_ARB_gpu_shader_fp64                                DONE (i965/gen8+, llvmpipe, softpipe)
  GL_ARB_sample_shading                                 DONE (i965, nv50)
  GL_ARB_shader_subroutine                              DONE (i965, nv50, llvmpipe, softpipe, swr)
  GL_ARB_tessellation_shader                            DONE (i965)
  GL_ARB_texture_buffer_object_rgb32                    DONE (i965, llvmpipe, softpipe, swr)
  GL_ARB_texture_cube_map_array                         DONE (i965, nv50, llvmpipe, softpipe)
  GL_ARB_texture_gather                                 DONE (i965, nv50, llvmpipe, softpipe, swr)
  GL_ARB_texture_query_lod                              DONE (i965, nv50, softpipe)
  GL_ARB_transform_feedback2                            DONE (i965, nv50, llvmpipe, softpipe, swr)
  GL_ARB_transform_feedback3                            DONE (i965, nv50, llvmpipe, softpipe, swr)


GL 4.1, GLSL 4.10 --- all DONE: nvc0, r600, radeonsi

  GL_ARB_ES2_compatibility                              DONE (i965, nv50, llvmpipe, softpipe, swr)
  GL_ARB_get_program_binary                             DONE (0 binary formats)
  GL_ARB_separate_shader_objects                        DONE (all drivers)
  GL_ARB_shader_precision                               DONE (all drivers that support GLSL 4.10)
  GL_ARB_vertex_attrib_64bit                            DONE (i965/gen8+, llvmpipe, softpipe)
  GL_ARB_viewport_array                                 DONE (i965, nv50, llvmpipe, softpipe)


GL 4.2, GLSL 4.20 -- all DONE: radeonsi

  GL_ARB_texture_compression_bptc                       DONE (i965, nvc0, r600, radeonsi)
  GL_ARB_compressed_texture_pixel_storage               DONE (all drivers)
  GL_ARB_shader_atomic_counters                         DONE (i965, nvc0, radeonsi, softpipe)
  GL_ARB_texture_storage                                DONE (all drivers)
  GL_ARB_transform_feedback_instanced                   DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
  GL_ARB_base_instance                                  DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
  GL_ARB_shader_image_load_store                        DONE (i965, nvc0, radeonsi, softpipe)
  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_shading_language_packing                       DONE (all drivers)
  GL_ARB_internalformat_query                           DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
  GL_ARB_map_buffer_alignment                           DONE (all drivers)


GL 4.3, GLSL 4.30:

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


GL 4.4, GLSL 4.40:

  GL_MAX_VERTEX_ATTRIB_STRIDE                           DONE (all drivers)
  GL_ARB_buffer_storage                                 DONE (i965, nv50, nvc0, r600, radeonsi)
  GL_ARB_clear_texture                                  DONE (i965, nv50, nvc0)
  GL_ARB_enhanced_layouts                               in progress (Timothy)
  - compile-time constant expressions                   DONE
  - explicit byte offsets for blocks                    DONE
  - forced alignment within blocks                      DONE
  - specified vec4-slot component numbers               in progress
  - specified transform/feedback layout                 DONE
  - input/output block locations                        DONE
  GL_ARB_multi_bind                                     DONE (all drivers)
  GL_ARB_query_buffer_object                            DONE (i965/hsw+, nvc0)
  GL_ARB_texture_mirror_clamp_to_edge                   DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
  GL_ARB_texture_stencil8                               DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
  GL_ARB_vertex_type_10f_11f_11f_rev                    DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)

GL 4.5, GLSL 4.50:

  GL_ARB_ES3_1_compatibility                            DONE (nvc0, radeonsi)
  GL_ARB_clip_control                                   DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
  GL_ARB_conditional_render_inverted                    DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
  GL_ARB_cull_distance                                  DONE (i965, nv50, nvc0, llvmpipe, softpipe)
  GL_ARB_derivative_control                             DONE (i965, nv50, nvc0, r600, radeonsi)
  GL_ARB_direct_state_access                            DONE (all drivers)
  GL_ARB_get_texture_sub_image                          DONE (all drivers)
  GL_ARB_shader_texture_image_samples                   DONE (i965, nv50, nvc0, r600, radeonsi)
  GL_ARB_texture_barrier                                DONE (i965, nv50, nvc0, r600, radeonsi)
  GL_KHR_context_flush_control                          DONE (all - but needs GLX/EGL extension to be useful)
  GL_KHR_robustness                                     not started (90% done with the ARB variant)
  GL_EXT_shader_integer_mix                             DONE (all drivers that support GLSL)

These are the extensions cherry-picked to make GLES 3.1
GLES3.1, GLSL ES 3.1
  GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)
  GL_ARB_compute_shader                                 DONE (i965, nvc0, radeonsi, softpipe)
  GL_ARB_draw_indirect                                  DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
  GL_ARB_explicit_uniform_location                      DONE (all drivers that support GLSL)
  GL_ARB_framebuffer_no_attachments                     DONE (i965, nvc0, r600, radeonsi, softpipe)
  GL_ARB_program_interface_query                        DONE (all drivers)
  GL_ARB_shader_atomic_counters                         DONE (i965, nvc0, radeonsi, softpipe)
  GL_ARB_shader_image_load_store                        DONE (i965, nvc0, radeonsi, softpipe)
  GL_ARB_shader_image_size                              DONE (i965, nvc0, radeonsi, softpipe)
  GL_ARB_shader_storage_buffer_object                   DONE (i965, nvc0, radeonsi, softpipe)
  GL_ARB_shading_language_packing                       DONE (all drivers)
  GL_ARB_separate_shader_objects                        DONE (all drivers)
  GL_ARB_stencil_texturing                              DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
  GL_ARB_texture_multisample (Multisample textures)     DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
  GL_ARB_texture_storage_multisample                    DONE (all drivers that support GL_ARB_texture_multisample)
  GL_ARB_vertex_attrib_binding                          DONE (all drivers)
  GS5 Enhanced textureGather                            DONE (i965, nvc0, r600, radeonsi)
  GS5 Packing/bitfield/conversion functions             DONE (i965, nvc0, r600, radeonsi)
  GL_EXT_shader_integer_mix                             DONE (all drivers that support GLSL)

  Additional functionality not covered above:
      glMemoryBarrierByRegion                           DONE
      glGetTexLevelParameter[fi]v - needs updates       DONE
      glGetBooleani_v - restrict to GLES enums
      gl_HelperInvocation support                       DONE (i965, nvc0, r600, radeonsi)

GLES3.2, GLSL ES 3.2
  GL_EXT_color_buffer_float                             DONE (all drivers)
  GL_KHR_blend_equation_advanced                        not started
  GL_KHR_debug                                          DONE (all drivers)
  GL_KHR_robustness                                     not started (90% done with the ARB variant)
  GL_KHR_texture_compression_astc_ldr                   DONE (i965/gen9+)
  GL_OES_copy_image                                     DONE (core only)
  GL_OES_draw_buffers_indexed                           DONE (all drivers that support GL_ARB_draw_buffers_blend)
  GL_OES_draw_elements_base_vertex                      DONE (all drivers)
  GL_OES_geometry_shader                                started (Marta)
  GL_OES_gpu_shader5                                    DONE (all drivers that support GL_ARB_gpu_shader5)
  GL_OES_primitive_bounding_box                         not started
  GL_OES_sample_shading                                 DONE (i965, nvc0, r600, radeonsi)
  GL_OES_sample_variables                               DONE (i965, nvc0, r600, radeonsi)
  GL_OES_shader_image_atomic                            DONE (all drivers that support GL_ARB_shader_image_load_store)
  GL_OES_shader_io_blocks                               started (idr)
  GL_OES_shader_multisample_interpolation               DONE (i965, nvc0, r600, radeonsi)
  GL_OES_tessellation_shader                            not started (based on GL_ARB_tessellation_shader, which is done for some drivers)
  GL_OES_texture_border_clamp                           DONE (all drivers)
  GL_OES_texture_buffer                                 DONE (i965, nvc0, radeonsi)
  GL_OES_texture_cube_map_array                         not started (based on GL_ARB_texture_cube_map_array, which is done for all drivers)
  GL_OES_texture_stencil8                               DONE (all drivers that support GL_ARB_texture_stencil8)
  GL_OES_texture_storage_multisample_2d_array           DONE (all drivers that support GL_ARB_texture_multisample)

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