101e04c3fSmrg# Status of OpenGL extensions in Mesa
201e04c3fSmrg
301e04c3fSmrgHere's how to read this file:
401e04c3fSmrg
501e04c3fSmrgall DONE: <driver>, ...
601e04c3fSmrg    All the extensions are done for the given list of drivers.
701e04c3fSmrg
801e04c3fSmrgDONE
901e04c3fSmrg    The extension is done for Mesa and no implementation is necessary on the
1001e04c3fSmrg    driver-side.
1101e04c3fSmrg
1201e04c3fSmrgDONE ()
1301e04c3fSmrg    The extension is done for Mesa and all the drivers in the "all DONE" list.
1401e04c3fSmrg
1501e04c3fSmrgDONE (<driver>, ...)
1601e04c3fSmrg    The extension is done for Mesa, all the drivers in the "all DONE" list, and
1701e04c3fSmrg    all the drivers in the brackets.
1801e04c3fSmrg
1901e04c3fSmrgin progress
2001e04c3fSmrg    The extension is started but not finished yet.
2101e04c3fSmrg
2201e04c3fSmrgnot started
2301e04c3fSmrg    The extension isn't started yet.
2401e04c3fSmrg
2501e04c3fSmrg# OpenGL Core and Compatibility context support
2601e04c3fSmrg
2701e04c3fSmrgSome drivers do not support the Compatibility profile or the
2801e04c3fSmrgARB_compatibility extensions.  If an application does not request a
2901e04c3fSmrgspecific version without the forward-compatiblity flag, such drivers
3001e04c3fSmrgwill be limited to OpenGL 3.0.  If an application requests OpenGL 3.1,
3101e04c3fSmrgit will get a context that may or may not have the ARB_compatibility
3201e04c3fSmrgextension enabled.  Some of the later GL features are exposed in the 3.0
3301e04c3fSmrgcontext as extensions.
3401e04c3fSmrg
3501e04c3fSmrg
3601e04c3fSmrgFeature                                                 Status
3701e04c3fSmrg------------------------------------------------------- ------------------------
3801e04c3fSmrg
397ec681f3SmrgGL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl, zink, d3d12, panfrost
4001e04c3fSmrg
4101e04c3fSmrg  glBindFragDataLocation, glGetFragDataLocation         DONE
4201e04c3fSmrg  GL_NV_conditional_render (Conditional rendering)      DONE ()
437ec681f3Smrg  GL_ARB_map_buffer_range (Map buffer subranges)        DONE (v3d, vc4, lima)
447ec681f3Smrg  GL_ARB_color_buffer_float (Clamping controls)         DONE (v3d, lima)
457ec681f3Smrg  GL_ARB_texture_float (Float textures, renderbuffers)  DONE (v3d)
467ec681f3Smrg  GL_EXT_packed_float                                   DONE (v3d)
477ec681f3Smrg  GL_EXT_texture_shared_exponent                        DONE (v3d)
487ec681f3Smrg  GL_ARB_depth_buffer_float (Float depth buffers)       DONE (v3d)
497ec681f3Smrg  GL_ARB_framebuffer_object (Framebuffer objects)       DONE (v3d, vc4)
5001e04c3fSmrg  GL_ARB_half_float_pixel                               DONE (all drivers)
517ec681f3Smrg  GL_ARB_half_float_vertex                              DONE (v3d, vc4, lima)
527ec681f3Smrg  GL_EXT_texture_integer                                DONE (v3d)
537ec681f3Smrg  GL_EXT_texture_array                                  DONE (v3d)
547ec681f3Smrg  GL_EXT_draw_buffers2 (Per-buffer blend and masks)     DONE (v3d)
5501e04c3fSmrg  GL_EXT_texture_compression_rgtc                       DONE ()
567ec681f3Smrg  GL_ARB_texture_rg                                     DONE (v3d, lima)
577ec681f3Smrg  GL_EXT_transform_feedback (Transform feedback)        DONE (v3d)
587ec681f3Smrg  GL_ARB_vertex_array_object (Vertex array objects)     DONE (v3d, vc4, lima)
597ec681f3Smrg  GL_EXT_framebuffer_sRGB (sRGB framebuffer format)     DONE (v3d, vc4, lima)
6001e04c3fSmrg  glClearBuffer commands                                DONE
6101e04c3fSmrg  glGetStringi command                                  DONE
6201e04c3fSmrg  glTexParameterI, glGetTexParameterI commands          DONE
6301e04c3fSmrg  glVertexAttribI commands                              DONE
6401e04c3fSmrg  Depth format cube textures                            DONE ()
657ec681f3Smrg  GLX_ARB_create_context (GLX 1.4 is required)          DONE (v3d, vc4)
6653c12917Smaya  Multisample anti-aliasing                             DONE (freedreno/a5xx+, freedreno (*), llvmpipe (*), softpipe (*), swr (*))
677ec681f3Smrg  8 draw buffers                                        DONE (panfrost/t760+)
6801e04c3fSmrg
6901e04c3fSmrg(*) freedreno (a2xx-a4xx), llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support
7001e04c3fSmrg
7101e04c3fSmrg
727ec681f3SmrgGL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl, zink, d3d12, panfrost
7301e04c3fSmrg
747ec681f3Smrg  Forward compatible context support/deprecations       DONE
757ec681f3Smrg  GL_ARB_draw_instanced (Instanced drawing)             DONE (v3d)
767ec681f3Smrg  GL_ARB_copy_buffer (Buffer copying)                   DONE (v3d, vc4, lima)
777ec681f3Smrg  GL_NV_primitive_restart (Primitive restart)           DONE (v3d)
7801e04c3fSmrg  16 vertex texture image units                         DONE ()
797ec681f3Smrg  GL_ARB_texture_buffer_object (Texture buffer objs)    DONE ()
807ec681f3Smrg  GL_ARB_texture_rectangle (Rectangular textures)       DONE (v3d, vc4, lima)
817ec681f3Smrg  GL_ARB_uniform_buffer_object (Uniform buffer objs)    DONE (v3d)
827ec681f3Smrg  GL_EXT_texture_snorm (Signed normalized textures)     DONE (v3d)
8301e04c3fSmrg
8401e04c3fSmrg
857ec681f3SmrgGL 3.2, GLSL 1.50 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl, zink, d3d12
8601e04c3fSmrg
8701e04c3fSmrg  Core/compatibility profiles                           DONE
887ec681f3Smrg  Geometry shaders                                      DONE (freedreno/a6xx)
897ec681f3Smrg  GL_ARB_vertex_array_bgra (BGRA vertex order)          DONE (v3d, panfrost)
907ec681f3Smrg  GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (v3d, panfrost, lima)
917ec681f3Smrg  GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (v3d, vc4, panfrost, lima)
927ec681f3Smrg  GL_ARB_provoking_vertex (Provoking vertex)            DONE (v3d, vc4, panfrost, lima)
937ec681f3Smrg  GL_ARB_seamless_cube_map (Seamless cubemaps)          DONE (panfrost)
947ec681f3Smrg  GL_ARB_texture_multisample (Multisample textures)     DONE (freedreno/a5xx+, v3d, vc4, panfrost)
957ec681f3Smrg  GL_ARB_depth_clamp (Frag depth clamp)                 DONE (panfrost)
967ec681f3Smrg  GL_ARB_sync (Fence objects)                           DONE (v3d, vc4, panfrost, lima)
9701e04c3fSmrg  GLX_ARB_create_context_profile                        DONE
9801e04c3fSmrg
9901e04c3fSmrg
1007ec681f3SmrgGL 3.3, GLSL 3.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12
10101e04c3fSmrg
1027ec681f3Smrg  GL_ARB_blend_func_extended                            DONE (freedreno/a3xx, freedreno/a6xx, swr, panfrost)
10301e04c3fSmrg  GL_ARB_explicit_attrib_location                       DONE (all drivers that support GLSL)
1047ec681f3Smrg  GL_ARB_occlusion_query2                               DONE (swr, v3d, vc4, panfrost, lima)
10501e04c3fSmrg  GL_ARB_sampler_objects                                DONE (all drivers)
1067ec681f3Smrg  GL_ARB_shader_bit_encoding                            DONE (swr, v3d, panfrost)
1077ec681f3Smrg  GL_ARB_texture_rgb10_a2ui                             DONE (swr, panfrost)
1087ec681f3Smrg  GL_ARB_texture_swizzle                                DONE (swr, v3d, vc4, panfrost, lima)
1097ec681f3Smrg  GL_ARB_timer_query                                    DONE (swr)
1107ec681f3Smrg  GL_ARB_instanced_arrays                               DONE (swr, v3d, panfrost)
1117ec681f3Smrg  GL_ARB_vertex_type_2_10_10_10_rev                     DONE (swr, v3d, panfrost)
11201e04c3fSmrg
11301e04c3fSmrg
1147ec681f3SmrgGL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink
11501e04c3fSmrg
1167ec681f3Smrg  GL_ARB_draw_buffers_blend                             DONE (freedreno, i965/gen6+, nv50, softpipe, swr, panfrost, d3d12)
1177ec681f3Smrg  GL_ARB_draw_indirect                                  DONE (freedreno, i965/gen7+, softpipe, swr, v3d)
11801e04c3fSmrg  GL_ARB_gpu_shader5                                    DONE (i965/gen7+)
11953c12917Smaya  - 'precise' qualifier                                 DONE (softpipe)
12001e04c3fSmrg  - Dynamically uniform sampler array indices           DONE (softpipe)
12153c12917Smaya  - Dynamically uniform UBO array indices               DONE (freedreno, softpipe)
1227ec681f3Smrg  - Implicit signed -> unsigned conversions             DONE (softpipe, swr)
1237ec681f3Smrg  - Fused multiply-add                                  DONE (softpipe, swr)
1247ec681f3Smrg  - Packing/bitfield/conversion functions               DONE (freedreno, softpipe, swr, panfrost)
1257ec681f3Smrg  - Enhanced textureGather                              DONE (freedreno, softpipe, swr, panfrost)
1267ec681f3Smrg  - Geometry shader instancing                          DONE (softpipe, swr)
1277ec681f3Smrg  - Geometry shader multiple streams                    DONE (softpipe, swr)
12801e04c3fSmrg  - Enhanced per-sample shading                         DONE ()
12953c12917Smaya  - Interpolation functions                             DONE (softpipe)
13053c12917Smaya  - New overload resolution rules                       DONE (softpipe)
1317ec681f3Smrg  GL_ARB_gpu_shader_fp64                                DONE (i965/gen7+, softpipe, swr)
1327ec681f3Smrg  GL_ARB_sample_shading                                 DONE (freedreno/a6xx, i965/gen6+, nv50, panfrost)
1337ec681f3Smrg  GL_ARB_shader_subroutine                              DONE (freedreno, i965/gen6+, nv50, softpipe, swr, d3d12)
1347ec681f3Smrg  GL_ARB_tessellation_shader                            DONE (freedreno/a6xx, i965/gen7+, swr)
1357ec681f3Smrg  GL_ARB_texture_buffer_object_rgb32                    DONE (freedreno, i965/gen6+, softpipe, swr, d3d12, panfrost)
1367ec681f3Smrg  GL_ARB_texture_cube_map_array                         DONE (freedreno/a4xx+, i965/gen6+, nv50, softpipe, swr)
1377ec681f3Smrg  GL_ARB_texture_gather                                 DONE (freedreno, i965/gen6+, nv50, softpipe, swr, v3d, panfrost)
1387ec681f3Smrg  GL_ARB_texture_query_lod                              DONE (freedreno, i965, nv50, softpipe, swr, v3d, panfrost, d3d12)
1397ec681f3Smrg  GL_ARB_transform_feedback2                            DONE (freedreno/a3xx+, i965/gen6+, nv50, softpipe, swr, v3d, panfrost)
1407ec681f3Smrg  GL_ARB_transform_feedback3                            DONE (freedreno/a3xx+, i965/gen7+, softpipe, swr)
1417ec681f3Smrg
1427ec681f3Smrg
1437ec681f3SmrgGL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink
1447ec681f3Smrg
1457ec681f3Smrg  GL_ARB_ES2_compatibility                              DONE (freedreno, i965, nv50, softpipe, swr, v3d, vc4, panfrost, d3d12, lima)
1467ec681f3Smrg  GL_ARB_get_program_binary                             DONE (freedreno, 0 or 1 binary formats)
14701e04c3fSmrg  GL_ARB_separate_shader_objects                        DONE (all drivers)
14801e04c3fSmrg  GL_ARB_shader_precision                               DONE (i965/gen7+, all drivers that support GLSL 4.10)
1497ec681f3Smrg  GL_ARB_vertex_attrib_64bit                            DONE (i965/gen7+, softpipe, swr)
1507ec681f3Smrg  GL_ARB_viewport_array                                 DONE (i965, nv50, softpipe, swr)
15101e04c3fSmrg
15201e04c3fSmrg
1537ec681f3SmrgGL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink
15401e04c3fSmrg
1557ec681f3Smrg  GL_ARB_texture_compression_bptc                       DONE (freedreno, i965, softpipe, swr, panfrost/if SoC supports)
15601e04c3fSmrg  GL_ARB_compressed_texture_pixel_storage               DONE (all drivers)
1577ec681f3Smrg  GL_ARB_shader_atomic_counters                         DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
15801e04c3fSmrg  GL_ARB_texture_storage                                DONE (all drivers)
1597ec681f3Smrg  GL_ARB_transform_feedback_instanced                   DONE (freedreno, i965, nv50, softpipe, swr, v3d)
1607ec681f3Smrg  GL_ARB_base_instance                                  DONE (freedreno, i965, nv50, softpipe, swr, v3d)
1617ec681f3Smrg  GL_ARB_shader_image_load_store                        DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
16201e04c3fSmrg  GL_ARB_conservative_depth                             DONE (all drivers that support GLSL 1.30)
16301e04c3fSmrg  GL_ARB_shading_language_420pack                       DONE (all drivers that support GLSL 1.30)
16401e04c3fSmrg  GL_ARB_shading_language_packing                       DONE (all drivers)
1657ec681f3Smrg  GL_ARB_internalformat_query                           DONE (freedreno, i965, nv50, softpipe, swr, v3d, vc4, panfrost, d3d12, lima)
16601e04c3fSmrg  GL_ARB_map_buffer_alignment                           DONE (all drivers)
16701e04c3fSmrg
16801e04c3fSmrg
1697ec681f3SmrgGL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe, virgl, zink
17001e04c3fSmrg
17101e04c3fSmrg  GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)
17201e04c3fSmrg  GL_ARB_ES3_compatibility                              DONE (all drivers that support GLSL 3.30)
17301e04c3fSmrg  GL_ARB_clear_buffer_object                            DONE (all drivers)
1747ec681f3Smrg  GL_ARB_compute_shader                                 DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
1757ec681f3Smrg  GL_ARB_copy_image                                     DONE (i965, nv50, softpipe, swr)
17601e04c3fSmrg  GL_KHR_debug                                          DONE (all drivers)
17701e04c3fSmrg  GL_ARB_explicit_uniform_location                      DONE (all drivers that support GLSL)
1787ec681f3Smrg  GL_ARB_fragment_layer_viewport                        DONE (i965, nv50, softpipe, swr)
1797ec681f3Smrg  GL_ARB_framebuffer_no_attachments                     DONE (freedreno, i965, softpipe, v3d)
18001e04c3fSmrg  GL_ARB_internalformat_query2                          DONE (all drivers)
18101e04c3fSmrg  GL_ARB_invalidate_subdata                             DONE (all drivers)
1827ec681f3Smrg  GL_ARB_multi_draw_indirect                            DONE (freedreno, i965, softpipe, swr, v3d)
18301e04c3fSmrg  GL_ARB_program_interface_query                        DONE (all drivers)
1847ec681f3Smrg  GL_ARB_robust_buffer_access_behavior                  DONE (freedreno, i965)
1857ec681f3Smrg  GL_ARB_shader_image_size                              DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
1867ec681f3Smrg  GL_ARB_shader_storage_buffer_object                   DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
1877ec681f3Smrg  GL_ARB_stencil_texturing                              DONE (freedreno, i965/hsw+, nv50, softpipe, swr, v3d, panfrost, d3d12)
1887ec681f3Smrg  GL_ARB_texture_buffer_range                           DONE (freedreno, nv50, i965, softpipe, swr, d3d12)
18901e04c3fSmrg  GL_ARB_texture_query_levels                           DONE (all drivers that support GLSL 1.30)
19001e04c3fSmrg  GL_ARB_texture_storage_multisample                    DONE (all drivers that support GL_ARB_texture_multisample)
1917ec681f3Smrg  GL_ARB_texture_view                                   DONE (freedreno, i965, nv50, softpipe, swr)
19201e04c3fSmrg  GL_ARB_vertex_attrib_binding                          DONE (all drivers)
19301e04c3fSmrg
19401e04c3fSmrg
1957ec681f3SmrgGL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe, zink
19601e04c3fSmrg
19701e04c3fSmrg  GL_MAX_VERTEX_ATTRIB_STRIDE                           DONE (all drivers)
1987ec681f3Smrg  GL_ARB_buffer_storage                                 DONE (freedreno, i965, nv50, swr, v3d, vc4)
1997ec681f3Smrg  GL_ARB_clear_texture                                  DONE (i965, nv50, softpipe, swr, virgl)
2007ec681f3Smrg  GL_ARB_enhanced_layouts                               DONE (i965, nv50, softpipe, virgl)
20101e04c3fSmrg  - compile-time constant expressions                   DONE
20201e04c3fSmrg  - explicit byte offsets for blocks                    DONE
20301e04c3fSmrg  - forced alignment within blocks                      DONE
20401e04c3fSmrg  - specified vec4-slot component numbers               DONE
20501e04c3fSmrg  - specified transform/feedback layout                 DONE
20601e04c3fSmrg  - input/output block locations                        DONE
20701e04c3fSmrg  GL_ARB_multi_bind                                     DONE (all drivers)
20853c12917Smaya  GL_ARB_query_buffer_object                            DONE (i965/hsw+, virgl)
2097ec681f3Smrg  GL_ARB_texture_mirror_clamp_to_edge                   DONE (i965, nv50, softpipe, swr, virgl, v3d, panfrost)
2107ec681f3Smrg  GL_ARB_texture_stencil8                               DONE (freedreno, i965/hsw+, nv50, softpipe, swr, virgl, v3d, panfrost, d3d12)
2117ec681f3Smrg  GL_ARB_vertex_type_10f_11f_11f_rev                    DONE (freedreno, i965, nv50, softpipe, swr, virgl, panfrost, d3d12)
21201e04c3fSmrg
2137ec681f3SmrgGL 4.5, GLSL 4.50 -- all DONE: nvc0, r600, radeonsi, llvmpipe, zink
21401e04c3fSmrg
2157ec681f3Smrg  GL_ARB_ES3_1_compatibility                            DONE (i965/hsw+, softpipe, virgl)
2167ec681f3Smrg  GL_ARB_clip_control                                   DONE (freedreno, i965, nv50, softpipe, swr, virgl, lima)
2177ec681f3Smrg  GL_ARB_conditional_render_inverted                    DONE (freedreno, i965, nv50, softpipe, swr, virgl, panfrost)
2187ec681f3Smrg  GL_ARB_cull_distance                                  DONE (freedreno/a6xx, i965, nv50, softpipe, swr, virgl)
2197ec681f3Smrg  GL_ARB_derivative_control                             DONE (i965, nv50, softpipe, virgl)
22001e04c3fSmrg  GL_ARB_direct_state_access                            DONE (all drivers)
22101e04c3fSmrg  GL_ARB_get_texture_sub_image                          DONE (all drivers)
2227ec681f3Smrg  GL_ARB_shader_texture_image_samples                   DONE (i965, nv50, virgl)
2237ec681f3Smrg  GL_ARB_texture_barrier                                DONE (freedreno, i965, nv50, virgl)
22401e04c3fSmrg  GL_KHR_context_flush_control                          DONE (all - but needs GLX/EGL extension to be useful)
2257ec681f3Smrg  GL_KHR_robustness                                     DONE (freedreno, i965, virgl)
22601e04c3fSmrg  GL_EXT_shader_integer_mix                             DONE (all drivers that support GLSL)
22701e04c3fSmrg
2287ec681f3SmrgGL 4.6, GLSL 4.60 -- all DONE: radeonsi, zink
2297ec681f3Smrg
2307ec681f3Smrg  GL_ARB_gl_spirv                                       DONE (i965/gen7+, llvmpipe)
2317ec681f3Smrg  GL_ARB_indirect_parameters                            DONE (i965/gen7+, nvc0, llvmpipe, virgl)
2327ec681f3Smrg  GL_ARB_pipeline_statistics_query                      DONE (i965, nvc0, r600, llvmpipe, softpipe, swr)
2337ec681f3Smrg  GL_ARB_polygon_offset_clamp                           DONE (freedreno, i965, nv50, nvc0, r600, llvmpipe, swr, virgl)
2347ec681f3Smrg  GL_ARB_shader_atomic_counter_ops                      DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, llvmpipe, softpipe, virgl, v3d)
2357ec681f3Smrg  GL_ARB_shader_draw_parameters                         DONE (i965, llvmpipe, nvc0)
2367ec681f3Smrg  GL_ARB_shader_group_vote                              DONE (i965, nvc0, llvmpipe)
2377ec681f3Smrg  GL_ARB_spirv_extensions                               DONE (i965/gen7+, llvmpipe)
2387ec681f3Smrg  GL_ARB_texture_filter_anisotropic                     DONE (etnaviv/HALTI0, freedreno, i965, nv50, nvc0, r600, softpipe, llvmpipe, d3d12, virgl)
2397ec681f3Smrg  GL_ARB_transform_feedback_overflow_query              DONE (i965/gen6+, nvc0, llvmpipe, softpipe, virgl)
24001e04c3fSmrg  GL_KHR_no_error                                       DONE (all drivers)
24101e04c3fSmrg
24201e04c3fSmrgThese are the extensions cherry-picked to make GLES 3.1
2437ec681f3SmrgGLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl, v3d, softpipe, llvmpipe, zink, panfrost
24401e04c3fSmrg
24501e04c3fSmrg  GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)
2467ec681f3Smrg  GL_ARB_compute_shader                                 DONE (freedreno/a5xx+, i965/gen7+)
2477ec681f3Smrg  GL_ARB_draw_indirect                                  DONE (freedreno, i965/gen7+, swr)
24801e04c3fSmrg  GL_ARB_explicit_uniform_location                      DONE (all drivers that support GLSL)
24901e04c3fSmrg  GL_ARB_framebuffer_no_attachments                     DONE (freedreno, i965/gen7+, softpipe)
25001e04c3fSmrg  GL_ARB_program_interface_query                        DONE (all drivers)
2517ec681f3Smrg  GL_ARB_shader_atomic_counters                         DONE (freedreno/a5xx+, i965/gen7+, swr)
2527ec681f3Smrg  GL_ARB_shader_image_load_store                        DONE (freedreno/a5xx+, i965/gen7+, swr)
2537ec681f3Smrg  GL_ARB_shader_image_size                              DONE (freedreno/a5xx+, i965/gen7+, swr)
2547ec681f3Smrg  GL_ARB_shader_storage_buffer_object                   DONE (freedreno/a5xx+, i965/gen7+)
25501e04c3fSmrg  GL_ARB_shading_language_packing                       DONE (all drivers)
25601e04c3fSmrg  GL_ARB_separate_shader_objects                        DONE (all drivers)
2577ec681f3Smrg  GL_ARB_stencil_texturing                              DONE (freedreno, nv50, swr)
2587ec681f3Smrg  GL_ARB_texture_multisample (Multisample textures)     DONE (freedreno/a5xx+, i965/gen7+, nv50, swr)
25901e04c3fSmrg  GL_ARB_texture_storage_multisample                    DONE (all drivers that support GL_ARB_texture_multisample)
26001e04c3fSmrg  GL_ARB_vertex_attrib_binding                          DONE (all drivers)
26101e04c3fSmrg  GS5 Enhanced textureGather                            DONE (freedreno, i965/gen7+)
26253c12917Smaya  GS5 Packing/bitfield/conversion functions             DONE (freedreno/a5xx+, i965/gen6+)
26301e04c3fSmrg  GL_EXT_shader_integer_mix                             DONE (all drivers that support GLSL)
26401e04c3fSmrg
26501e04c3fSmrg  Additional functionality not covered above:
26601e04c3fSmrg      glMemoryBarrierByRegion                           DONE
26701e04c3fSmrg      glGetTexLevelParameter[fi]v - needs updates       DONE
26801e04c3fSmrg      glGetBooleani_v - restrict to GLES enums
2697ec681f3Smrg      gl_HelperInvocation support                       DONE (i965, r600, panfrost)
27001e04c3fSmrg
2717ec681f3SmrgGLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+, radeonsi, virgl, llvmpipe, zink
27201e04c3fSmrg
27301e04c3fSmrg  GL_EXT_color_buffer_float                             DONE (all drivers)
2747ec681f3Smrg  GL_KHR_blend_equation_advanced                        DONE (freedreno/a6xx, i965, nvc0, panfrost)
27501e04c3fSmrg  GL_KHR_debug                                          DONE (all drivers)
2767ec681f3Smrg  GL_KHR_robustness                                     DONE (freedreno, i965, nvc0, r600)
2777ec681f3Smrg  GL_KHR_texture_compression_astc_ldr                   DONE (freedreno, i965/gen9+, r600, v3d, vc4, panfrost, softpipe, swr, lima)
27801e04c3fSmrg  GL_OES_copy_image                                     DONE (all drivers)
27901e04c3fSmrg  GL_OES_draw_buffers_indexed                           DONE (all drivers that support GL_ARB_draw_buffers_blend)
28001e04c3fSmrg  GL_OES_draw_elements_base_vertex                      DONE (all drivers)
2817ec681f3Smrg  GL_OES_geometry_shader                                DONE (freedreno/a6xx, i965/hsw+, nvc0, r600, softpipe, v3d)
28253c12917Smaya  GL_OES_gpu_shader5                                    DONE (freedreno/a6xx, all drivers that support GL_ARB_gpu_shader5)
2837ec681f3Smrg  GL_OES_primitive_bounding_box                         DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, softpipe, v3d)
2847ec681f3Smrg  GL_OES_sample_shading                                 DONE (freedreno/a6xx, i965, nvc0, r600, panfrost)
2857ec681f3Smrg  GL_OES_sample_variables                               DONE (freedreno/a6xx, i965, nvc0, r600, panfrost/bifrost)
28601e04c3fSmrg  GL_OES_shader_image_atomic                            DONE (all drivers that support GL_ARB_shader_image_load_store)
28701e04c3fSmrg  GL_OES_shader_io_blocks                               DONE (All drivers that support GLES 3.1)
28853c12917Smaya  GL_OES_shader_multisample_interpolation               DONE (freedreno/a6xx, i965, nvc0, r600)
2897ec681f3Smrg  GL_OES_tessellation_shader                            DONE (freedreno/a6xx, all drivers that support GL_ARB_tessellation_shader)
29001e04c3fSmrg  GL_OES_texture_border_clamp                           DONE (all drivers)
2917ec681f3Smrg  GL_OES_texture_buffer                                 DONE (freedreno, i965, nvc0, r600, softpipe, panfrost)
2927ec681f3Smrg  GL_OES_texture_cube_map_array                         DONE (freedreno/a4xx+, i965/hsw+, nvc0, r600, softpipe)
29301e04c3fSmrg  GL_OES_texture_stencil8                               DONE (all drivers that support GL_ARB_texture_stencil8)
29401e04c3fSmrg  GL_OES_texture_storage_multisample_2d_array           DONE (all drivers that support GL_ARB_texture_multisample)
29501e04c3fSmrg
29601e04c3fSmrgKhronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:
29701e04c3fSmrg
2987ec681f3Smrg  GL_ARB_bindless_texture                               DONE (nvc0, radeonsi, zink)
29901e04c3fSmrg  GL_ARB_cl_event                                       not started
3007ec681f3Smrg  GL_ARB_compute_variable_group_size                    DONE (i965/gen7+, nvc0, radeonsi, zink)
3017ec681f3Smrg  GL_ARB_ES3_2_compatibility                            DONE (i965/gen8+, radeonsi, virgl, zink)
3027ec681f3Smrg  GL_ARB_fragment_shader_interlock                      DONE (i965, zink)
3037ec681f3Smrg  GL_ARB_gpu_shader_int64                               DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe, zink)
3047ec681f3Smrg  GL_ARB_parallel_shader_compile                        DONE (freedreno, iris, radeonsi)
3057ec681f3Smrg  GL_ARB_post_depth_coverage                            DONE (i965, nvc0, radeonsi, llvmpipe, zink)
30601e04c3fSmrg  GL_ARB_robustness_isolation                           not started
3077ec681f3Smrg  GL_ARB_sample_locations                               DONE (nvc0, zink)
3087ec681f3Smrg  GL_ARB_seamless_cubemap_per_texture                   DONE (etnaviv/SEAMLESS_CUBE_MAP, freedreno, i965, nvc0, r600, radeonsi, softpipe, swr, virgl)
3097ec681f3Smrg  GL_ARB_shader_ballot                                  DONE (i965/gen8+, nvc0, radeonsi, zink)
3107ec681f3Smrg  GL_ARB_shader_clock                                   DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, virgl, zink)
3117ec681f3Smrg  GL_ARB_shader_stencil_export                          DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr, virgl, panfrost, zink)
3127ec681f3Smrg  GL_ARB_shader_viewport_layer_array                    DONE (i965/gen6+, nvc0, radeonsi, zink)
3137ec681f3Smrg  GL_ARB_shading_language_include                       DONE
3147ec681f3Smrg  GL_ARB_sparse_buffer                                  DONE (radeonsi/CIK+, zink)
31501e04c3fSmrg  GL_ARB_sparse_texture                                 not started
31601e04c3fSmrg  GL_ARB_sparse_texture2                                not started
31701e04c3fSmrg  GL_ARB_sparse_texture_clamp                           not started
3187ec681f3Smrg  GL_ARB_texture_filter_minmax                          DONE (nvc0/gm200+, zink)
3197ec681f3Smrg  GL_EXT_color_buffer_half_float                        DONE (freedreno, i965, iris, llvmpipe, nv50, nvc0, radeonsi, zink)
3207ec681f3Smrg  GL_EXT_depth_bounds_test                              DONE (i965/gen12+, nv50, nvc0, radeonsi, softpipe, swr, zink)
3217ec681f3Smrg  GL_EXT_memory_object                                  DONE (radeonsi, i965/gen7+, llvmpipe)
3227ec681f3Smrg  GL_EXT_memory_object_fd                               DONE (radeonsi, i965/gen7+, llvmpipe)
32301e04c3fSmrg  GL_EXT_memory_object_win32                            not started
3247ec681f3Smrg  GL_EXT_multisampled_render_to_texture                 DONE (freedreno/a6xx, panfrost, zink)
3257ec681f3Smrg  GL_EXT_render_snorm                                   DONE (i965, r600, radeonsi, softpipe, zink)
3267ec681f3Smrg  GL_EXT_semaphore                                      DONE (radeonsi, i965/gen7+)
3277ec681f3Smrg  GL_EXT_semaphore_fd                                   DONE (radeonsi, i965/gen7+)
32801e04c3fSmrg  GL_EXT_semaphore_win32                                not started
3297ec681f3Smrg  GL_EXT_shader_group_vote                              DONE (all drivers that support GL_ARB_shader_group_vote)
33053c12917Smaya  GL_EXT_sRGB_write_control                             DONE (all drivers that support GLES 3.0+)
3317ec681f3Smrg  GL_EXT_texture_norm16                                 DONE (freedreno, i965, r600, radeonsi, nvc0i, softpipe, zink)
33253c12917Smaya  GL_EXT_texture_sRGB_R8                                DONE (all drivers that support GLES 3.0+)
3337ec681f3Smrg  GL_KHR_blend_equation_advanced_coherent               DONE (i965/gen9+, panfrost)
3347ec681f3Smrg  GL_KHR_texture_compression_astc_hdr                   DONE (i965/bxt, panfrost)
3357ec681f3Smrg  GL_KHR_texture_compression_astc_sliced_3d             DONE (i965/gen9+, r600, radeonsi, panfrost, softpipe, swr, zink, lima)
33601e04c3fSmrg  GL_OES_depth_texture_cube_map                         DONE (all drivers that support GLSL 1.30+)
33701e04c3fSmrg  GL_OES_EGL_image                                      DONE (all drivers)
33801e04c3fSmrg  GL_OES_EGL_image_external                             DONE (all drivers)
33901e04c3fSmrg  GL_OES_EGL_image_external_essl3                       DONE (all drivers)
34001e04c3fSmrg  GL_OES_required_internalformat                        DONE (all drivers)
34101e04c3fSmrg  GL_OES_surfaceless_context                            DONE (all drivers)
34201e04c3fSmrg  GL_OES_texture_compression_astc                       DONE (core only)
3437ec681f3Smrg  GL_OES_texture_float                                  DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr, zink)
3447ec681f3Smrg  GL_OES_texture_float_linear                           DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr, zink)
3457ec681f3Smrg  GL_OES_texture_half_float                             DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr, zink, lima)
3467ec681f3Smrg  GL_OES_texture_half_float_linear                      DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr, zink, lima)
3477ec681f3Smrg  GL_OES_texture_view                                   DONE (freedreno, i965/gen8+, r600, radeonsi, nv50, nvc0, softpipe, llvmpipe, swr, zink)
3487ec681f3Smrg  GL_OES_viewport_array                                 DONE (i965, nvc0, r600, radeonsi, softpipe, zink)
34901e04c3fSmrg  GLX_ARB_context_flush_control                         not started
35001e04c3fSmrg  GLX_ARB_robustness_application_isolation              not started
35101e04c3fSmrg  GLX_ARB_robustness_share_group_isolation              not started
35201e04c3fSmrg
35301e04c3fSmrgGL_EXT_direct_state_access subfeatures (in the spec order):
3547ec681f3Smrg  GL 1.1: Client commands                               DONE
3557ec681f3Smrg  GL 1.0-1.3: Matrix and transpose matrix commands      DONE
3567ec681f3Smrg  GL 1.1-1.2: Texture commands                          DONE
3577ec681f3Smrg  GL 1.2: 3D texture commands                           DONE
3587ec681f3Smrg  GL 1.2.1: Multitexture commands                       DONE
3597ec681f3Smrg  GL 1.2.1-3.0: Indexed texture commands                DONE
3607ec681f3Smrg  GL 1.2.1-3.0: Indexed generic queries                 DONE
3617ec681f3Smrg  GL 1.2.1: EnableIndexed.. Get*Indexed                 DONE
3627ec681f3Smrg  GL_ARB_vertex_program                                 DONE
3637ec681f3Smrg  GL 1.3: Compressed texture and multitexture commands  DONE
3647ec681f3Smrg  GL 1.5: Buffer commands                               DONE
3657ec681f3Smrg  GL 2.0-2.1: Uniform and uniform matrix commands       DONE
3667ec681f3Smrg  GL_EXT_texture_buffer_object                          DONE
3677ec681f3Smrg  GL_EXT_texture_integer                                DONE
3687ec681f3Smrg  GL_EXT_gpu_shader4                                    DONE
3697ec681f3Smrg  GL_EXT_gpu_program_parameters                         DONE
37001e04c3fSmrg  GL_NV_gpu_program4                                    n/a
37101e04c3fSmrg  GL_NV_framebuffer_multisample_coverage                n/a
3727ec681f3Smrg  GL 3.0: Renderbuffer/framebuffer commands, Gen*Mipmap DONE
3737ec681f3Smrg  GL 3.0: CopyBuffer command                            DONE
3747ec681f3Smrg  GL_EXT_geometry_shader4 commands (expose in GL 3.2)   DONE
37501e04c3fSmrg  GL_NV_explicit_multisample                            n/a
3767ec681f3Smrg  GL 3.0: Vertex array/attrib/query/map commands        DONE
3777ec681f3Smrg  Matrix GL tokens                                      DONE
37801e04c3fSmrg
37901e04c3fSmrgGL_EXT_direct_state_access additions from other extensions (complete list):
38001e04c3fSmrg  GL_AMD_framebuffer_sample_positions                   n/a
3817ec681f3Smrg  GL_AMD_gpu_shader_int64                               n/a (not enabled in compat profile)
3827ec681f3Smrg  GL_ARB_bindless_texture                               DONE
3837ec681f3Smrg  GL_ARB_buffer_storage                                 DONE
3847ec681f3Smrg  GL_ARB_clear_buffer_object                            DONE
3857ec681f3Smrg  GL_ARB_framebuffer_no_attachments                     DONE
3867ec681f3Smrg  GL_ARB_gpu_shader_fp64                                DONE
3877ec681f3Smrg  GL_ARB_instanced_arrays                               DONE
3887ec681f3Smrg  GL_ARB_internalformat_query2                          DONE
38901e04c3fSmrg  GL_ARB_sparse_texture                                 n/a
3907ec681f3Smrg  GL_ARB_sparse_buffer                                  DONE
3917ec681f3Smrg  GL_ARB_texture_buffer_range                           DONE
3927ec681f3Smrg  GL_ARB_texture_storage                                DONE
3937ec681f3Smrg  GL_ARB_texture_storage_multisample                    DONE
3947ec681f3Smrg  GL_ARB_vertex_attrib_64bit                            DONE
3957ec681f3Smrg  GL_ARB_vertex_attrib_binding                          DONE
3967ec681f3Smrg  GL_EXT_buffer_storage                                 DONE
3977ec681f3Smrg  GL_EXT_external_buffer                                n/a
39801e04c3fSmrg  GL_EXT_separate_shader_objects                        n/a
39901e04c3fSmrg  GL_EXT_sparse_texture                                 n/a
40001e04c3fSmrg  GL_EXT_texture_storage                                n/a
4017ec681f3Smrg  GL_EXT_vertex_attrib_64bit                            DONE
40201e04c3fSmrg  GL_EXT_EGL_image_storage                              n/a
40301e04c3fSmrg  GL_NV_bindless_texture                                n/a
40401e04c3fSmrg  GL_NV_gpu_shader5                                     n/a
40501e04c3fSmrg  GL_NV_texture_multisample                             n/a
40601e04c3fSmrg  GL_NV_vertex_buffer_unified_memory                    n/a
40701e04c3fSmrg  GL_NVX_linked_gpu_multicast                           n/a
40801e04c3fSmrg  GLX_NV_copy_buffer                                    n/a
40901e04c3fSmrg
41001e04c3fSmrgThe following extensions are not part of any OpenGL or OpenGL ES version, and
41101e04c3fSmrgwe DO NOT WANT implementations of these extensions for Mesa.
41201e04c3fSmrg
41301e04c3fSmrg  GL_ARB_geometry_shader4                               Superseded by GL 3.2 geometry shaders
41401e04c3fSmrg  GL_ARB_matrix_palette                                 Superseded by GL_ARB_vertex_program
41501e04c3fSmrg  GL_ARB_shadow_ambient                                 Superseded by GL_ARB_fragment_program
41601e04c3fSmrg  GL_ARB_vertex_blend                                   Superseded by GL_ARB_vertex_program
41701e04c3fSmrg
4187ec681f3SmrgVulkan 1.0 -- all DONE: anv, lvp, radv, tu, v3dv, vn
4197ec681f3Smrg
4207ec681f3SmrgVulkan 1.1 -- all DONE: anv, lvp, radv, tu, vn
4217ec681f3Smrg
4227ec681f3Smrg  VK_KHR_16bit_storage                                  DONE (anv/gen8+, lvp, radv, tu/a650, vn)
4237ec681f3Smrg  VK_KHR_bind_memory2                                   DONE (anv, lvp, radv, tu, v3dv, vn)
4247ec681f3Smrg  VK_KHR_dedicated_allocation                           DONE (anv, lvp, radv, tu, v3dv, vn)
4257ec681f3Smrg  VK_KHR_descriptor_update_template                     DONE (anv, lvp, radv, tu, v3dv, vn)
4267ec681f3Smrg  VK_KHR_device_group                                   DONE (lvp, tu, v3dv, vn)
4277ec681f3Smrg  VK_KHR_device_group_creation                          DONE (lvp, tu, v3dv, vn)
4287ec681f3Smrg  VK_KHR_external_fence                                 DONE (anv, lvp, radv, tu, v3dv, vn)
4297ec681f3Smrg  VK_KHR_external_fence_capabilities                    DONE (anv, lvp, radv, tu, v3dv, vn)
4307ec681f3Smrg  VK_KHR_external_memory                                DONE (anv, lvp, radv, tu, v3dv, vn)
4317ec681f3Smrg  VK_KHR_external_memory_capabilities                   DONE (anv, lvp, radv, tu, v3dv, vn)
4327ec681f3Smrg  VK_KHR_external_semaphore                             DONE (anv, lvp, radv, tu, v3dv, vn)
4337ec681f3Smrg  VK_KHR_external_semaphore_capabilities                DONE (anv, lvp, radv, tu, v3dv, vn)
4347ec681f3Smrg  VK_KHR_get_memory_requirements2                       DONE (anv, lvp, radv, tu, v3dv, vn)
4357ec681f3Smrg  VK_KHR_get_physical_device_properties2                DONE (anv, lvp, radv, tu, v3dv, vn)
4367ec681f3Smrg  VK_KHR_maintenance1                                   DONE (anv, lvp, radv, tu, v3dv, vn)
4377ec681f3Smrg  VK_KHR_maintenance2                                   DONE (anv, lvp, radv, tu, v3dv, vn)
4387ec681f3Smrg  VK_KHR_maintenance3                                   DONE (anv, lvp, radv, tu, v3dv, vn)
4397ec681f3Smrg  VK_KHR_multiview                                      DONE (anv, lvp, radv, tu, v3dv, vn)
4407ec681f3Smrg  VK_KHR_relaxed_block_layout                           DONE (anv, lvp, radv, tu, v3dv, vn)
4417ec681f3Smrg  VK_KHR_sampler_ycbcr_conversion                       DONE (anv, radv, tu, vn)
4427ec681f3Smrg  VK_KHR_shader_draw_parameters                         DONE (anv, lvp, radv, tu, vn)
4437ec681f3Smrg  VK_KHR_storage_buffer_storage_class                   DONE (anv, lvp, radv, tu, v3dv, vn)
4447ec681f3Smrg  VK_KHR_variable_pointers                              DONE (anv, lvp, radv, tu, v3dv, vn)
4457ec681f3Smrg
4467ec681f3SmrgVulkan 1.2 -- all DONE: anv, vn
4477ec681f3Smrg
4487ec681f3Smrg  VK_KHR_8bit_storage                                   DONE (anv/gen8+, lvp, radv, vn)
4497ec681f3Smrg  VK_KHR_buffer_device_address                          DONE (anv/gen8+, lvp, radv, vn)
4507ec681f3Smrg  VK_KHR_create_renderpass2                             DONE (anv, lvp, radv, tu, vn)
4517ec681f3Smrg  VK_KHR_depth_stencil_resolve                          DONE (anv, lvp, radv, tu, vn)
4527ec681f3Smrg  VK_KHR_draw_indirect_count                            DONE (anv, lvp, radv, tu, vn)
4537ec681f3Smrg  VK_KHR_driver_properties                              DONE (anv, lvp, radv, vn)
4547ec681f3Smrg  VK_KHR_image_format_list                              DONE (anv, lvp, radv, tu, v3dv, vn)
4557ec681f3Smrg  VK_KHR_imageless_framebuffer                          DONE (anv, lvp, radv, tu, vn)
4567ec681f3Smrg  VK_KHR_sampler_mirror_clamp_to_edge                   DONE (anv, lvp, radv, tu, v3dv, vn)
4577ec681f3Smrg  VK_KHR_separate_depth_stencil_layouts                 DONE (anv, lvp, radv, vn)
4587ec681f3Smrg  VK_KHR_shader_atomic_int64                            DONE (anv/gen9+, lvp, radv, vn)
4597ec681f3Smrg  VK_KHR_shader_float16_int8                            DONE (anv/gen8+, lvp, radv, tu, vn)
4607ec681f3Smrg  VK_KHR_shader_float_controls                          DONE (anv/gen8+, lvp, radv, tu, vn)
4617ec681f3Smrg  VK_KHR_shader_subgroup_extended_types                 DONE (anv/gen8+, lvp, radv, tu, vn)
4627ec681f3Smrg  VK_KHR_spirv_1_4                                      DONE (anv, lvp, radv, tu, vn)
4637ec681f3Smrg  VK_KHR_timeline_semaphore                             DONE (anv, lvp, radv, tu, vn)
4647ec681f3Smrg  VK_KHR_uniform_buffer_standard_layout                 DONE (anv, lvp, radv, tu, v3dv, vn)
4657ec681f3Smrg  VK_KHR_vulkan_memory_model                            DONE (anv, radv, tu, vn)
4667ec681f3Smrg  VK_EXT_descriptor_indexing                            DONE (anv/gen9+, radv, tu, vn)
4677ec681f3Smrg  VK_EXT_host_query_reset                               DONE (anv, lvp, radv, tu, vn)
4687ec681f3Smrg  VK_EXT_sampler_filter_minmax                          DONE (anv/gen9+, lvp, radv, tu, vn)
4697ec681f3Smrg  VK_EXT_scalar_block_layout                            DONE (anv, lvp, radv/gfx7+, tu, vn)
4707ec681f3Smrg  VK_EXT_separate_stencil_usage                         DONE (anv, lvp, tu, vn)
4717ec681f3Smrg  VK_EXT_shader_viewport_index_layer                    DONE (anv, lvp, radv, tu, vn)
47201e04c3fSmrg
47301e04c3fSmrgKhronos extensions that are not part of any Vulkan version:
4747ec681f3Smrg
47501e04c3fSmrg  VK_KHR_android_surface                                not started
4767ec681f3Smrg  VK_KHR_copy_commands2                                 DONE (anv, lvp, radv, v3dv)
4777ec681f3Smrg  VK_KHR_deferred_host_operations                       DONE (anv, radv)
4787ec681f3Smrg  VK_KHR_display                                        DONE (anv, lvp, radv, tu, v3dv)
4797ec681f3Smrg  VK_KHR_display_swapchain                              not started
4807ec681f3Smrg  VK_KHR_external_fence_fd                              DONE (anv, radv, tu, v3dv, vn)
48101e04c3fSmrg  VK_KHR_external_fence_win32                           not started
4827ec681f3Smrg  VK_KHR_external_memory_fd                             DONE (anv, lvp, radv, tu, v3dv, vn)
48301e04c3fSmrg  VK_KHR_external_memory_win32                          not started
4847ec681f3Smrg  VK_KHR_external_semaphore_fd                          DONE (anv, radv, tu, v3dv, vn)
48501e04c3fSmrg  VK_KHR_external_semaphore_win32                       not started
4867ec681f3Smrg  VK_KHR_fragment_shading_rate                          not started
4877ec681f3Smrg  VK_KHR_get_display_properties2                        DONE (anv, lvp, radv, tu, v3dv)
4887ec681f3Smrg  VK_KHR_get_surface_capabilities2                      DONE (anv, lvp, radv, tu, v3dv, vn)
4897ec681f3Smrg  VK_KHR_incremental_present                            DONE (anv, lvp, radv, tu, v3dv, vn)
4907ec681f3Smrg  VK_KHR_performance_query                              DONE (anv/gen8+, tu)
4917ec681f3Smrg  VK_KHR_pipeline_executable_properties                 DONE (anv, radv, tu)
4927ec681f3Smrg  VK_KHR_push_descriptor                                DONE (anv, lvp, radv, tu)
4937ec681f3Smrg  VK_KHR_shader_clock                                   DONE (anv, radv)
4947ec681f3Smrg  VK_KHR_shader_integer_dot_product                     DONE (radv)
4957ec681f3Smrg  VK_KHR_shader_non_semantic_info                       DONE (anv, radv)
4967ec681f3Smrg  VK_KHR_shader_subgroup_uniform_control_flow           DONE (anv, radv)
4977ec681f3Smrg  VK_KHR_shader_terminate_invocation                    DONE (anv, radv, tu)
49801e04c3fSmrg  VK_KHR_shared_presentable_image                       not started
4997ec681f3Smrg  VK_KHR_surface                                        DONE (anv, lvp, radv, tu, v3dv, vn)
5007ec681f3Smrg  VK_KHR_surface_protected_capabilities                 DONE (anv, lvp, radv, v3dv, vn)
5017ec681f3Smrg  VK_KHR_swapchain                                      DONE (anv, lvp, radv, tu, v3dv, vn)
5027ec681f3Smrg  VK_KHR_swapchain_mutable_format                       DONE (anv, radv, vn)
5037ec681f3Smrg  VK_KHR_wayland_surface                                DONE (anv, lvp, radv, tu, v3dv, vn)
5047ec681f3Smrg  VK_KHR_workgroup_memory_explicit_layout               DONE (anv, radv)
50501e04c3fSmrg  VK_KHR_win32_keyed_mutex                              not started
5067ec681f3Smrg  VK_KHR_win32_surface                                  DONE (lvp)
5077ec681f3Smrg  VK_KHR_xcb_surface                                    DONE (anv, lvp, radv, tu, v3dv, vn)
5087ec681f3Smrg  VK_KHR_xlib_surface                                   DONE (anv, lvp, radv, tu, v3dv, vn)
5097ec681f3Smrg  VK_KHR_zero_initialize_workgroup_memory               DONE (anv, radv)
5107ec681f3Smrg  VK_EXT_4444_formats                                   DONE (anv, lvp, radv, tu)
5117ec681f3Smrg  VK_EXT_calibrated_timestamps                          DONE (anv, lvp, radv)
5127ec681f3Smrg  VK_EXT_color_write_enable                             DONE (anv, lvp, v3dv)
5137ec681f3Smrg  VK_EXT_conditional_rendering                          DONE (anv, lvp, radv, tu)
5147ec681f3Smrg  VK_EXT_conservative_rasterization                     DONE (anv/gen9+, radv)
5157ec681f3Smrg  VK_EXT_custom_border_color                            DONE (anv, lvp, radv, tu, v3dv)
5167ec681f3Smrg  VK_EXT_debug_marker                                   DONE (radv)
5177ec681f3Smrg  VK_EXT_depth_clip_enable                              DONE (anv, lvp, radv, tu)
5187ec681f3Smrg  VK_EXT_depth_range_unrestricted                       DONE (radv)
5197ec681f3Smrg  VK_EXT_discard_rectangles                             DONE (radv)
5207ec681f3Smrg  VK_EXT_display_control                                DONE (anv, radv, tu)
5217ec681f3Smrg  VK_EXT_extended_dynamic_state                         DONE (anv, lvp, radv, tu)
5227ec681f3Smrg  VK_EXT_extended_dynamic_state2                        DONE (anv, lvp, radv)
5237ec681f3Smrg  VK_EXT_external_memory_dma_buf                        DONE (anv, radv, tu, v3dv, vn)
5247ec681f3Smrg  VK_EXT_external_memory_host                           DONE (anv, lvp, radv)
5257ec681f3Smrg  VK_EXT_filter_cubic                                   DONE (tu/a650)
5267ec681f3Smrg  VK_EXT_fragment_shader_interlock                      DONE (anv/gen9+)
5277ec681f3Smrg  VK_EXT_global_priority                                DONE (anv, radv)
5287ec681f3Smrg  VK_EXT_image_drm_format_modifier                      DONE (anv, radv/gfx9+, tu, vn)
5297ec681f3Smrg  VK_EXT_image_robustness                               DONE (anv, radv)
5307ec681f3Smrg  VK_EXT_index_type_uint8                               DONE (anv, lvp, radv/gfx8+, v3dv, tu)
5317ec681f3Smrg  VK_EXT_inline_uniform_block                           DONE (anv, radv)
5327ec681f3Smrg  VK_EXT_line_rasterization                             DONE (anv, lvp, radv, tu)
5337ec681f3Smrg  VK_EXT_memory_budget                                  DONE (anv, radv, tu)
5347ec681f3Smrg  VK_EXT_memory_priority                                DONE (radv)
5357ec681f3Smrg  VK_EXT_multi_draw                                     DONE (anv, lvp, radv)
5367ec681f3Smrg  VK_EXT_pci_bus_info                                   DONE (anv, radv)
5377ec681f3Smrg  VK_EXT_physical_device_drm                            DONE (anv, radv, v3dv)
5387ec681f3Smrg  VK_EXT_pipeline_creation_cache_control                DONE (anv, radv, v3dv)
5397ec681f3Smrg  VK_EXT_pipeline_creation_feedback                     DONE (anv, radv, v3dv)
5407ec681f3Smrg  VK_EXT_post_depth_coverage                            DONE (anv/gfx10+, lvp, radv)
5417ec681f3Smrg  VK_EXT_private_data                                   DONE (anv, lvp, radv, tu, v3dv)
5427ec681f3Smrg  VK_EXT_provoking_vertex                               DONE (anv, lvp, radv, tu, v3dv)
5437ec681f3Smrg  VK_EXT_queue_family_foreign                           DONE (anv, radv, vn)
5447ec681f3Smrg  VK_EXT_robustness2                                    DONE (anv, radv, tu)
5457ec681f3Smrg  VK_EXT_sample_locations                               DONE (anv, radv/gfx9-, tu/a650)
5467ec681f3Smrg  VK_EXT_shader_atomic_float                            DONE (anv, radv)
5477ec681f3Smrg  VK_EXT_shader_atomic_float2                           DONE (anv/gen9+, radv)
5487ec681f3Smrg  VK_EXT_shader_demote_to_helper_invocation             DONE (anv, radv, tu)
5497ec681f3Smrg  VK_EXT_shader_image_atomic_int64                      DONE (radv)
5507ec681f3Smrg  VK_EXT_shader_stencil_export                          DONE (anv/gen9+, lvp, radv, tu)
5517ec681f3Smrg  VK_EXT_shader_subgroup_ballot                         DONE (anv, radv)
5527ec681f3Smrg  VK_EXT_shader_subgroup_vote                           DONE (anv, radv)
5537ec681f3Smrg  VK_EXT_subgroup_size_control                          DONE (anv, radv)
5547ec681f3Smrg  VK_EXT_texel_buffer_alignment                         DONE (anv, radv)
5557ec681f3Smrg  VK_EXT_transform_feedback                             DONE (anv, lvp, radv, tu, vn)
5567ec681f3Smrg  VK_EXT_vertex_attribute_divisor                       DONE (anv, radv, lvp, tu, v3dv)
5577ec681f3Smrg  VK_EXT_vertex_input_dynamic_state                     DONE (lvp, radv)
5587ec681f3Smrg  VK_EXT_ycbcr_image_arrays                             DONE (anv, radv)
5597ec681f3Smrg  VK_ANDROID_external_memory_android_hardware_buffer    DONE (anv, radv, vn)
5607ec681f3Smrg  VK_ANDROID_native_buffer                              DONE (anv, radv, vn)
5617ec681f3Smrg  VK_GOOGLE_decorate_string                             DONE (anv, lvp, radv)
5627ec681f3Smrg  VK_GOOGLE_hlsl_functionality1                         DONE (anv, lvp, radv)
5637ec681f3Smrg  VK_GOOGLE_user_type                                   DONE (anv, radv)
5647ec681f3Smrg  VK_IMG_filter_cubic                                   DONE (tu/a650)
5657ec681f3Smrg  VK_NV_compute_shader_derivatives                      DONE (anv, radv)
5667ec681f3Smrg  VK_EXT_acquire_drm_display                            DONE (radv, anv)
5677ec681f3Smrg  VK_VALVE_mutable_descriptor_type                      DONE (radv, tu)
5687ec681f3Smrg
5697ec681f3Smrg
5707ec681f3SmrgOpenCL 1.0 -- all DONE:
5717ec681f3Smrg
5727ec681f3Smrg  Image support                                         in progress
5737ec681f3Smrg
5747ec681f3Smrg
5757ec681f3SmrgOpenCL 1.1 -- all DONE:
5767ec681f3Smrg
5777ec681f3Smrg  Additional queries for clGetDeviceInfo                DONE (nvc0, r600, radeonsi)
5787ec681f3Smrg  CL_CONTEXT_NUM_DEVICES for clGetContextInfo           DONE
5797ec681f3Smrg  Optional image formats                                not started
5807ec681f3Smrg  clCreateSubBuffer                                     DONE
5817ec681f3Smrg  Read from, write to, copy rectangular regions         DONE
5827ec681f3Smrg  clSetMemObjectDestructorCallback                      DONE
5837ec681f3Smrg  Control OpenCL C version when building                DONE
5847ec681f3Smrg  Query for preferred work-group size multiple          DONE (nvc0, r600, radeonsi)
5857ec681f3Smrg  Support user events                                   DONE
5867ec681f3Smrg  clSetEventCallback                                    DONE
5877ec681f3Smrg  Minimum requirement changes for clGetDeviceInfo       DONE (nvc0, r600, radeonsi)
5887ec681f3Smrg  Arg prerequisite change for clEnqueueNDRangeKernel    DONE ()
5897ec681f3Smrg  3-component vector data types                         DONE (nvc0, r600, radeonsi)
5907ec681f3Smrg  cl_khr_byte_addressable_store                         DONE (nvc0, r600, radeonsi)
5917ec681f3Smrg  cl_khr_global_int32_base_atomics                      DONE (nvc0, r600, radeonsi)
5927ec681f3Smrg  cl_khr_global_int32_extended_atomics                  DONE (nvc0, r600, radeonsi)
5937ec681f3Smrg  cl_khr_local_int32_base_atomics                       DONE (nvc0, r600, radeonsi)
5947ec681f3Smrg  cl_khr_local_int32_extended_atomics                   DONE (nvc0, r600, radeonsi)
5957ec681f3Smrg
5967ec681f3Smrg
5977ec681f3SmrgOpenCL 1.2 -- all DONE:
5987ec681f3Smrg
5997ec681f3Smrg  Custom devices                                        DONE
6007ec681f3Smrg  Built-in kernels                                      DONE ()
6017ec681f3Smrg  Device partitioning                                   DONE ()
6027ec681f3Smrg  Separate compilation and linking of programs          DONE
6037ec681f3Smrg  Extend cl_mem_flags                                   DONE
6047ec681f3Smrg  clEnqueueFillBuffer, clEnqueueFillImage               DONE
6057ec681f3Smrg  Add CL_MAP_WRITE_INVALIDATE_REGION to cl_map_flags    DONE
6067ec681f3Smrg  New image types                                       not started
6077ec681f3Smrg  clCreateImage                                         DONE
6087ec681f3Smrg  clEnqueueMigrateMemObjects                            DONE
6097ec681f3Smrg  Retrieve kernels information from a program           DONE
6107ec681f3Smrg  clGetKernelArgInfo                                    DONE
6117ec681f3Smrg  clEnqueueMarkerWithWaitList                           DONE
6127ec681f3Smrg  clEnqueueBarrierWithWaitList                          DONE
6137ec681f3Smrg  clUnloadPlatformCompiler                              DONE
6147ec681f3Smrg  cl_khr_fp64                                           DONE (nvc0, r600, radeonsi)
6157ec681f3Smrg  printf                                                DONE (nvc0)
6167ec681f3Smrg  CL_KERNEL_ATTRIBUTES for clGetKernelInfo              DONE
6177ec681f3Smrg
6187ec681f3Smrg
6197ec681f3SmrgOpenCL 2.0 -- all DONE:
6207ec681f3Smrg
6217ec681f3Smrg  Shared virtual memory                                 DONE (nvc0)
6227ec681f3Smrg  Device queues                                         not started
6237ec681f3Smrg  - cl_khr_create_command_queue                         not started
6247ec681f3Smrg  - Additional queries for clGetDeviceInfo              not started
6257ec681f3Smrg  Pipes                                                 not started
6267ec681f3Smrg  Extended 2D images creation                           not started
6277ec681f3Smrg  - cl_khr_image2d_from_buffer                          not started
6287ec681f3Smrg  - cl_khr_depth_images                                 not started
6297ec681f3Smrg  - from sRGB images                                    not started
6307ec681f3Smrg  clCreateSamplerWithProperties                         not started
6317ec681f3Smrg  cl_khr_3d_image_writes                                not started
6327ec681f3Smrg
6337ec681f3Smrg
6347ec681f3SmrgOpenCL 2.1 -- all DONE:
6357ec681f3Smrg
6367ec681f3Smrg  Sub groups                                            not started
6377ec681f3Smrg  - cl_khr_subgroups                                    not started
6387ec681f3Smrg  - Additional queries for clGetDeviceInfo              not started
6397ec681f3Smrg  cl_khr_il_program                                     DONE (nvc0)
6407ec681f3Smrg  Device and host timer synchronization                 not started
6417ec681f3Smrg  clEnqueueSVMMigrateMem                                not started
6427ec681f3Smrg  clCloneKernel                                         not started
6437ec681f3Smrg  Default device command queue                          not started
6447ec681f3Smrg
6457ec681f3Smrg
6467ec681f3SmrgOpenCL 2.2 -- all DONE:
6477ec681f3Smrg
6487ec681f3Smrg  clSetProgramSpecializationConstant                    not started
6497ec681f3Smrg  clSetProgramReleaseCallback                           not started
6507ec681f3Smrg  Initialization and clean-up kernels                   not started
6517ec681f3Smrg  CL_MAX_SIZE_RESTRICTION_EXCEEDED for clSetKernelArg   not started
6527ec681f3Smrg  Support SPIR-V 1.1 and 1.2                            not started
6537ec681f3Smrg
6547ec681f3Smrg
6557ec681f3SmrgOpenCL 3.0 -- all DONE
6567ec681f3Smrg
6577ec681f3Smrg  Optional device capabilities queries                  in progress
6587ec681f3Smrg  cl_khr_extended_versioning                            DONE
6597ec681f3Smrg  clSetContextDestructorCallback                        DONE
6607ec681f3Smrg  clCreateBufferWithProperties                          DONE
6617ec681f3Smrg  clCreateImageWithProperties                           DONE
6627ec681f3Smrg  Query properties arrays                               in progress
6637ec681f3Smrg  Supported OpenCL C versions and features queries      DONE
6647ec681f3Smrg  CL_COMMAND_SVM_MIGRATE_MEM for clGetEventInfo         not started
6657ec681f3Smrg  Latest conformance version passed for devices         not started
6667ec681f3Smrg
6677ec681f3Smrg
6687ec681f3SmrgKhronos, and EXT extensions that are not part of any OpenCL version:
6697ec681f3Smrg
6707ec681f3Smrg  cl_ext_atomic_counters_32                             not started
6717ec681f3Smrg  cl_ext_atomic_counters_64                             not started
6727ec681f3Smrg  cl_ext_device_fission                                 not started
6737ec681f3Smrg  cl_ext_migrate_memobject                              not started
6747ec681f3Smrg  cl_khr_async_work_group_copy_fence                    not started
6757ec681f3Smrg  cl_khr_d3d10_sharing                                  not started
6767ec681f3Smrg  cl_khr_d3d11_sharing                                  not started
6777ec681f3Smrg  cl_khr_device_enqueue_local_arg_types                 not started
6787ec681f3Smrg  cl_khr_dx9_media_sharing                              not started
6797ec681f3Smrg  cl_khr_egl_event                                      not started
6807ec681f3Smrg  cl_khr_egl_image                                      not started
6817ec681f3Smrg  cl_khr_extended_async_copies                          not started
6827ec681f3Smrg  cl_khr_fp16                                           DONE ()
6837ec681f3Smrg  cl_khr_gl_depth_images                                not started
6847ec681f3Smrg  cl_khr_gl_event                                       not started
6857ec681f3Smrg  cl_khr_gl_msaa_sharing                                not started
6867ec681f3Smrg  cl_khr_gl_sharing                                     not started
6877ec681f3Smrg  cl_khr_icd                                            DONE
6887ec681f3Smrg  cl_khr_initialize_memory                              not started
6897ec681f3Smrg  cl_khr_int64_base_atomics                             DONE ()
6907ec681f3Smrg  cl_khr_int64_extended_atomics                         DONE ()
6917ec681f3Smrg  cl_khr_mipmap_image                                   not started
6927ec681f3Smrg  cl_khr_mipmap_image_writes                            not started
6937ec681f3Smrg  cl_khr_priority_hints                                 not started
6947ec681f3Smrg  cl_khr_select_fprounding_mode                         not started
6957ec681f3Smrg  cl_khr_spir                                           not started
6967ec681f3Smrg  cl_khr_srgb_image_writes                              not started
6977ec681f3Smrg  cl_khr_subgroup_named_barrier                         not started
6987ec681f3Smrg  cl_khr_subgroups                                      not started
6997ec681f3Smrg  cl_khr_terminate_context                              not started
7007ec681f3Smrg  cl_khr_throttle_hints                                 not started
7017ec681f3Smrg
7027ec681f3Smrg
7037ec681f3SmrgVendor specific extensions that are not part of any OpenCL version:
7047ec681f3Smrg
7057ec681f3Smrg  cl_arm_shared_virtual_memory                          DONE (nvc0)
7067ec681f3Smrg
7077ec681f3Smrg
7087ec681f3SmrgThe following extensions are not part of any OpenCL version, and we DO NOT WANT
7097ec681f3Smrgimplementations of these extensions for Mesa.
7107ec681f3Smrg
7117ec681f3Smrg  cl_nv_d3d10_sharing                                   Superseded by cl_khr_d3d10_sharing
7127ec681f3Smrg  cl_nv_d3d11_sharing                                   Superseded by cl_khr_d3d10_sharing
71301e04c3fSmrg
71401e04c3fSmrg
71501e04c3fSmrgA graphical representation of this information can be found at
71601e04c3fSmrghttps://mesamatrix.net/
717