# 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

Some drivers do not support the Compatibility profile or the
ARB_compatibility extensions.  If an application does not request a
specific version without the forward-compatiblity flag, such drivers
will be limited to OpenGL 3.0.  If an application requests OpenGL 3.1,
it will get a context that may or may not have the ARB_compatibility
extension enabled.  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: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl, zink

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

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


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

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


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

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


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

  GL_ARB_blend_func_extended                            DONE (freedreno/a3xx, swr, zink, panfrost)
  GL_ARB_explicit_attrib_location                       DONE (all drivers that support GLSL)
  GL_ARB_occlusion_query2                               DONE (freedreno, swr, v3d, zink, panfrost)
  GL_ARB_sampler_objects                                DONE (all drivers)
  GL_ARB_shader_bit_encoding                            DONE (freedreno, swr, v3d, panfrost)
  GL_ARB_texture_rgb10_a2ui                             DONE (freedreno, swr, zink, panfrost)
  GL_ARB_texture_swizzle                                DONE (freedreno, swr, v3d, zink, panfrost)
  GL_ARB_timer_query                                    DONE (freedreno, swr, zink)
  GL_ARB_instanced_arrays                               DONE (freedreno, swr, v3d, panfrost, zink)
  GL_ARB_vertex_type_2_10_10_10_rev                     DONE (freedreno, swr, v3d, panfrost)


GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl

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


GL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl

  GL_ARB_ES2_compatibility                              DONE (freedreno, i965, nv50, softpipe, swr, v3d, zink, panfrost)
  GL_ARB_get_program_binary                             DONE (0 or 1 binary formats)
  GL_ARB_separate_shader_objects                        DONE (all drivers)
  GL_ARB_shader_precision                               DONE (i965/gen7+, all drivers that support GLSL 4.10)
  GL_ARB_vertex_attrib_64bit                            DONE (i965/gen7+, softpipe, swr)
  GL_ARB_viewport_array                                 DONE (i965, nv50, softpipe, swr, zink)


GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl

  GL_ARB_texture_compression_bptc                       DONE (freedreno, i965, softpipe, swr, zink, panfrost/if SoC supports)
  GL_ARB_compressed_texture_pixel_storage               DONE (all drivers)
  GL_ARB_shader_atomic_counters                         DONE (freedreno/a5xx+, i965, softpipe, v3d)
  GL_ARB_texture_storage                                DONE (all drivers)
  GL_ARB_transform_feedback_instanced                   DONE (freedreno, i965, nv50, softpipe, swr, v3d)
  GL_ARB_base_instance                                  DONE (freedreno, i965, nv50, softpipe, swr, v3d)
  GL_ARB_shader_image_load_store                        DONE (freedreno/a5xx+, i965, softpipe, v3d)
  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 (freedreno, i965, nv50, softpipe, swr, v3d, zink, panfrost)
  GL_ARB_map_buffer_alignment                           DONE (all drivers)


GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe, virgl

  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 (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
  GL_ARB_copy_image                                     DONE (i965, nv50, softpipe, swr)
  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, softpipe, swr)
  GL_ARB_framebuffer_no_attachments                     DONE (freedreno, i965, softpipe, v3d)
  GL_ARB_internalformat_query2                          DONE (all drivers)
  GL_ARB_invalidate_subdata                             DONE (all drivers)
  GL_ARB_multi_draw_indirect                            DONE (freedreno, i965, softpipe, swr, v3d)
  GL_ARB_program_interface_query                        DONE (all drivers)
  GL_ARB_robust_buffer_access_behavior                  DONE (i965)
  GL_ARB_shader_image_size                              DONE (freedreno/a5xx+, i965, softpipe, v3d)
  GL_ARB_shader_storage_buffer_object                   DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
  GL_ARB_stencil_texturing                              DONE (freedreno, i965/hsw+, nv50, softpipe, swr, v3d, panfrost)
  GL_ARB_texture_buffer_range                           DONE (freedreno, nv50, i965, softpipe, swr)
  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 (freedreno, i965, nv50, softpipe, swr)
  GL_ARB_vertex_attrib_binding                          DONE (all drivers)


GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe

  GL_MAX_VERTEX_ATTRIB_STRIDE                           DONE (all drivers)
  GL_ARB_buffer_storage                                 DONE (freedreno, i965, nv50, swr, v3d)
  GL_ARB_clear_texture                                  DONE (i965, nv50, softpipe, swr, virgl)
  GL_ARB_enhanced_layouts                               DONE (i965, nv50, softpipe, virgl)
  - compile-time constant expressions                   DONE
  - explicit byte offsets for blocks                    DONE
  - forced alignment within blocks                      DONE
  - specified vec4-slot component numbers               DONE
  - 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+, virgl)
  GL_ARB_texture_mirror_clamp_to_edge                   DONE (i965, nv50, softpipe, swr, virgl, panfrost)
  GL_ARB_texture_stencil8                               DONE (freedreno, i965/hsw+, nv50, softpipe, swr, virgl, v3d, panfrost)
  GL_ARB_vertex_type_10f_11f_11f_rev                    DONE (i965, nv50, softpipe, swr, virgl, zink, panfrost)

GL 4.5, GLSL 4.50 -- all DONE: nvc0, r600, radeonsi, llvmpipe

  GL_ARB_ES3_1_compatibility                            DONE (i965/hsw+, softpipe, virgl)
  GL_ARB_clip_control                                   DONE (freedreno, i965, nv50, softpipe, swr, virgl)
  GL_ARB_conditional_render_inverted                    DONE (freedreno, i965, nv50, softpipe, swr, virgl)
  GL_ARB_cull_distance                                  DONE (i965, nv50, softpipe, swr, virgl)
  GL_ARB_derivative_control                             DONE (i965, nv50, softpipe, virgl)
  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, virgl)
  GL_ARB_texture_barrier                                DONE (freedreno, i965, nv50, virgl)
  GL_KHR_context_flush_control                          DONE (all - but needs GLX/EGL extension to be useful)
  GL_KHR_robustness                                     DONE (freedreno, i965, virgl)
  GL_EXT_shader_integer_mix                             DONE (all drivers that support GLSL)

GL 4.6, GLSL 4.60 -- all DONE: radeonsi

  GL_ARB_gl_spirv                                       DONE (i965/gen7+)
  GL_ARB_indirect_parameters                            DONE (i965/gen7+, nvc0, llvmpipe, virgl)
  GL_ARB_pipeline_statistics_query                      DONE (i965, nvc0, r600, llvmpipe, softpipe, swr)
  GL_ARB_polygon_offset_clamp                           DONE (freedreno, i965, nv50, nvc0, r600, llvmpipe, swr, virgl)
  GL_ARB_shader_atomic_counter_ops                      DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, llvmpipe, softpipe, virgl, v3d)
  GL_ARB_shader_draw_parameters                         DONE (i965, llvmpipe, nvc0)
  GL_ARB_shader_group_vote                              DONE (i965, nvc0, llvmpipe)
  GL_ARB_spirv_extensions                               DONE (i965/gen7+)
  GL_ARB_texture_filter_anisotropic                     DONE (etnaviv/HALTI0, freedreno, i965, nv50, nvc0, r600, softpipe (*), llvmpipe (*))
  GL_ARB_transform_feedback_overflow_query              DONE (i965/gen6+, nvc0, llvmpipe, softpipe, virgl)
  GL_KHR_no_error                                       DONE (all drivers)

(*) softpipe and llvmpipe advertise 16x anisotropy but simply ignore the setting

