# 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

  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 (freedreno/a5xx, freedreno (*), llvmpipe (*), softpipe (*), swr (*))

(*) 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

  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, swr, virgl

  Core/compatibility profiles                           DONE
  Geometry shaders                                      DONE ()
  GL_ARB_vertex_array_bgra (BGRA vertex order)          DONE (freedreno)
  GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (freedreno)
  GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (freedreno)
  GL_ARB_provoking_vertex (Provoking vertex)            DONE (freedreno)
  GL_ARB_seamless_cube_map (Seamless cubemaps)          DONE (freedreno)
  GL_ARB_texture_multisample (Multisample textures)     DONE (freedreno/a5xx)
  GL_ARB_depth_clamp (Frag depth clamp)                 DONE (freedreno)
  GL_ARB_sync (Fence objects)                           DONE (freedreno)
  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)
  GL_ARB_explicit_attrib_location                       DONE (all drivers that support GLSL)
  GL_ARB_occlusion_query2                               DONE (freedreno, swr)
  GL_ARB_sampler_objects                                DONE (all drivers)
  GL_ARB_shader_bit_encoding                            DONE (freedreno, swr)
  GL_ARB_texture_rgb10_a2ui                             DONE (freedreno, swr)
  GL_ARB_texture_swizzle                                DONE (freedreno, swr)
  GL_ARB_timer_query                                    DONE (freedreno, swr)
  GL_ARB_instanced_arrays                               DONE (freedreno, swr)
  GL_ARB_vertex_type_2_10_10_10_rev                     DONE (freedreno, swr)


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

  GL_ARB_draw_buffers_blend                             DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
  GL_ARB_draw_indirect                                  DONE (freedreno, i965/gen7+, llvmpipe, softpipe, swr)
  GL_ARB_gpu_shader5                                    DONE (i965/gen7+)
  - 'precise' qualifier                                 DONE
  - Dynamically uniform sampler array indices           DONE (softpipe)
  - Dynamically uniform UBO array indices               DONE (freedreno)
  - Implicit signed -> unsigned conversions             DONE
  - Fused multiply-add                                  DONE ()
  - Packing/bitfield/conversion functions               DONE (freedreno, softpipe)
  - Enhanced textureGather                              DONE (freedreno, 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/gen7+, llvmpipe, softpipe)
  GL_ARB_sample_shading                                 DONE (i965/gen6+, nv50)
  GL_ARB_shader_subroutine                              DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
  GL_ARB_tessellation_shader                            DONE (i965/gen7+)
  GL_ARB_texture_buffer_object_rgb32                    DONE (freedreno, i965/gen6+, llvmpipe, softpipe, swr)
  GL_ARB_texture_cube_map_array                         DONE (i965/gen6+, nv50, llvmpipe, softpipe)
  GL_ARB_texture_gather                                 DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
  GL_ARB_texture_query_lod                              DONE (freedreno, i965, nv50, llvmpipe, softpipe)
  GL_ARB_transform_feedback2                            DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
  GL_ARB_transform_feedback3                            DONE (i965/gen7+, llvmpipe, softpipe, swr)


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

  GL_ARB_ES2_compatibility                              DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
  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+, llvmpipe, softpipe)
  GL_ARB_viewport_array                                 DONE (i965, nv50, llvmpipe, softpipe)


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

  GL_ARB_texture_compression_bptc                       DONE (freedreno, i965)
  GL_ARB_compressed_texture_pixel_storage               DONE (all drivers)
  GL_ARB_shader_atomic_counters                         DONE (freedreno/a5xx, i965, softpipe)
  GL_ARB_texture_storage                                DONE (all drivers)
  GL_ARB_transform_feedback_instanced                   DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
  GL_ARB_base_instance                                  DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
  GL_ARB_shader_image_load_store                        DONE (freedreno/a5xx, i965, 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 (freedreno, i965, nv50, llvmpipe, softpipe, swr)
  GL_ARB_map_buffer_alignment                           DONE (all drivers)


GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, 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)
  GL_ARB_copy_image                                     DONE (i965, nv50, softpipe, llvmpipe)
  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, llvmpipe, softpipe)
  GL_ARB_framebuffer_no_attachments                     DONE (freedreno, i965, softpipe)
  GL_ARB_internalformat_query2                          DONE (all drivers)
  GL_ARB_invalidate_subdata                             DONE (all drivers)
  GL_ARB_multi_draw_indirect                            DONE (freedreno, i965, llvmpipe, softpipe, swr)
  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)
  GL_ARB_shader_storage_buffer_object                   DONE (freedreno/a5xx, i965, softpipe)
  GL_ARB_stencil_texturing                              DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr)
  GL_ARB_texture_buffer_range                           DONE (freedreno, nv50, i965, 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 (freedreno, i965, nv50, llvmpipe, softpipe, swr)
  GL_ARB_vertex_attrib_binding                          DONE (all drivers)


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

  GL_MAX_VERTEX_ATTRIB_STRIDE                           DONE (all drivers)
  GL_ARB_buffer_storage                                 DONE (freedreno, i965, nv50, llvmpipe, swr)
  GL_ARB_clear_texture                                  DONE (i965, nv50, llvmpipe, softpipe, swr)
  GL_ARB_enhanced_layouts                               DONE (i965, nv50, llvmpipe, softpipe)
  - 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+)
  GL_ARB_texture_mirror_clamp_to_edge                   DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)
  GL_ARB_texture_stencil8                               DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr, virgl)
  GL_ARB_vertex_type_10f_11f_11f_rev                    DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)

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

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

