# 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, zink

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


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

  Core/compatibility profiles                           DONE
  Geometry shaders                                      DONE ()
  GL_ARB_vertex_array_bgra (BGRA vertex order)          DONE (freedreno, panfrost)
  GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (freedreno, v3d, 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, panfrost)
  GL_ARB_texture_multisample (Multisample textures)     DONE (freedreno/a5xx+, v3d, panfrost)
  GL_ARB_depth_clamp (Frag depth clamp)                 DONE (freedreno, panfrost)
  GL_ARB_sync (Fence objects)                           DONE (freedreno, v3d, panfrost)
  GLX_ARB_create_context_profile                        DONE


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

  GL_ARB_blend_func_extended                            DONE (freedreno/a3xx, swr, panfrost)
  GL_ARB_explicit_attrib_location                       DONE (all drivers that support GLSL)
  GL_ARB_occlusion_query2                               DONE (freedreno, swr, v3d, 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, panfrost)
  GL_ARB_texture_swizzle                                DONE (freedreno, swr, v3d, panfrost)
  GL_ARB_timer_query                                    DONE (freedreno, swr)
  GL_ARB_instanced_arrays                               DONE (freedreno, swr, v3d, panfrost)
  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, zink)
  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, zink)
  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, softpipe, llvmpipe

  GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)
  GL_ARB_compute_shader                                 DONE (freedreno/a5xx+, i965/gen7+)
  GL_ARB_draw_indirect                                  DONE (freedreno, i965/gen7+, 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+, swr)
  GL_ARB_shader_image_load_store                        DONE (freedreno/a5xx+, i965/gen7+, swr)
  GL_ARB_shader_image_size                              DONE (freedreno/a5xx+, i965/gen7+, swr)
  GL_ARB_shader_storage_buffer_object                   DONE (freedreno/a5xx+, i965/gen7+)
  GL_ARB_shading_language_packing                       DONE (all drivers)
  GL_ARB_separate_shader_objects                        DONE (all drivers)
  GL_ARB_stencil_texturing                              DONE (freedreno, nv50, swr, panfrost)
  GL_ARB_texture_multisample (Multisample textures)     DONE (freedreno/a5xx+, i965/gen7+, nv50, panfrost, swr)
  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, softpipe, swr)
  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, zink)
  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, softpipe)
  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, nvc0i, softpipe)
  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, softpipe, swr)
  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, swr)
  GL_OES_texture_float_linear                           DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr)
  GL_OES_texture_half_float                             DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr)
  GL_OES_texture_half_float_linear                      DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr)
  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, v3dv

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, v3dv)
  VK_KHR_external_memory_capabilities                   DONE (anv, radv, v3dv)
  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, v3dv)
  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)

Vulkan 1.2 -- all DONE: anv

  VK_KHR_8bit_storage                                   DONE (anv/gen8+, radv)
  VK_KHR_buffer_device_address                          DONE (anv/gen8+, radv)
  VK_KHR_create_renderpass2                             DONE (anv, radv)
  VK_KHR_depth_stencil_resolve                          DONE (anv, radv)
  VK_KHR_draw_indirect_count                            DONE (anv, radv)
  VK_KHR_driver_properties                              DONE (anv, radv)
  VK_KHR_image_format_list                              DONE (anv, radv)
  VK_KHR_imageless_framebuffer                          DONE (anv, radv)
  VK_KHR_sampler_mirror_clamp_to_edge                   DONE (anv, radv)
  VK_KHR_separate_depth_stencil_layouts                 DONE (anv, radv)
  VK_KHR_shader_atomic_int64                            DONE (anv/gen9+, 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 (anv/gen8+, radv)
  VK_KHR_spirv_1_4                                      DONE (anv, radv)
  VK_KHR_timeline_semaphore                             DONE (anv, radv)
  VK_KHR_uniform_buffer_standard_layout                 DONE (anv, radv)
  VK_KHR_vulkan_memory_model                            DONE (anv, radv)
  VK_EXT_descriptor_indexing                            DONE (anv/gen9+, radv)
  VK_EXT_host_query_reset                               DONE (anv, radv)
  VK_EXT_sampler_filter_minmax                          DONE (anv/gen9+, radv)
  VK_EXT_scalar_block_layout                            DONE (anv, radv/gfx7+)
  VK_EXT_separate_stencil_usage                         DONE (anv, radv)
  VK_EXT_shader_viewport_index_layer                    DONE (anv, radv)

Khronos extensions that are not part of any Vulkan version:

  VK_KHR_android_surface                                not started
  VK_KHR_copy_commands2                                 DONE (anv, radv)
  VK_KHR_display                                        DONE (anv, radv)
  VK_KHR_display_swapchain                              not started
  VK_KHR_external_fence_fd                              DONE (anv, radv)
  VK_KHR_external_fence_win32                           not started
  VK_KHR_external_memory_fd                             DONE (anv, radv, v3dv)
  VK_KHR_external_memory_win32                          not started
  VK_KHR_external_semaphore_fd                          DONE (anv, radv)
  VK_KHR_external_semaphore_win32                       not started
  VK_KHR_fragment_shading_rate                          not started
  VK_KHR_get_display_properties2                        DONE (anv, radv)
  VK_KHR_get_surface_capabilities2                      DONE (anv, radv)
  VK_KHR_incremental_present                            DONE (anv, radv)
  VK_KHR_performance_query                              DONE (anv/gen8+)
  VK_KHR_pipeline_executable_properties                 DONE (anv, radv)
  VK_KHR_push_descriptor                                DONE (anv, radv)
  VK_KHR_shader_clock                                   DONE (anv, radv)
  VK_KHR_shader_non_semantic_info                       DONE (anv, radv)
  VK_KHR_shader_terminate_invocation                    DONE (anv, 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_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/