These are the extensions cherry-picked to make GLES 3.1
GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl, v3d, llvmpipe

  GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)
  GL_ARB_compute_shader                                 DONE (freedreno/a5xx+, i965/gen7+, softpipe)
  GL_ARB_draw_indirect                                  DONE (freedreno, i965/gen7+, softpipe, swr)
  GL_ARB_explicit_uniform_location                      DONE (all drivers that support GLSL)
  GL_ARB_framebuffer_no_attachments                     DONE (freedreno, i965/gen7+, softpipe)
  GL_ARB_program_interface_query                        DONE (all drivers)
  GL_ARB_shader_atomic_counters                         DONE (freedreno/a5xx+, i965/gen7+, softpipe)
  GL_ARB_shader_image_load_store                        DONE (freedreno/a5xx+, i965/gen7+, softpipe)
  GL_ARB_shader_image_size                              DONE (freedreno/a5xx+, i965/gen7+, softpipe)
  GL_ARB_shader_storage_buffer_object                   DONE (freedreno/a5xx+, i965/gen7+, softpipe)
  GL_ARB_shading_language_packing                       DONE (all drivers)
  GL_ARB_separate_shader_objects                        DONE (all drivers)
  GL_ARB_stencil_texturing                              DONE (freedreno, nv50, softpipe, swr, panfrost)
  GL_ARB_texture_multisample (Multisample textures)     DONE (freedreno/a5xx+, i965/gen7+, nv50, softpipe, panfrost)
  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 (freedreno, i965/gen7+)
  GS5 Packing/bitfield/conversion functions             DONE (freedreno/a5xx+, i965/gen6+)
  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, r600)

GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+, radeonsi, virgl, llvmpipe

  GL_EXT_color_buffer_float                             DONE (all drivers)
  GL_KHR_blend_equation_advanced                        DONE (freedreno/a6xx, i965, nvc0, panfrost)
  GL_KHR_debug                                          DONE (all drivers)
  GL_KHR_robustness                                     DONE (freedreno, i965, nvc0, r600)
  GL_KHR_texture_compression_astc_ldr                   DONE (freedreno, i965/gen9+, r600, v3d, panfrost)
  GL_OES_copy_image                                     DONE (all drivers)
  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                                DONE (freedreno/a6xx, i965/hsw+, nvc0, r600, softpipe, v3d)
  GL_OES_gpu_shader5                                    DONE (freedreno/a6xx, all drivers that support GL_ARB_gpu_shader5)
  GL_OES_primitive_bounding_box                         DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, softpipe, v3d)
  GL_OES_sample_shading                                 DONE (freedreno/a6xx, i965, nvc0, r600)
  GL_OES_sample_variables                               DONE (freedreno/a6xx, i965, nvc0, r600)
  GL_OES_shader_image_atomic                            DONE (all drivers that support GL_ARB_shader_image_load_store)
  GL_OES_shader_io_blocks                               DONE (All drivers that support GLES 3.1)
  GL_OES_shader_multisample_interpolation               DONE (freedreno/a6xx, i965, nvc0, r600)
  GL_OES_tessellation_shader                            DONE (freedreno/a6xx, all drivers that support GL_ARB_tessellation_shader)
  GL_OES_texture_border_clamp                           DONE (all drivers)
  GL_OES_texture_buffer                                 DONE (freedreno, i965, nvc0, r600, softpipe)
  GL_OES_texture_cube_map_array                         DONE (freedreno/a4xx+, i965/hsw+, nvc0, r600, softpipe)
  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)

Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:

  GL_ARB_bindless_texture                               DONE (nvc0, radeonsi)
  GL_ARB_cl_event                                       not started
  GL_ARB_compute_variable_group_size                    DONE (i965/gen7+, nvc0, radeonsi)
  GL_ARB_ES3_2_compatibility                            DONE (i965/gen8+, radeonsi, virgl)
  GL_ARB_fragment_shader_interlock                      DONE (i965)
  GL_ARB_gpu_shader_int64                               DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe)
  GL_ARB_parallel_shader_compile                        DONE (all drivers)
  GL_ARB_post_depth_coverage                            DONE (i965, nvc0, radeonsi, llvmpipe)
  GL_ARB_robustness_isolation                           not started
  GL_ARB_sample_locations                               DONE (nvc0)
  GL_ARB_seamless_cubemap_per_texture                   DONE (etnaviv/SEAMLESS_CUBE_MAP, freedreno, i965, nvc0, r600, radeonsi, softpipe, swr, virgl)
  GL_ARB_shader_ballot                                  DONE (i965/gen8+, nvc0, radeonsi)
  GL_ARB_shader_clock                                   DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, virgl)
  GL_ARB_shader_stencil_export                          DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr, virgl, panfrost)
  GL_ARB_shader_viewport_layer_array                    DONE (i965/gen6+, nvc0, radeonsi)
  GL_ARB_shading_language_include                       DONE
  GL_ARB_sparse_buffer                                  DONE (radeonsi/CIK+)
  GL_ARB_sparse_texture                                 not started
  GL_ARB_sparse_texture2                                not started
  GL_ARB_sparse_texture_clamp                           not started
  GL_ARB_texture_filter_minmax                          not started
  GL_EXT_color_buffer_half_float                        DONE (gallium drivers supporting required formats)
  GL_EXT_memory_object                                  DONE (radeonsi)
  GL_EXT_memory_object_fd                               DONE (radeonsi)
  GL_EXT_memory_object_win32                            not started
  GL_EXT_multisampled_render_to_texture                 DONE (freedreno/a6xx, panfrost)
  GL_EXT_render_snorm                                   DONE (i965, r600, radeonsi)
  GL_EXT_semaphore                                      DONE (radeonsi)
  GL_EXT_semaphore_fd                                   DONE (radeonsi)
  GL_EXT_semaphore_win32                                not started
  GL_EXT_shader_group_vote                              DONE (all drivers that support ARB_shader_group_vote)
  GL_EXT_sRGB_write_control                             DONE (all drivers that support GLES 3.0+)
  GL_EXT_texture_norm16                                 DONE (freedreno, i965, r600, radeonsi, nvc0)
  GL_EXT_texture_sRGB_R8                                DONE (all drivers that support GLES 3.0+)
  GL_KHR_blend_equation_advanced_coherent               DONE (i965/gen9+, panfrost)
  GL_KHR_texture_compression_astc_hdr                   DONE (i965/bxt, panfrost)
  GL_KHR_texture_compression_astc_sliced_3d             DONE (i965/gen9+, r600, radeonsi, panfrost)
  GL_OES_depth_texture_cube_map                         DONE (all drivers that support GLSL 1.30+)
  GL_OES_EGL_image                                      DONE (all drivers)
  GL_OES_EGL_image_external                             DONE (all drivers)
  GL_OES_EGL_image_external_essl3                       DONE (all drivers)
  GL_OES_required_internalformat                        DONE (all drivers)
  GL_OES_surfaceless_context                            DONE (all drivers)
  GL_OES_texture_compression_astc                       DONE (core only)
  GL_OES_texture_float                                  DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost)
  GL_OES_texture_float_linear                           DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost)
  GL_OES_texture_half_float                             DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost)
  GL_OES_texture_half_float_linear                      DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost)
  GL_OES_texture_view                                   DONE (freedreno, i965/gen8+, r600, radeonsi, nv50, nvc0, softpipe, llvmpipe, swr)
  GL_OES_viewport_array                                 DONE (i965, nvc0, r600, radeonsi, softpipe)
  GLX_ARB_context_flush_control                         not started
  GLX_ARB_robustness_application_isolation              not started
  GLX_ARB_robustness_share_group_isolation              not started