GL 4.6, GLSL 4.60

  GL_ARB_gl_spirv                                       in progress (Nicolai Hähnle, Ian Romanick)
  GL_ARB_indirect_parameters                            DONE (i965/gen7+, nvc0, radeonsi)
  GL_ARB_pipeline_statistics_query                      DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
  GL_ARB_polygon_offset_clamp                           DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, swr, virgl)
  GL_ARB_shader_atomic_counter_ops                      DONE (freedreno/a5xx, i965/gen7+, nvc0, r600, radeonsi, softpipe, virgl)
  GL_ARB_shader_draw_parameters                         DONE (i965, nvc0, radeonsi)
  GL_ARB_shader_group_vote                              DONE (i965, nvc0, radeonsi)
  GL_ARB_spirv_extensions                               in progress (Nicolai Hähnle, Ian Romanick)
  GL_ARB_texture_filter_anisotropic                     DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, softpipe (*), llvmpipe (*))
  GL_ARB_transform_feedback_overflow_query              DONE (i965/gen6+, nvc0, radeonsi, 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

  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+, llvmpipe, 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, llvmpipe, softpipe, swr)
  GL_ARB_texture_multisample (Multisample textures)     DONE (freedreno/a5xx, i965/gen7+, nv50, 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 (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

  GL_EXT_color_buffer_float                             DONE (all drivers)
  GL_KHR_blend_equation_advanced                        DONE (i965, nvc0)
  GL_KHR_debug                                          DONE (all drivers)
  GL_KHR_robustness                                     DONE (i965, nvc0)
  GL_KHR_texture_compression_astc_ldr                   DONE (freedreno, i965/gen9+)
  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 (i965/hsw+, nvc0)
  GL_OES_gpu_shader5                                    DONE (all drivers that support GL_ARB_gpu_shader5)
  GL_OES_primitive_bounding_box                         DONE (i965/gen7+, nvc0)
  GL_OES_sample_shading                                 DONE (i965, nvc0, r600)
  GL_OES_sample_variables                               DONE (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 (i965, nvc0, r600)
  GL_OES_tessellation_shader                            DONE (all drivers that support GL_ARB_tessellation_shader)
  GL_OES_texture_border_clamp                           DONE (all drivers)
  GL_OES_texture_buffer                                 DONE (freedreno, i965, nvc0)
  GL_OES_texture_cube_map_array                         DONE (i965/hsw+, nvc0)
  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 (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                        not started, but Chia-I Wu did some related work in 2014
  GL_ARB_post_depth_coverage                            DONE (i965, nvc0)
  GL_ARB_robustness_isolation                           not started
  GL_ARB_sample_locations                               DONE (nvc0)
  GL_ARB_seamless_cubemap_per_texture                   DONE (freedreno, i965, nvc0, radeonsi, r600, softpipe, swr, virgl)
  GL_ARB_shader_ballot                                  DONE (i965/gen8+, nvc0, radeonsi)
  GL_ARB_shader_clock                                   DONE (i965/gen7+, nv50, nvc0, r600, radeonsi)
  GL_ARB_shader_stencil_export                          DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr, virgl)
  GL_ARB_shader_viewport_layer_array                    DONE (i965/gen6+, nvc0, radeonsi)
  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_memory_object                                  DONE (radeonsi)
  GL_EXT_memory_object_fd                               DONE (radeonsi)
  GL_EXT_memory_object_win32                            not started
  GL_EXT_semaphore                                      DONE (radeonsi)
  GL_EXT_semaphore_fd                                   DONE (radeonsi)
  GL_EXT_semaphore_win32                                not started
  GL_EXT_texture_norm16                                 DONE (i965, r600, radeonsi, nvc0)
  GL_KHR_blend_equation_advanced_coherent               DONE (i965/gen9+)
  GL_KHR_texture_compression_astc_hdr                   DONE (i965/bxt)
  GL_KHR_texture_compression_astc_sliced_3d             DONE (i965/gen9+)
  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)
  GL_OES_texture_float_linear                           DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
  GL_OES_texture_half_float                             DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
  GL_OES_texture_half_float_linear                      DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
  GL_OES_texture_view                                   DONE (i965/gen8+)
  GL_OES_viewport_array                                 DONE (i965, nvc0, radeonsi)
  GLX_ARB_context_flush_control                         not started
  GLX_ARB_robustness_application_isolation              not started
  GLX_ARB_robustness_share_group_isolation              not started

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_shading_language_include                       Not interesting
  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                                  in progress (Alejandro)
  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)
  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)
  VK_KHR_android_surface                                not started
  VK_KHR_create_renderpass2                             DONE (anv, radv)
  VK_KHR_display                                        DONE (anv, radv)
  VK_KHR_display_swapchain                              DONE (anv, radv)
  VK_KHR_draw_indirect_count                            DONE (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_incremental_present                            DONE (anv, radv)
  VK_KHR_mir_surface                                    not started
  VK_KHR_push_descriptor                                DONE (anv, radv)
  VK_KHR_sampler_mirror_clamp_to_edge                   DONE (anv, radv)
  VK_KHR_shared_presentable_image                       not started
  VK_KHR_surface                                        DONE (anv, radv)
  VK_KHR_swapchain                                      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/
