util/vbuf: fix multidraw unrolling
[platform/upstream/mesa.git] / docs / features.txt
1 # Status of OpenGL extensions in Mesa
2
3 Here's how to read this file:
4
5 all DONE: <driver>, ...
6     All the extensions are done for the given list of drivers.
7
8 DONE
9     The extension is done for Mesa and no implementation is necessary on the
10     driver-side.
11
12 DONE ()
13     The extension is done for Mesa and all the drivers in the "all DONE" list.
14
15 DONE (<driver>, ...)
16     The extension is done for Mesa, all the drivers in the "all DONE" list, and
17     all the drivers in the brackets.
18
19 in progress
20     The extension is started but not finished yet.
21
22 not started
23     The extension isn't started yet.
24
25 # OpenGL Core and Compatibility context support
26
27 Some drivers do not support the Compatibility profile or the
28 ARB_compatibility extensions.  If an application does not request a
29 specific version without the forward-compatiblity flag, such drivers
30 will be limited to OpenGL 3.0.  If an application requests OpenGL 3.1,
31 it will get a context that may or may not have the ARB_compatibility
32 extension enabled.  Some of the later GL features are exposed in the 3.0
33 context as extensions.
34
35
36 Feature                                                 Status
37 ------------------------------------------------------- ------------------------
38
39 GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12, panfrost
40
41   glBindFragDataLocation, glGetFragDataLocation         DONE
42   GL_NV_conditional_render (Conditional rendering)      DONE ()
43   GL_ARB_map_buffer_range (Map buffer subranges)        DONE (v3d, vc4, lima)
44   GL_ARB_color_buffer_float (Clamping controls)         DONE (v3d, vc4, lima)
45   GL_ARB_texture_float (Float textures, renderbuffers)  DONE (v3d)
46   GL_EXT_packed_float                                   DONE (v3d)
47   GL_EXT_texture_shared_exponent                        DONE (v3d)
48   GL_ARB_depth_buffer_float (Float depth buffers)       DONE (v3d)
49   GL_ARB_framebuffer_object (Framebuffer objects)       DONE (v3d, vc4)
50   GL_ARB_half_float_pixel                               DONE (all drivers)
51   GL_ARB_half_float_vertex                              DONE (v3d, vc4, lima)
52   GL_EXT_texture_integer                                DONE (v3d)
53   GL_EXT_texture_array                                  DONE (v3d)
54   GL_EXT_draw_buffers2 (Per-buffer blend and masks)     DONE (v3d)
55   GL_EXT_texture_compression_rgtc                       DONE (all drivers that support GL_EXT_texture_snorm)
56   GL_ARB_texture_rg                                     DONE (v3d, lima)
57   GL_EXT_transform_feedback (Transform feedback)        DONE (v3d)
58   GL_ARB_vertex_array_object (Vertex array objects)     DONE (v3d, vc4, lima)
59   GL_EXT_framebuffer_sRGB (sRGB framebuffer format)     DONE (v3d, vc4, lima)
60   glClearBuffer commands                                DONE
61   glGetStringi command                                  DONE
62   glTexParameterI, glGetTexParameterI commands          DONE
63   glVertexAttribI commands                              DONE
64   Depth format cube textures                            DONE ()
65   GLX_ARB_create_context (GLX 1.4 is required)          DONE (v3d, vc4)
66   Multisample anti-aliasing                             DONE (freedreno/a5xx+, freedreno (*), llvmpipe (*), softpipe (*)))
67   8 draw buffers                                        DONE (panfrost/t760+)
68
69 (*) freedreno (a2xx-a4xx), llvmpipe, and softpipe have fake Multisample anti-aliasing support
70
71
72 GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12, panfrost
73
74   Forward compatible context support/deprecations       DONE
75   GL_ARB_draw_instanced (Instanced drawing)             DONE (etnaviv/HALTI2, v3d)
76   GL_ARB_copy_buffer (Buffer copying)                   DONE (v3d, vc4, lima)
77   GL_NV_primitive_restart (Primitive restart)           DONE (v3d)
78   16 vertex texture image units                         DONE ()
79   GL_ARB_texture_buffer_object (Texture buffer objs)    DONE (v3d)
80   GL_ARB_texture_rectangle (Rectangular textures)       DONE (v3d, vc4, lima)
81   GL_ARB_uniform_buffer_object (Uniform buffer objs)    DONE (v3d)
82   GL_EXT_texture_snorm (Signed normalized textures)     DONE (v3d)
83
84
85 GL 3.2, GLSL 1.50 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12
86
87   Core/compatibility profiles                           DONE
88   Geometry shaders                                      DONE (freedreno/a6xx)
89   GL_ARB_vertex_array_bgra (BGRA vertex order)          DONE (v3d, panfrost)
90   GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (v3d, vc4, panfrost, lima)
91   GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (v3d, vc4, panfrost, lima)
92   GL_ARB_provoking_vertex (Provoking vertex)            DONE (v3d, vc4, panfrost, lima)
93   GL_ARB_seamless_cube_map (Seamless cubemaps)          DONE (panfrost)
94   GL_ARB_texture_multisample (Multisample textures)     DONE (freedreno/a5xx+, v3d, vc4, panfrost)
95   GL_ARB_depth_clamp (Frag depth clamp)                 DONE (panfrost)
96   GL_ARB_sync (Fence objects)                           DONE (v3d, vc4, panfrost, lima)
97   GLX_ARB_create_context_profile                        DONE
98
99
100 GL 3.3, GLSL 3.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12
101
102   GL_ARB_blend_func_extended                            DONE (freedreno/a3xx, freedreno/a6xx, panfrost, lima)
103   GL_ARB_explicit_attrib_location                       DONE (all drivers that support GLSL)
104   GL_ARB_occlusion_query2                               DONE (v3d, panfrost)
105   GL_ARB_sampler_objects                                DONE (all drivers)
106   GL_ARB_shader_bit_encoding                            DONE (v3d, panfrost)
107   GL_ARB_texture_rgb10_a2ui                             DONE (v3d, panfrost)
108   GL_ARB_texture_swizzle                                DONE (v3d, vc4, panfrost, lima)
109   GL_ARB_timer_query                                    DONE ()
110   GL_ARB_instanced_arrays                               DONE (etnaviv/HALTI2, v3d, panfrost)
111   GL_ARB_vertex_type_2_10_10_10_rev                     DONE (v3d, panfrost)
112
113
114 GL 4.0, GLSL 4.00 --- all DONE: freedreno/a6xx, i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12
115
116   GL_ARB_draw_buffers_blend                             DONE (freedreno, i965/gen6+, nv50, softpipe, panfrost, v3d)
117   GL_ARB_draw_indirect                                  DONE (freedreno, i965/gen7+, softpipe, v3d)
118   GL_ARB_gpu_shader5                                    DONE (freedreno/a6xx, i965/gen7+)
119   - 'precise' qualifier                                 DONE (softpipe)
120   - Dynamically uniform sampler array indices           DONE (softpipe)
121   - Dynamically uniform UBO array indices               DONE (freedreno, softpipe)
122   - Implicit signed -> unsigned conversions             DONE (softpipe, )
123   - Fused multiply-add                                  DONE (softpipe, )
124   - Packing/bitfield/conversion functions               DONE (freedreno, softpipe, panfrost)
125   - Enhanced textureGather                              DONE (freedreno, softpipe, panfrost)
126   - Geometry shader instancing                          DONE (softpipe, )
127   - Geometry shader multiple streams                    DONE (softpipe, )
128   - Enhanced per-sample shading                         DONE ()
129   - Interpolation functions                             DONE (softpipe)
130   - New overload resolution rules                       DONE (softpipe)
131   GL_ARB_gpu_shader_fp64                                DONE (freedreno/a6xx, i965/gen7+, softpipe, )
132   GL_ARB_sample_shading                                 DONE (freedreno/a6xx, i965/gen6+, nv50, panfrost)
133   GL_ARB_shader_subroutine                              DONE (freedreno, i965/gen6+, nv50, softpipe)
134   GL_ARB_tessellation_shader                            DONE (freedreno/a6xx, i965/gen7+, )
135   GL_ARB_texture_buffer_object_rgb32                    DONE (freedreno, i965/gen6+, softpipe, panfrost)
136   GL_ARB_texture_cube_map_array                         DONE (freedreno/a4xx+, i965/gen6+, nv50, softpipe)
137   GL_ARB_texture_gather                                 DONE (freedreno, i965/gen6+, nv50, softpipe, v3d, panfrost)
138   GL_ARB_texture_query_lod                              DONE (freedreno, i965, nv50, softpipe, v3d, panfrost)
139   GL_ARB_transform_feedback2                            DONE (freedreno/a3xx+, i965/gen6+, nv50, softpipe, v3d, panfrost)
140   GL_ARB_transform_feedback3                            DONE (freedreno/a3xx+, i965/gen7+, softpipe, )
141
142
143 GL 4.1, GLSL 4.10 --- all DONE: freedreno/a6xx, i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12
144
145   GL_ARB_ES2_compatibility                              DONE (freedreno, i965, nv50, softpipe, v3d, vc4, panfrost, lima)
146   GL_ARB_get_program_binary                             DONE (freedreno, v3d, 0 or 1 binary formats)
147   GL_ARB_separate_shader_objects                        DONE (all drivers)
148   GL_ARB_shader_precision                               DONE (freedreno/a6xx, i965/gen7+, all drivers that support GLSL 4.10)
149   GL_ARB_vertex_attrib_64bit                            DONE (freedreno/a6xx, i965/gen7+, softpipe, )
150   GL_ARB_viewport_array                                 DONE (freedreno/a6xx, i965, nv50, softpipe, )
151
152
153 GL 4.2, GLSL 4.20 -- all DONE: freedreno/a6xx, i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12
154
155   GL_ARB_texture_compression_bptc                       DONE (all drivers that supports EXT_texture_sRGB and OES_texture_half_float)
156   GL_ARB_compressed_texture_pixel_storage               DONE (all drivers)
157   GL_ARB_shader_atomic_counters                         DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
158   GL_ARB_texture_storage                                DONE (all drivers)
159   GL_ARB_transform_feedback_instanced                   DONE (freedreno, i965, nv50, softpipe, v3d)
160   GL_ARB_base_instance                                  DONE (freedreno, i965, nv50, softpipe, v3d)
161   GL_ARB_shader_image_load_store                        DONE (freedreno/a5xx+, i965, softpipe, panfrost)
162   GL_ARB_conservative_depth                             DONE (all drivers that support GLSL 1.30)
163   GL_ARB_shading_language_420pack                       DONE (all drivers that support GLSL 1.30)
164   GL_ARB_shading_language_packing                       DONE (all drivers)
165   GL_ARB_internalformat_query                           DONE (freedreno, i965, nv50, softpipe, v3d, vc4, panfrost, lima)
166   GL_ARB_map_buffer_alignment                           DONE (all drivers)
167
168
169 GL 4.3, GLSL 4.30 -- all DONE: freedreno/a6xx, i965/gen8+, nvc0, r600, radeonsi, llvmpipe, virgl, zink
170
171   GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)
172   GL_ARB_ES3_compatibility                              DONE (all drivers that support GLSL 3.30)
173   GL_ARB_clear_buffer_object                            DONE (all drivers)
174   GL_ARB_compute_shader                                 DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost, d3d12)
175   GL_ARB_copy_image                                     DONE (freedreno/a6xx, i965, nv50, softpipe, v3d)
176   GL_KHR_debug                                          DONE (all drivers)
177   GL_ARB_explicit_uniform_location                      DONE (all drivers that support GLSL)
178   GL_ARB_fragment_layer_viewport                        DONE (freedreno/a6xx, i965, nv50, softpipe, d3d12)
179   GL_ARB_framebuffer_no_attachments                     DONE (freedreno, i965, softpipe, v3d, d3d12)
180   GL_ARB_internalformat_query2                          DONE (all drivers)
181   GL_ARB_invalidate_subdata                             DONE (all drivers)
182   GL_ARB_multi_draw_indirect                            DONE (freedreno, i965, softpipe, v3d, d3d12)
183   GL_ARB_program_interface_query                        DONE (all drivers)
184   GL_ARB_robust_buffer_access_behavior                  DONE (freedreno, i965, d3d12)
185   GL_ARB_shader_image_size                              DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost, d3d12)
186   GL_ARB_shader_storage_buffer_object                   DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost, d3d12)
187   GL_ARB_stencil_texturing                              DONE (freedreno, i965/hsw+, nv50, softpipe, v3d, panfrost, d3d12)
188   GL_ARB_texture_buffer_range                           DONE (freedreno, nv50, i965, softpipe, v3d, d3d12)
189   GL_ARB_texture_query_levels                           DONE (all drivers that support GLSL 1.30)
190   GL_ARB_texture_storage_multisample                    DONE (all drivers that support GL_ARB_texture_multisample)
191   GL_ARB_texture_view                                   DONE (freedreno, i965, nv50, softpipe, v3d)
192   GL_ARB_vertex_attrib_binding                          DONE (all drivers)
193
194
195 GL 4.4, GLSL 4.40 -- all DONE: freedreno/a6xx, i965/gen8+, nvc0, r600, radeonsi, llvmpipe, zink
196
197   GL_MAX_VERTEX_ATTRIB_STRIDE                           DONE (all drivers)
198   GL_ARB_buffer_storage                                 DONE (freedreno, i965, nv50, v3d, vc4, lima, panfrost, asahi, d3d12, softpipe, etnaviv)
199   GL_ARB_clear_texture                                  DONE (freedreno/a6xx, i965, nv50, softpipe, virgl)
200   GL_ARB_enhanced_layouts                               DONE (freedreno/a3xx+, i965, nv50, softpipe, virgl)
201   - compile-time constant expressions                   DONE
202   - explicit byte offsets for blocks                    DONE
203   - forced alignment within blocks                      DONE
204   - specified vec4-slot component numbers               DONE
205   - specified transform/feedback layout                 DONE
206   - input/output block locations                        DONE
207   GL_ARB_multi_bind                                     DONE (all drivers)
208   GL_ARB_query_buffer_object                            DONE (freedreno/a6xx, i965/hsw+, virgl)
209   GL_ARB_texture_mirror_clamp_to_edge                   DONE (freedreno, i965, nv50, softpipe, virgl, v3d, panfrost)
210   GL_ARB_texture_stencil8                               DONE (freedreno, i965/hsw+, nv50, softpipe, virgl, v3d, panfrost, d3d12)
211   GL_ARB_vertex_type_10f_11f_11f_rev                    DONE (freedreno, i965, nv50, softpipe, virgl, panfrost, d3d12)
212
213 GL 4.5, GLSL 4.50 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, zink
214
215   GL_ARB_ES3_1_compatibility                            DONE (freedreno/a6xx, i965/hsw+, softpipe, virgl)
216   GL_ARB_clip_control                                   DONE (freedreno, i965, nv50, softpipe, virgl, lima, d3d12)
217   GL_ARB_conditional_render_inverted                    DONE (freedreno, i965, nv50, softpipe, virgl, panfrost, d3d12)
218   GL_ARB_cull_distance                                  DONE (freedreno/a6xx, i965, nv50, softpipe, virgl)
219   GL_ARB_derivative_control                             DONE (freedreno/a3xx+, i965, nv50, softpipe, virgl)
220   GL_ARB_direct_state_access                            DONE (all drivers)
221   GL_ARB_get_texture_sub_image                          DONE (all drivers)
222   GL_ARB_shader_texture_image_samples                   DONE (freedreno/a3xx+, i965, nv50, virgl)
223   GL_ARB_texture_barrier                                DONE (freedreno, i965, nv50, vc4, virgl, lima)
224   GL_KHR_context_flush_control                          DONE (all - but needs GLX/EGL extension to be useful)
225   GL_KHR_robustness                                     DONE (freedreno, i965, virgl)
226   GL_EXT_shader_integer_mix                             DONE (all drivers that support GLSL)
227
228 GL 4.6, GLSL 4.60 -- all DONE: radeonsi, zink
229
230   GL_ARB_gl_spirv                                       DONE (freedreno, i965/gen7+, llvmpipe)
231   GL_ARB_indirect_parameters                            DONE (i965/gen7+, nvc0, llvmpipe, virgl, d3d12)
232   GL_ARB_pipeline_statistics_query                      DONE (i965, nvc0, r600, llvmpipe, softpipe, )
233   GL_ARB_polygon_offset_clamp                           DONE (freedreno, i965, nv50, nvc0, r600, llvmpipe, v3d, virgl)
234   GL_ARB_shader_atomic_counter_ops                      DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, llvmpipe, softpipe, virgl, v3d)
235   GL_ARB_shader_draw_parameters                         DONE (i965, llvmpipe, nvc0, d3d12)
236   GL_ARB_shader_group_vote                              DONE (fredreno/a6xx, i965, nvc0, llvmpipe)
237   GL_ARB_spirv_extensions                               DONE (freedreno, i965/gen7+, llvmpipe)
238   GL_ARB_texture_filter_anisotropic                     DONE (etnaviv/HALTI0, freedreno, i965, nv50, nvc0, r600, softpipe, llvmpipe, d3d12, virgl, v3d)
239   GL_ARB_transform_feedback_overflow_query              DONE (i965/gen6+, nvc0, llvmpipe, softpipe, virgl)
240   GL_KHR_no_error                                       DONE (all drivers)
241
242 These are the extensions cherry-picked to make GLES 3.1
243 GLES3.1, GLSL ES 3.1 -- all DONE: freedreno/a5xx+, i965/hsw+, nvc0, r600, radeonsi, virgl, v3d, softpipe, llvmpipe, zink, panfrost, d3d12
244
245   GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)
246   GL_ARB_compute_shader                                 DONE (freedreno/a5xx+, i965/gen7+)
247   GL_ARB_draw_indirect                                  DONE (freedreno, i965/gen7+)
248   GL_ARB_explicit_uniform_location                      DONE (all drivers that support GLSL)
249   GL_ARB_framebuffer_no_attachments                     DONE (freedreno, i965/gen7+, softpipe)
250   GL_ARB_program_interface_query                        DONE (all drivers)
251   GL_ARB_shader_atomic_counters                         DONE (freedreno/a5xx+, i965/gen7+)
252   GL_ARB_shader_image_load_store                        DONE (freedreno/a5xx+, i965/gen7+)
253   GL_ARB_shader_image_size                              DONE (freedreno/a5xx+, i965/gen7+)
254   GL_ARB_shader_storage_buffer_object                   DONE (freedreno/a5xx+, i965/gen7+)
255   GL_ARB_shading_language_packing                       DONE (all drivers)
256   GL_ARB_separate_shader_objects                        DONE (all drivers)
257   GL_ARB_stencil_texturing                              DONE (freedreno, nv50)
258   GL_ARB_texture_multisample (Multisample textures)     DONE (freedreno/a5xx+, i965/gen7+, nv50)
259   GL_ARB_texture_storage_multisample                    DONE (all drivers that support GL_ARB_texture_multisample)
260   GL_ARB_vertex_attrib_binding                          DONE (all drivers)
261   GS5 Enhanced textureGather                            DONE (freedreno, i965/gen7+)
262   GS5 Packing/bitfield/conversion functions             DONE (freedreno/a5xx+, i965/gen6+)
263   GL_EXT_shader_integer_mix                             DONE (all drivers that support GLSL)
264
265   Additional functionality not covered above:
266       glMemoryBarrierByRegion                           DONE
267       glGetTexLevelParameter[fi]v - needs updates       DONE
268       glGetBooleani_v - restrict to GLES enums
269       gl_HelperInvocation support                       DONE (i965, r600, panfrost)
270
271 GLES3.2, GLSL ES 3.2 -- all DONE: freedreno/a6xx, i965/gen9+, radeonsi, virgl, llvmpipe, zink
272
273   GL_EXT_color_buffer_float                             DONE (all drivers)
274   GL_KHR_blend_equation_advanced                        DONE (freedreno/a6xx, i965, nvc0, panfrost)
275   GL_KHR_debug                                          DONE (all drivers)
276   GL_KHR_robustness                                     DONE (freedreno, i965, nvc0, r600)
277   GL_KHR_texture_compression_astc_ldr                   DONE (freedreno, i965/gen9+, r600, v3d, vc4, panfrost, softpipe, lima)
278   GL_OES_copy_image                                     DONE (all drivers)
279   GL_OES_draw_buffers_indexed                           DONE (all drivers that support GL_ARB_draw_buffers_blend)
280   GL_OES_draw_elements_base_vertex                      DONE (all drivers)
281   GL_OES_geometry_shader                                DONE (freedreno/a6xx, i965/hsw+, nvc0, r600, softpipe, v3d)
282   GL_OES_gpu_shader5                                    DONE (freedreno/a6xx, all drivers that support GL_ARB_gpu_shader5)
283   GL_OES_primitive_bounding_box                         DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, softpipe, v3d)
284   GL_OES_sample_shading                                 DONE (freedreno/a6xx, i965, nvc0, r600, panfrost, d3d12)
285   GL_OES_sample_variables                               DONE (freedreno/a6xx, i965, nvc0, r600, panfrost/bifrost)
286   GL_OES_shader_image_atomic                            DONE (v3d, all drivers that support GL_ARB_shader_image_load_store)
287   GL_OES_shader_io_blocks                               DONE (All drivers that support GLES 3.1)
288   GL_OES_shader_multisample_interpolation               DONE (freedreno/a6xx, i965, nvc0, r600)
289   GL_OES_tessellation_shader                            DONE (freedreno/a6xx, all drivers that support GL_ARB_tessellation_shader)
290   GL_OES_texture_border_clamp                           DONE (all drivers)
291   GL_OES_texture_buffer                                 DONE (freedreno, i965, nvc0, r600, softpipe, panfrost)
292   GL_OES_texture_cube_map_array                         DONE (freedreno/a4xx+, i965/hsw+, nvc0, r600, softpipe)
293   GL_OES_texture_stencil8                               DONE (all drivers that support GL_ARB_texture_stencil8)
294   GL_OES_texture_storage_multisample_2d_array           DONE (all drivers that support GL_ARB_texture_multisample)
295
296 Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:
297
298   GL_ARB_bindless_texture                               DONE (nvc0, radeonsi, zink)
299   GL_ARB_cl_event                                       not started
300   GL_ARB_compute_variable_group_size                    DONE (freedreno/a4xx+, i965/gen7+, nvc0, radeonsi, zink)
301   GL_ARB_ES3_2_compatibility                            DONE (freedreno/a6xx, i965/gen8+, radeonsi, virgl, zink)
302   GL_ARB_fragment_shader_interlock                      DONE (i965, zink)
303   GL_ARB_gpu_shader_int64                               DONE (freedreno/a6xx, i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe, zink, d3d12)
304   GL_ARB_parallel_shader_compile                        DONE (freedreno, iris, radeonsi, etnaviv, zink)
305   GL_ARB_post_depth_coverage                            DONE (i965, nvc0, radeonsi, llvmpipe, zink)
306   GL_ARB_robustness_isolation                           not started
307   GL_ARB_sample_locations                               DONE (nvc0, zink)
308   GL_ARB_seamless_cubemap_per_texture                   DONE (etnaviv/SEAMLESS_CUBE_MAP, freedreno, i965, nvc0, r600, radeonsi, softpipe, virgl, zink)
309   GL_ARB_shader_ballot                                  DONE (i965/gen8+, nvc0, radeonsi, zink)
310   GL_ARB_shader_clock                                   DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, llvmpipe, virgl, zink)
311   GL_ARB_shader_stencil_export                          DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, virgl, panfrost, zink)
312   GL_ARB_shader_viewport_layer_array                    DONE (i965/gen6+, nvc0, radeonsi, zink)
313   GL_ARB_shading_language_include                       DONE
314   GL_ARB_sparse_buffer                                  DONE (radeonsi/gfx9+, zink)
315   GL_ARB_sparse_texture                                 DONE (radeonsi/gfx9+, zink)
316   GL_ARB_sparse_texture2                                DONE (radeonsi/gfx9+, zink)
317   GL_ARB_sparse_texture_clamp                           DONE (radeonsi/gfx9+, zink)
318   GL_ARB_texture_filter_minmax                          DONE (nvc0/gm200+, zink)
319   GL_ARM_shader_framebuffer_fetch_depth_stencil         DONE (llvmpipe)
320   GL_EXT_color_buffer_half_float                        DONE (freedreno, i965, iris, llvmpipe, nv50, nvc0, radeonsi, zink)
321   GL_EXT_depth_bounds_test                              DONE (i965/gen12+, nv50, nvc0, radeonsi, softpipe, zink)
322   GL_EXT_memory_object                                  DONE (freedreno, radeonsi, i965/gen7+, llvmpipe, zink, d3d12)
323   GL_EXT_memory_object_fd                               DONE (freedreno, radeonsi, i965/gen7+, llvmpipe, zink)
324   GL_EXT_memory_object_win32                            DONE (zink, d3d12)
325   GL_EXT_multisampled_render_to_texture                 DONE (freedreno/a6xx, panfrost, zink, lima)
326   GL_EXT_render_snorm                                   DONE (freedreno/a6xx, i965, r600, radeonsi, softpipe, zink)
327   GL_EXT_semaphore                                      DONE (radeonsi, i965/gen7+, zink, d3d12)
328   GL_EXT_semaphore_fd                                   DONE (radeonsi, i965/gen7+, zink)
329   GL_EXT_semaphore_win32                                DONE (zink, d3d12)
330   GL_EXT_shader_group_vote                              DONE (all drivers that support GL_ARB_shader_group_vote)
331   GL_EXT_sRGB_write_control                             DONE (all drivers that support GLES 3.0+)
332   GL_EXT_texture_norm16                                 DONE (freedreno, i965, r600, radeonsi, nvc0i, softpipe, zink)
333   GL_EXT_texture_sRGB_R8                                DONE (all drivers that support GLES 3.0+)
334   GL_KHR_blend_equation_advanced_coherent               DONE (i965/gen9+, panfrost, zink)
335   GL_KHR_texture_compression_astc_hdr                   DONE (core only)
336   GL_KHR_texture_compression_astc_sliced_3d             DONE (freedreno/a4xx+, i965/gen9+, r600, radeonsi, panfrost, softpipe, v3d, zink, lima)
337   GL_OES_depth_texture_cube_map                         DONE (all drivers that support GLSL 1.30+)
338   GL_OES_EGL_image                                      DONE (all drivers)
339   GL_OES_EGL_image_external                             DONE (all drivers)
340   GL_OES_EGL_image_external_essl3                       DONE (all drivers)
341   GL_OES_required_internalformat                        DONE (all drivers)
342   GL_OES_surfaceless_context                            DONE (all drivers)
343   GL_OES_texture_compression_astc                       DONE (core only)
344   GL_OES_texture_float                                  DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, v3d, zink)
345   GL_OES_texture_float_linear                           DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, zink)
346   GL_OES_texture_half_float                             DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, v3d, zink, lima)
347   GL_OES_texture_half_float_linear                      DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, v3d, zink, lima)
348   GL_OES_texture_view                                   DONE (freedreno, i965/gen8+, r600, radeonsi, nv50, nvc0, softpipe, llvmpipe, v3d, zink)
349   GL_OES_viewport_array                                 DONE (freedreno/a6xx, i965, nvc0, r600, radeonsi, softpipe, zink)
350   GLX_ARB_context_flush_control                         DONE (all drivers)
351   GLX_ARB_robustness_application_isolation              not started
352   GLX_ARB_robustness_share_group_isolation              not started
353
354 GL_EXT_direct_state_access subfeatures (in the spec order):
355   GL 1.1: Client commands                               DONE
356   GL 1.0-1.3: Matrix and transpose matrix commands      DONE
357   GL 1.1-1.2: Texture commands                          DONE
358   GL 1.2: 3D texture commands                           DONE
359   GL 1.2.1: Multitexture commands                       DONE
360   GL 1.2.1-3.0: Indexed texture commands                DONE
361   GL 1.2.1-3.0: Indexed generic queries                 DONE
362   GL 1.2.1: EnableIndexed.. Get*Indexed                 DONE
363   GL_ARB_vertex_program                                 DONE
364   GL 1.3: Compressed texture and multitexture commands  DONE
365   GL 1.5: Buffer commands                               DONE
366   GL 2.0-2.1: Uniform and uniform matrix commands       DONE
367   GL_EXT_texture_buffer_object                          DONE
368   GL_EXT_texture_integer                                DONE
369   GL_EXT_gpu_shader4                                    DONE
370   GL_EXT_gpu_program_parameters                         DONE
371   GL_NV_gpu_program4                                    n/a
372   GL_NV_framebuffer_multisample_coverage                n/a
373   GL 3.0: Renderbuffer/framebuffer commands, Gen*Mipmap DONE
374   GL 3.0: CopyBuffer command                            DONE
375   GL_EXT_geometry_shader4 commands (expose in GL 3.2)   DONE
376   GL_NV_explicit_multisample                            n/a
377   GL 3.0: Vertex array/attrib/query/map commands        DONE
378   Matrix GL tokens                                      DONE
379
380 GL_EXT_direct_state_access additions from other extensions (complete list):
381   GL_AMD_framebuffer_sample_positions                   n/a
382   GL_AMD_gpu_shader_int64                               n/a (not enabled in compat profile)
383   GL_ARB_bindless_texture                               DONE
384   GL_ARB_buffer_storage                                 DONE
385   GL_ARB_clear_buffer_object                            DONE
386   GL_ARB_framebuffer_no_attachments                     DONE
387   GL_ARB_gpu_shader_fp64                                DONE
388   GL_ARB_instanced_arrays                               DONE
389   GL_ARB_internalformat_query2                          DONE
390   GL_ARB_sparse_texture                                 n/a
391   GL_ARB_sparse_buffer                                  DONE
392   GL_ARB_texture_buffer_range                           DONE
393   GL_ARB_texture_storage                                DONE
394   GL_ARB_texture_storage_multisample                    DONE
395   GL_ARB_vertex_attrib_64bit                            DONE
396   GL_ARB_vertex_attrib_binding                          DONE
397   GL_EXT_buffer_storage                                 DONE
398   GL_EXT_external_buffer                                n/a
399   GL_EXT_separate_shader_objects                        n/a
400   GL_EXT_sparse_texture                                 n/a
401   GL_EXT_texture_storage                                n/a
402   GL_EXT_vertex_attrib_64bit                            DONE
403   GL_EXT_EGL_image_storage                              n/a
404   GL_NV_bindless_texture                                n/a
405   GL_NV_gpu_shader5                                     n/a
406   GL_NV_texture_multisample                             n/a
407   GL_NV_vertex_buffer_unified_memory                    n/a
408   GL_NVX_linked_gpu_multicast                           n/a
409   GLX_NV_copy_buffer                                    n/a
410
411 The following extensions are not part of any OpenGL or OpenGL ES version, and
412 we DO NOT WANT implementations of these extensions for Mesa.
413
414   GL_ARB_geometry_shader4                               Superseded by GL 3.2 geometry shaders
415   GL_ARB_matrix_palette                                 Superseded by GL_ARB_vertex_program
416   GL_ARB_shadow_ambient                                 Superseded by GL_ARB_fragment_program
417   GL_ARB_vertex_blend                                   Superseded by GL_ARB_vertex_program
418
419 Vulkan 1.0 -- all DONE: anv, lvp, radv, tu, v3dv, vn
420
421 Vulkan 1.1 -- all DONE: anv, lvp, radv, tu, vn
422
423   VK_KHR_16bit_storage                                  DONE (anv/gen8+, lvp, radv, tu/a650, v3dv, vn)
424   VK_KHR_bind_memory2                                   DONE (anv, lvp, radv, tu, v3dv, vn)
425   VK_KHR_dedicated_allocation                           DONE (anv, lvp, radv, tu, v3dv, vn)
426   VK_KHR_descriptor_update_template                     DONE (anv, dzn, lvp, radv, tu, v3dv, vn)
427   VK_KHR_device_group                                   DONE (anv, lvp, tu, v3dv, vn)
428   VK_KHR_device_group_creation                          DONE (anv, lvp, tu, v3dv, vn)
429   VK_KHR_external_fence                                 DONE (anv, lvp, radv, tu, v3dv, vn)
430   VK_KHR_external_fence_capabilities                    DONE (anv, lvp, radv, tu, v3dv, vn)
431   VK_KHR_external_memory                                DONE (anv, lvp, pvr, radv, tu, v3dv, vn)
432   VK_KHR_external_memory_capabilities                   DONE (anv, lvp, pvr, radv, tu, v3dv, vn)
433   VK_KHR_external_semaphore                             DONE (anv, lvp, radv, tu, v3dv, vn)
434   VK_KHR_external_semaphore_capabilities                DONE (anv, lvp, radv, tu, v3dv, vn)
435   VK_KHR_get_memory_requirements2                       DONE (anv, lvp, radv, tu, v3dv, vn)
436   VK_KHR_get_physical_device_properties2                DONE (anv, dzn, lvp, panvk, pvr, radv, tu, v3dv, vn)
437   VK_KHR_maintenance1                                   DONE (anv, lvp, radv, tu, v3dv, vn)
438   VK_KHR_maintenance2                                   DONE (anv, lvp, radv, tu, v3dv, vn)
439   VK_KHR_maintenance3                                   DONE (anv, lvp, radv, tu, v3dv, vn)
440   VK_KHR_multiview                                      DONE (anv, lvp, radv, tu, v3dv, vn)
441   VK_KHR_relaxed_block_layout                           DONE (anv, lvp, radv, tu, v3dv, vn)
442   VK_KHR_sampler_ycbcr_conversion                       DONE (anv, radv, tu, vn)
443   VK_KHR_shader_draw_parameters                         DONE (anv, dzn, lvp, radv, tu, vn)
444   VK_KHR_storage_buffer_storage_class                   DONE (anv, lvp, panvk, radv, tu, v3dv, vn)
445   VK_KHR_variable_pointers                              DONE (anv, lvp, panvk, radv, tu, v3dv, vn)
446
447 Vulkan 1.2 -- all DONE: anv, tu, vn
448
449   VK_KHR_8bit_storage                                   DONE (anv/gen8+, lvp, radv, v3dv, vn)
450   VK_KHR_buffer_device_address                          DONE (anv/gen8+, lvp, radv, tu, v3dv, vn)
451   VK_KHR_create_renderpass2                             DONE (anv, dzn, lvp, radv, tu, v3dv, vn)
452   VK_KHR_depth_stencil_resolve                          DONE (anv, dzn, lvp, radv, tu, v3dv, vn)
453   VK_KHR_draw_indirect_count                            DONE (anv, dzn, lvp, radv, tu, vn)
454   VK_KHR_driver_properties                              DONE (anv, dzn, lvp, radv, tu, v3dv, vn)
455   VK_KHR_image_format_list                              DONE (anv, lvp, radv, tu, v3dv, vn)
456   VK_KHR_imageless_framebuffer                          DONE (anv, lvp, radv, tu, v3dv, vn)
457   VK_KHR_sampler_mirror_clamp_to_edge                   DONE (anv, lvp, radv, tu, v3dv, vn)
458   VK_KHR_separate_depth_stencil_layouts                 DONE (anv, lvp, radv, vn, v3dv, tu)
459   VK_KHR_shader_atomic_int64                            DONE (anv/gen9+, lvp, radv, vn)
460   VK_KHR_shader_float16_int8                            DONE (anv/gen8+, lvp, radv, tu, vn)
461   VK_KHR_shader_float_controls                          DONE (anv/gen8+, lvp, radv, tu, v3dv, vn)
462   VK_KHR_shader_subgroup_extended_types                 DONE (anv/gen8+, lvp, radv, tu, vn)
463   VK_KHR_spirv_1_4                                      DONE (anv, lvp, radv, tu, v3dv, vn)
464   VK_KHR_timeline_semaphore                             DONE (anv, lvp, radv, tu, v3dv, vn)
465   VK_KHR_uniform_buffer_standard_layout                 DONE (anv, lvp, radv, tu, v3dv, vn)
466   VK_KHR_vulkan_memory_model                            DONE (anv, lvp, radv, tu, v3dv, vn)
467   VK_EXT_descriptor_indexing                            DONE (anv/gen9+, radv, tu, vn)
468   VK_EXT_host_query_reset                               DONE (anv, lvp, radv, tu, v3dv, vn)
469   VK_EXT_sampler_filter_minmax                          DONE (anv/gen9+, lvp, radv, tu, vn)
470   VK_EXT_scalar_block_layout                            DONE (anv, lvp, radv/gfx7+, tu, vn)
471   VK_EXT_separate_stencil_usage                         DONE (anv, lvp, radv, tu, v3dv, vn)
472   VK_EXT_shader_viewport_index_layer                    DONE (anv, lvp, radv, tu, vn)
473
474 Vulkan 1.3 -- all DONE: anv, radv, tu, lvp, vn
475
476   VK_KHR_copy_commands2                                 DONE (anv, lvp, panvk, radv, tu, v3dv, vn)
477   VK_KHR_dynamic_rendering                              DONE (anv, dzn, lvp, radv, tu, vn)
478   VK_KHR_format_feature_flags2                          DONE (anv, lvp, radv, tu, v3dv, vn)
479   VK_KHR_maintenance4                                   DONE (anv, lvp, radv, tu, v3dv, vn)
480   VK_KHR_shader_integer_dot_product                     DONE (anv, lvp, radv, tu, vn)
481   VK_KHR_shader_non_semantic_info                       DONE (anv, radv, tu, v3dv, vn)
482   VK_KHR_shader_terminate_invocation                    DONE (anv, lvp, radv, tu, vn)
483   VK_KHR_synchronization2                               DONE (anv, lvp, panvk, radv, v3dv, tu, vn)
484   VK_KHR_zero_initialize_workgroup_memory               DONE (anv, lvp, radv, tu, v3dv, vn)
485   VK_EXT_4444_formats                                   DONE (anv, lvp, radv, tu, v3dv, vn)
486   VK_EXT_extended_dynamic_state                         DONE (anv, lvp, radv, tu, vn)
487   VK_EXT_extended_dynamic_state2                        DONE (anv, lvp, radv, tu, vn)
488   VK_EXT_inline_uniform_block                           DONE (anv, lvp, radv, tu, v3dv, vn)
489   VK_EXT_pipeline_creation_cache_control                DONE (anv, lvp, radv, tu, v3dv, vn)
490   VK_EXT_pipeline_creation_feedback                     DONE (anv, lvp, radv, tu, v3dv, vn)
491   VK_EXT_private_data                                   DONE (anv, lvp, pvr, radv, tu, v3dv, vn)
492   VK_EXT_image_robustness                               DONE (anv, lvp, radv, tu, v3dv, vn)
493   VK_EXT_shader_demote_to_helper_invocation             DONE (anv, lvp, radv, tu, vn)
494   VK_EXT_subgroup_size_control                          DONE (anv, lvp, radv, tu, vn)
495   VK_EXT_texel_buffer_alignment                         DONE (anv, lvp, radv, tu, v3dv, vn)
496   VK_EXT_texture_compression_astc_hdr                   DONE (vn)
497   VK_EXT_tooling_info                                   DONE (anv, v3dv, vn, tu)
498   VK_EXT_ycbcr_2plane_444_formats                       DONE (vn)
499
500 Khronos extensions that are not part of any Vulkan version:
501
502   VK_KHR_acceleration_structure                         DONE (radv/gfx10.3+)
503   VK_KHR_android_surface                                not started
504   VK_KHR_deferred_host_operations                       DONE (anv, radv)
505   VK_KHR_display                                        DONE (anv, pvr, radv, tu, v3dv)
506   VK_KHR_display_swapchain                              not started
507   VK_KHR_external_fence_fd                              DONE (anv, radv, tu, v3dv, vn)
508   VK_KHR_external_fence_win32                           not started
509   VK_KHR_external_memory_fd                             DONE (anv, lvp, pvr, radv, tu, v3dv, vn)
510   VK_KHR_external_memory_win32                          not started
511   VK_KHR_external_semaphore_fd                          DONE (anv, radv, tu, v3dv, vn)
512   VK_KHR_external_semaphore_win32                       not started
513   VK_KHR_fragment_shading_rate                          DONE (anv/gen11+, radv/gfx10.3+)
514   VK_KHR_get_display_properties2                        DONE (anv, radv, tu, v3dv)
515   VK_KHR_get_surface_capabilities2                      DONE (anv, lvp, radv, tu, v3dv, vn)
516   VK_KHR_global_priority                                DONE (radv, tu)
517   VK_KHR_incremental_present                            DONE (anv, lvp, radv, tu, v3dv, vn)
518   VK_KHR_performance_query                              DONE (anv/gen8+, radv/gfx10.3+, tu, v3dv)
519   VK_KHR_pipeline_executable_properties                 DONE (anv, radv, tu, v3dv)
520   VK_KHR_pipeline_library                               DONE (lvp, radv)
521   VK_KHR_push_descriptor                                DONE (anv, lvp, radv, tu)
522   VK_KHR_ray_query                                      DONE (radv/gfx10.3+)
523   VK_KHR_ray_tracing_maintenance1                       DONE (radv/gfx10.3+)
524   VK_KHR_ray_tracing_pipeline                           in progress
525   VK_KHR_shader_clock                                   DONE (anv, lvp, radv)
526   VK_KHR_shader_subgroup_uniform_control_flow           DONE (anv, radv)
527   VK_KHR_shared_presentable_image                       not started
528   VK_KHR_surface                                        DONE (anv, dzn, lvp, panvk, pvr, radv, tu, v3dv, vn)
529   VK_KHR_surface_protected_capabilities                 DONE (anv, lvp, radv, v3dv, vn)
530   VK_KHR_swapchain                                      DONE (anv, dzn, lvp, panvk, pvr, radv, tu, v3dv, vn)
531   VK_KHR_swapchain_mutable_format                       DONE (anv, lvp, radv, tu, v3dv, vn)
532   VK_KHR_wayland_surface                                DONE (anv, dzn, lvp, panvk, radv, tu, v3dv, vn)
533   VK_KHR_workgroup_memory_explicit_layout               DONE (anv, radv, v3dv)
534   VK_KHR_win32_keyed_mutex                              not started
535   VK_KHR_win32_surface                                  DONE (dzn, lvp)
536   VK_KHR_xcb_surface                                    DONE (anv, dzn, lvp, radv, tu, v3dv, vn)
537   VK_KHR_xlib_surface                                   DONE (anv, dzn, lvp, radv, tu, v3dv, vn)
538   VK_EXT_attachment_feedback_loop_layout                DONE (lvp, radv, tu, v3dv)
539   VK_EXT_border_color_swizzle                           DONE (anv, lvp, tu, radv/gfx10+, v3dv)
540   VK_EXT_buffer_device_address                          DONE (anv/gen8+, radv)
541   VK_EXT_calibrated_timestamps                          DONE (anv, lvp, radv, vn)
542   VK_EXT_color_write_enable                             DONE (anv, lvp, radv, tu, v3dv)
543   VK_EXT_conditional_rendering                          DONE (anv, lvp, radv, tu, vn)
544   VK_EXT_conservative_rasterization                     DONE (anv/gen9+, radv, vn)
545   VK_EXT_custom_border_color                            DONE (anv, lvp, panvk, radv, tu, v3dv, vn)
546   VK_EXT_debug_marker                                   DONE (radv)
547   VK_EXT_depth_clip_control                             DONE (anv, lvp, radv, tu, v3dv, vn)
548   VK_EXT_depth_clip_enable                              DONE (anv, lvp, radv, tu, vn)
549   VK_EXT_depth_range_unrestricted                       DONE (radv, lvp)
550   VK_EXT_discard_rectangles                             DONE (radv)
551   VK_EXT_display_control                                DONE (anv, radv, tu)
552   VK_EXT_extended_dynamic_state3                        DONE (lvp, radv)
553   VK_EXT_external_memory_dma_buf                        DONE (anv, pvr, radv, tu, v3dv, vn)
554   VK_EXT_external_memory_host                           DONE (anv, lvp, radv)
555   VK_EXT_filter_cubic                                   DONE (tu/a650)
556   VK_EXT_fragment_shader_interlock                      DONE (anv/gen9+)
557   VK_EXT_global_priority                                DONE (anv, radv, tu)
558   VK_EXT_global_priority_query                          DONE (anv, radv, tu)
559   VK_EXT_graphics_pipeline_library                      DONE (lvp)
560   VK_EXT_image_2d_view_of_3d                            DONE (anv, radv, tu, lvp)
561   VK_EXT_image_drm_format_modifier                      DONE (anv, radv/gfx9+, tu, v3dv, vn)
562   VK_EXT_image_view_min_lod                             DONE (anv, radv, tu, vn)
563   VK_EXT_index_type_uint8                               DONE (anv, lvp, panvk, radv/gfx8+, v3dv, tu, vn)
564   VK_EXT_line_rasterization                             DONE (anv, lvp, radv, tu, v3dv, vn)
565   VK_EXT_load_store_op_none                             DONE (radv, tu, v3dv)
566   VK_EXT_memory_budget                                  DONE (anv, radv, tu, v3dv)
567   VK_EXT_memory_priority                                DONE (radv)
568   VK_EXT_multi_draw                                     DONE (anv, lvp, radv, tu, vn)
569   VK_EXT_multisampled_render_to_single_sampled          DONE (lvp)
570   VK_EXT_non_seamless_cube_map                          DONE (anv, lvp, radv, tu)
571   VK_EXT_pci_bus_info                                   DONE (anv, radv)
572   VK_EXT_physical_device_drm                            DONE (anv, radv, tu, v3dv, vn)
573   VK_EXT_pipeline_robustness                            DONE (v3dv)
574   VK_EXT_post_depth_coverage                            DONE (anv/gfx10+, lvp, radv/gfx10+)
575   VK_EXT_primitive_topology_list_restart                DONE (anv, lvp, radv, tu, v3dv, vn)
576   VK_EXT_primitives_generated_query                     DONE (anv, lvp, radv, tu, vn)
577   VK_EXT_provoking_vertex                               DONE (anv, lvp, radv, tu, v3dv, vn)
578   VK_EXT_queue_family_foreign                           DONE (anv, radv, tu, vn)
579   VK_EXT_rasterization_order_attachment_access          DONE (lvp, tu)
580   VK_EXT_robustness2                                    DONE (anv, lvp, radv, tu, vn)
581   VK_EXT_sample_locations                               DONE (anv, radv/gfx9-, tu/a650)
582   VK_EXT_shader_atomic_float                            DONE (anv, lvp, radv)
583   VK_EXT_shader_atomic_float2                           DONE (anv/gen9+, lvp, radv)
584   VK_EXT_shader_image_atomic_int64                      DONE (radv)
585   VK_EXT_shader_stencil_export                          DONE (anv/gen9+, lvp, radv, tu, vn)
586   VK_EXT_shader_subgroup_ballot                         DONE (anv, lvp, radv)
587   VK_EXT_shader_subgroup_vote                           DONE (anv, lvp, radv)
588   VK_EXT_shader_module_identifier                       DONE (anv, radv, tu, v3dv)
589   VK_EXT_transform_feedback                             DONE (anv, lvp, radv, tu, vn)
590   VK_EXT_vertex_attribute_divisor                       DONE (anv, dzn, panvk, radv, lvp, tu, v3dv, vn)
591   VK_EXT_vertex_input_dynamic_state                     DONE (lvp, radv, tu)
592   VK_EXT_ycbcr_image_arrays                             DONE (anv, radv)
593   VK_ANDROID_external_memory_android_hardware_buffer    DONE (anv, radv, vn)
594   VK_ANDROID_native_buffer                              DONE (anv, radv, tu, v3dv, vn)
595   VK_GOOGLE_decorate_string                             DONE (anv, lvp, radv)
596   VK_GOOGLE_hlsl_functionality1                         DONE (anv, lvp, radv)
597   VK_GOOGLE_user_type                                   DONE (anv, radv)
598   VK_IMG_filter_cubic                                   DONE (tu/a650)
599   VK_NV_compute_shader_derivatives                      DONE (anv, radv)
600   VK_EXT_acquire_drm_display                            DONE (anv, radv, tu)
601   VK_VALVE_mutable_descriptor_type                      DONE (anv, radv, tu, vn)
602   VK_AMD_buffer_marker                                  DONE (radv, tu)
603   VK_AMD_device_coherent_memory                         DONE (radv)
604   VK_AMD_draw_indirect_count                            DONE (radv)
605   VK_AMD_gcn_shader                                     DONE (radv)
606   VK_AMD_gpu_shader_half_float                          DONE (radv)
607   VK_AMD_gpu_shader_int16                               DONE (radv)
608   VK_AMD_memory_overallocation_behavior                 DONE (radv)
609   VK_AMD_mixed_attachment_samples                       DONE (radv)
610   VK_AMD_rasterization_order                            DONE (radv)
611   VK_AMD_shader_ballot                                  DONE (radv)
612   VK_AMD_shader_core_properties                         DONE (radv)
613   VK_AMD_shader_core_properties2                        DONE (radv)
614   VK_AMD_shader_explicit_vertex_parameter               DONE (radv)
615   VK_AMD_shader_fragment_mask                           DONE (radv/gfx10.3-)
616   VK_AMD_shader_image_load_store_lod                    DONE (radv)
617   VK_AMD_shader_trinary_minmax                          DONE (radv)
618   VK_AMD_texture_gather_bias_lod                        DONE (radv)
619   VK_ARM_rasterization_order_attachment_access          DONE (lvp, tu)
620   VK_EXT_mutable_descriptor_type                        DONE (anv, radv, tu, vn)
621
622
623 OpenCL 1.0 -- all DONE:
624
625   Image support                                         in progress
626
627
628 OpenCL 1.1 -- all DONE:
629
630   Additional queries for clGetDeviceInfo                DONE (nvc0, r600, radeonsi)
631   CL_CONTEXT_NUM_DEVICES for clGetContextInfo           DONE
632   Optional image formats                                not started
633   clCreateSubBuffer                                     DONE
634   Read from, write to, copy rectangular regions         DONE
635   clSetMemObjectDestructorCallback                      DONE
636   Control OpenCL C version when building                DONE
637   Query for preferred work-group size multiple          DONE (nvc0, r600, radeonsi)
638   Support user events                                   DONE
639   clSetEventCallback                                    DONE
640   Minimum requirement changes for clGetDeviceInfo       DONE (nvc0, r600, radeonsi)
641   Arg prerequisite change for clEnqueueNDRangeKernel    DONE ()
642   3-component vector data types                         DONE (nvc0, r600, radeonsi)
643   cl_khr_byte_addressable_store                         DONE (nvc0, r600, radeonsi)
644   cl_khr_global_int32_base_atomics                      DONE (nvc0, r600, radeonsi)
645   cl_khr_global_int32_extended_atomics                  DONE (nvc0, r600, radeonsi)
646   cl_khr_local_int32_base_atomics                       DONE (nvc0, r600, radeonsi)
647   cl_khr_local_int32_extended_atomics                   DONE (nvc0, r600, radeonsi)
648
649
650 OpenCL 1.2 -- all DONE:
651
652   Custom devices                                        DONE
653   Built-in kernels                                      DONE ()
654   Device partitioning                                   DONE ()
655   Separate compilation and linking of programs          DONE
656   Extend cl_mem_flags                                   DONE
657   clEnqueueFillBuffer, clEnqueueFillImage               DONE
658   Add CL_MAP_WRITE_INVALIDATE_REGION to cl_map_flags    DONE
659   New image types                                       not started
660   clCreateImage                                         DONE
661   clEnqueueMigrateMemObjects                            DONE
662   Retrieve kernels information from a program           DONE
663   clGetKernelArgInfo                                    DONE
664   clEnqueueMarkerWithWaitList                           DONE
665   clEnqueueBarrierWithWaitList                          DONE
666   clUnloadPlatformCompiler                              DONE
667   cl_khr_fp64                                           DONE (nvc0, r600, radeonsi)
668   printf                                                DONE (nvc0)
669   CL_KERNEL_ATTRIBUTES for clGetKernelInfo              DONE
670
671
672 OpenCL 2.0 -- all DONE:
673
674   Shared virtual memory                                 DONE (nvc0)
675   Device queues                                         not started
676   - cl_khr_create_command_queue                         not started
677   - Additional queries for clGetDeviceInfo              not started
678   Pipes                                                 not started
679   Extended 2D images creation                           not started
680   - cl_khr_image2d_from_buffer                          not started
681   - cl_khr_depth_images                                 not started
682   - from sRGB images                                    not started
683   clCreateSamplerWithProperties                         not started
684   cl_khr_3d_image_writes                                not started
685
686
687 OpenCL 2.1 -- all DONE:
688
689   Sub groups                                            not started
690   - cl_khr_subgroups                                    not started
691   - Additional queries for clGetDeviceInfo              not started
692   cl_khr_il_program                                     DONE (nvc0)
693   Device and host timer synchronization                 not started
694   clEnqueueSVMMigrateMem                                not started
695   clCloneKernel                                         not started
696   Default device command queue                          not started
697
698
699 OpenCL 2.2 -- all DONE:
700
701   clSetProgramSpecializationConstant                    not started
702   clSetProgramReleaseCallback                           not started
703   Initialization and clean-up kernels                   not started
704   CL_MAX_SIZE_RESTRICTION_EXCEEDED for clSetKernelArg   not started
705   Support SPIR-V 1.1 and 1.2                            not started
706
707
708 OpenCL 3.0 -- all DONE
709
710   Optional device capabilities queries                  in progress
711   cl_khr_extended_versioning                            DONE
712   clSetContextDestructorCallback                        DONE
713   clCreateBufferWithProperties                          DONE
714   clCreateImageWithProperties                           DONE
715   Query properties arrays                               in progress
716   Supported OpenCL C versions and features queries      DONE
717   CL_COMMAND_SVM_MIGRATE_MEM for clGetEventInfo         not started
718   Latest conformance version passed for devices         not started
719
720
721 Khronos, and EXT extensions that are not part of any OpenCL version:
722
723   cl_ext_atomic_counters_32                             not started
724   cl_ext_atomic_counters_64                             not started
725   cl_ext_device_fission                                 not started
726   cl_ext_migrate_memobject                              not started
727   cl_khr_async_work_group_copy_fence                    not started
728   cl_khr_d3d10_sharing                                  not started
729   cl_khr_d3d11_sharing                                  not started
730   cl_khr_device_enqueue_local_arg_types                 not started
731   cl_khr_dx9_media_sharing                              not started
732   cl_khr_egl_event                                      not started
733   cl_khr_egl_image                                      not started
734   cl_khr_extended_async_copies                          not started
735   cl_khr_fp16                                           DONE ()
736   cl_khr_gl_depth_images                                not started
737   cl_khr_gl_event                                       not started
738   cl_khr_gl_msaa_sharing                                not started
739   cl_khr_gl_sharing                                     not started
740   cl_khr_icd                                            DONE
741   cl_khr_initialize_memory                              not started
742   cl_khr_int64_base_atomics                             DONE ()
743   cl_khr_int64_extended_atomics                         DONE ()
744   cl_khr_mipmap_image                                   not started
745   cl_khr_mipmap_image_writes                            not started
746   cl_khr_priority_hints                                 not started
747   cl_khr_select_fprounding_mode                         not started
748   cl_khr_spir                                           not started
749   cl_khr_srgb_image_writes                              not started
750   cl_khr_subgroup_named_barrier                         not started
751   cl_khr_subgroups                                      not started
752   cl_khr_terminate_context                              not started
753   cl_khr_throttle_hints                                 not started
754
755
756 Vendor specific extensions that are not part of any OpenCL version:
757
758   cl_arm_shared_virtual_memory                          DONE (nvc0)
759
760
761 The following extensions are not part of any OpenCL version, and we DO NOT WANT
762 implementations of these extensions for Mesa.
763
764   cl_nv_d3d10_sharing                                   Superseded by cl_khr_d3d10_sharing
765   cl_nv_d3d11_sharing                                   Superseded by cl_khr_d3d10_sharing
766
767
768 A graphical representation of this information can be found at
769 https://mesamatrix.net/