GL_EXT_direct_state_access subfeatures (in the spec order):
  GL 1.1: Client commands                               DONE
  GL 1.0-1.3: Matrix and transpose matrix commands      DONE
  GL 1.1-1.2: Texture commands                          DONE
  GL 1.2: 3D texture commands                           DONE
  GL 1.2.1: Multitexture commands                       DONE
  GL 1.2.1-3.0: Indexed texture commands                DONE
  GL 1.2.1-3.0: Indexed generic queries                 DONE
  GL 1.2.1: EnableIndexed.. Get*Indexed                 DONE
  GL_ARB_vertex_program                                 DONE
  GL 1.3: Compressed texture and multitexture commands  DONE
  GL 1.5: Buffer commands                               DONE
  GL 2.0-2.1: Uniform and uniform matrix commands       DONE
  GL_EXT_texture_buffer_object                          DONE
  GL_EXT_texture_integer                                DONE
  GL_EXT_gpu_shader4                                    DONE
  GL_EXT_gpu_program_parameters                         DONE
  GL_NV_gpu_program4                                    n/a
  GL_NV_framebuffer_multisample_coverage                n/a
  GL 3.0: Renderbuffer/framebuffer commands, Gen*Mipmap DONE
  GL 3.0: CopyBuffer command                            DONE
  GL_EXT_geometry_shader4 commands (expose in GL 3.2)   DONE
  GL_NV_explicit_multisample                            n/a
  GL 3.0: Vertex array/attrib/query/map commands        DONE
  Matrix GL tokens                                      DONE

GL_EXT_direct_state_access additions from other extensions (complete list):
  GL_AMD_framebuffer_sample_positions                   n/a
  GL_AMD_gpu_shader_int64                               n/a (not enabled in compat profile)
  GL_ARB_bindless_texture                               DONE
  GL_ARB_buffer_storage                                 DONE
  GL_ARB_clear_buffer_object                            DONE
  GL_ARB_framebuffer_no_attachments                     DONE
  GL_ARB_gpu_shader_fp64                                DONE
  GL_ARB_instanced_arrays                               DONE
  GL_ARB_internalformat_query2                          DONE
  GL_ARB_sparse_texture                                 n/a
  GL_ARB_sparse_buffer                                  DONE
  GL_ARB_texture_buffer_range                           DONE
  GL_ARB_texture_storage                                DONE
  GL_ARB_texture_storage_multisample                    DONE
  GL_ARB_vertex_attrib_64bit                            DONE
  GL_ARB_vertex_attrib_binding                          DONE
  GL_EXT_buffer_storage                                 DONE
  GL_EXT_external_buffer                                n/a
  GL_EXT_separate_shader_objects                        n/a
  GL_EXT_sparse_texture                                 n/a
  GL_EXT_texture_storage                                n/a
  GL_EXT_vertex_attrib_64bit                            DONE
  GL_EXT_EGL_image_storage                              n/a
  GL_NV_bindless_texture                                n/a
  GL_NV_gpu_shader5                                     n/a
  GL_NV_texture_multisample                             n/a
  GL_NV_vertex_buffer_unified_memory                    n/a
  GL_NVX_linked_gpu_multicast                           n/a
  GLX_NV_copy_buffer                                    n/a

The following extensions are not part of any OpenGL or OpenGL ES version, and
we DO NOT WANT implementations of these extensions for Mesa.

  GL_ARB_geometry_shader4                               Superseded by GL 3.2 geometry shaders
  GL_ARB_matrix_palette                                 Superseded by GL_ARB_vertex_program
  GL_ARB_shadow_ambient                                 Superseded by GL_ARB_fragment_program
  GL_ARB_vertex_blend                                   Superseded by GL_ARB_vertex_program

Vulkan 1.0 -- all DONE: anv, radv

Vulkan 1.1 -- all DONE: anv, radv

  VK_KHR_16bit_storage                                  DONE (anv/gen8+, radv)
  VK_KHR_bind_memory2                                   DONE (anv, radv)
  VK_KHR_dedicated_allocation                           DONE (anv, radv)
  VK_KHR_descriptor_update_template                     DONE (anv, radv)
  VK_KHR_device_group                                   not started
  VK_KHR_device_group_creation                          not started
  VK_KHR_external_fence                                 DONE (anv, radv)
  VK_KHR_external_fence_capabilities                    DONE (anv, radv)
  VK_KHR_external_memory                                DONE (anv, radv)
  VK_KHR_external_memory_capabilities                   DONE (anv, radv)
  VK_KHR_external_semaphore                             DONE (anv, radv)
  VK_KHR_external_semaphore_capabilities                DONE (anv, radv)
  VK_KHR_get_memory_requirements2                       DONE (anv, radv)
  VK_KHR_get_physical_device_properties2                DONE (anv, radv)
  VK_KHR_maintenance1                                   DONE (anv, radv)
  VK_KHR_maintenance2                                   DONE (anv, radv)
  VK_KHR_maintenance3                                   DONE (anv, radv)
  VK_KHR_multiview                                      DONE (anv, radv)
  VK_KHR_relaxed_block_layout                           DONE (anv, radv)
  VK_KHR_sampler_ycbcr_conversion                       DONE (anv, radv)
  VK_KHR_shader_draw_parameters                         DONE (anv, radv)
  VK_KHR_storage_buffer_storage_class                   DONE (anv, radv)
  VK_KHR_variable_pointers                              DONE (anv, radv)

Khronos extensions that are not part of any Vulkan version:

  VK_KHR_8bit_storage                                   DONE (anv/gen8+, radv)
  VK_KHR_android_surface                                not started
  VK_KHR_create_renderpass2                             DONE (anv, radv)
  VK_KHR_depth_stencil_resolve                          DONE (anv, radv)
  VK_KHR_display                                        DONE (anv, radv)
  VK_KHR_display_swapchain                              not started
  VK_KHR_draw_indirect_count                            DONE (anv, radv)
  VK_KHR_driver_properties                              DONE (anv, radv)
  VK_KHR_external_fence_fd                              DONE (anv, radv)
  VK_KHR_external_fence_win32                           not started
  VK_KHR_external_memory_fd                             DONE (anv, radv)
  VK_KHR_external_memory_win32                          not started
  VK_KHR_external_semaphore_fd                          DONE (anv, radv)
  VK_KHR_external_semaphore_win32                       not started
  VK_KHR_get_display_properties2                        DONE (anv, radv)
  VK_KHR_get_surface_capabilities2                      DONE (anv, radv)
  VK_KHR_image_format_list                              DONE (anv, radv)
  VK_KHR_imageless_framebuffer                          DONE (anv, radv)
  VK_KHR_incremental_present                            DONE (anv, radv)
  VK_KHR_mir_surface                                    not started
  VK_KHR_pipeline_executable_properties                 DONE (anv, radv)
  VK_KHR_push_descriptor                                DONE (anv, radv)
  VK_KHR_sampler_mirror_clamp_to_edge                   DONE (anv, radv)
  VK_KHR_shader_atomic_int64                            DONE (anv, radv)
  VK_KHR_shader_float16_int8                            DONE (anv/gen8+, radv)
  VK_KHR_shader_float_controls                          DONE (anv/gen8+, radv)
  VK_KHR_shader_subgroup_extended_types                 DONE (radv)
  VK_KHR_shared_presentable_image                       not started
  VK_KHR_surface                                        DONE (anv, radv)
  VK_KHR_surface_protected_capabilities                 DONE (anv, radv)
  VK_KHR_swapchain                                      DONE (anv, radv)
  VK_KHR_swapchain_mutable_format                       DONE (anv, radv)
  VK_KHR_uniform_buffer_standard_layout                 DONE (anv, radv)
  VK_KHR_vulkan_memory_model                            not started
  VK_KHR_wayland_surface                                DONE (anv, radv)
  VK_KHR_win32_keyed_mutex                              not started
  VK_KHR_win32_surface                                  not started
  VK_KHR_xcb_surface                                    DONE (anv, radv)
  VK_KHR_xlib_surface                                   DONE (anv, radv)


A graphical representation of this information can be found at
https://mesamatrix.net/
