1# Status of OpenGL extensions in Mesa 2 3Here's how to read this file: 4 5all DONE: <driver>, ... 6 All the extensions are done for the given list of drivers. 7 8DONE 9 The extension is done for Mesa and no implementation is necessary on the 10 driver-side. 11 12DONE () 13 The extension is done for Mesa and all the drivers in the "all DONE" list. 14 15DONE (<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 19in progress 20 The extension is started but not finished yet. 21 22not started 23 The extension isn't started yet. 24 25# OpenGL Core and Compatibility context support 26 27Some drivers do not support the Compatibility profile or the 28ARB_compatibility extensions. If an application does not request a 29specific version without the forward-compatiblity flag, such drivers 30will be limited to OpenGL 3.0. If an application requests OpenGL 3.1, 31it will get a context that may or may not have the ARB_compatibility 32extension enabled. Some of the later GL features are exposed in the 3.0 33context as extensions. 34 35 36Feature Status 37------------------------------------------------------- ------------------------ 38 39GL 3.0, GLSL 1.30 --- all DONE: freedreno, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12, panfrost, asahi, iris, crocus/gen6+ 40 41 glBindFragDataLocation, glGetFragDataLocation DONE 42 GL_NV_conditional_render (Conditional rendering) DONE (v3d, etnaviv/HALTI0) 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, etnaviv) 45 GL_ARB_texture_float (Float textures, renderbuffers) DONE (v3d) 46 GL_EXT_packed_float DONE (v3d, etnaviv/HALTI0) 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, etnaviv) 50 GL_ARB_half_float_pixel DONE (all drivers) 51 GL_ARB_half_float_vertex DONE (v3d, vc4, lima, etnaviv) 52 GL_EXT_texture_integer DONE (v3d) 53 GL_EXT_texture_array DONE (v3d, etnaviv/HALTI0) 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, etnaviv/HALTI2) 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, etnaviv/HALTI3) 60 glClearBuffer commands DONE 61 glGetStringi command DONE 62 glTexParameterI, glGetTexParameterI commands DONE 63 glVertexAttribI commands DONE 64 Depth format cube textures DONE (v3d) 65 GLX_ARB_create_context (GLX 1.4 is required) DONE (v3d, vc4) 66 Multisample anti-aliasing DONE (freedreno/a5xx+, freedreno (*), llvmpipe (*), softpipe (*)), v3d) 67 8 draw buffers DONE (panfrost/t760+, v3d/vc7+) 68 69(*) freedreno (a2xx-a4xx), llvmpipe, and softpipe have fake Multisample anti-aliasing support 70 71 72GL 3.1, GLSL 1.40 --- all DONE: freedreno, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12, panfrost, asahi, iris, crocus/gen6+ 73 74 Forward compatible context support/deprecations DONE 75 GL_ARB_draw_instanced (Instanced drawing) DONE (etnaviv/HALTI2, v3d, crocus) 76 GL_ARB_copy_buffer (Buffer copying) DONE (v3d, vc4, lima, crocus) 77 GL_NV_primitive_restart (Primitive restart) DONE (v3d, crocus) 78 16 vertex texture image units DONE (v3d) 79 GL_ARB_texture_buffer_object (Texture buffer objs) DONE (v3d) 80 GL_ARB_texture_rectangle (Rectangular textures) DONE (v3d, vc4, lima, crocus, etnaviv) 81 GL_ARB_uniform_buffer_object (Uniform buffer objs) DONE (v3d, crocus) 82 GL_EXT_texture_snorm (Signed normalized textures) DONE (v3d, crocus) 83 84 85GL 3.2, GLSL 1.50 --- all DONE: freedreno, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12, iris, crocus/gen6+, asahi 86 87 Core/compatibility profiles DONE 88 Geometry shaders DONE (freedreno/a6xx, crocus) 89 GL_ARB_vertex_array_bgra (BGRA vertex order) DONE (v3d, panfrost, crocus) 90 GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (v3d, vc4, panfrost, lima, crocus) 91 GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (v3d, vc4, panfrost, lima, crocus) 92 GL_ARB_provoking_vertex (Provoking vertex) DONE (v3d, vc4, panfrost, lima, crocus) 93 GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (panfrost, crocus) 94 GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx+, v3d, vc4, panfrost) 95 GL_ARB_depth_clamp (Frag depth clamp) DONE (panfrost, crocus) 96 GL_ARB_sync (Fence objects) DONE (v3d, vc4, panfrost, lima, crocus) 97 GLX_ARB_create_context_profile DONE 98 99 100GL 3.3, GLSL 3.30 --- all DONE: freedreno, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12, iris, crocus/gen6+, asahi 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, etnaviv/HALTI0) 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 114GL 4.0, GLSL 4.00 --- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7+, asahi 115 116 GL_ARB_draw_buffers_blend DONE (freedreno, nv50, softpipe, panfrost, v3d, crocus/gen6+) 117 GL_ARB_draw_indirect DONE (freedreno, softpipe, v3d) 118 GL_ARB_gpu_shader5 DONE (freedreno/a6xx) 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, softpipe) 132 GL_ARB_sample_shading DONE (freedreno/a6xx, nv50, panfrost, crocus/gen6+) 133 GL_ARB_shader_subroutine DONE (freedreno, nv50, softpipe, crocus/gen6+) 134 GL_ARB_tessellation_shader DONE (freedreno/a6xx) 135 GL_ARB_texture_buffer_object_rgb32 DONE (freedreno, softpipe, panfrost, crocus/gen6+) 136 GL_ARB_texture_cube_map_array DONE (freedreno/a4xx+, nv50, softpipe, v3d, crocus/gen6+) 137 GL_ARB_texture_gather DONE (freedreno, nv50, softpipe, v3d, panfrost) 138 GL_ARB_texture_query_lod DONE (freedreno, nv50, softpipe, v3d, panfrost, crocus/gen5+) 139 GL_ARB_transform_feedback2 DONE (freedreno/a3xx+, nv50, softpipe, v3d, panfrost, crocus/gen6+) 140 GL_ARB_transform_feedback3 DONE (freedreno/a3xx+, softpipe) 141 142 143GL 4.1, GLSL 4.10 --- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7+, asahi 144 145 GL_ARB_ES2_compatibility DONE (freedreno, nv50, softpipe, v3d, vc4, panfrost, lima, crocus) 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, all drivers that support GLSL 4.10) 149 GL_ARB_vertex_attrib_64bit DONE (freedreno/a6xx, softpipe) 150 GL_ARB_viewport_array DONE (freedreno/a6xx, nv50, softpipe, crocus/gen6+) 151 152 153GL 4.2, GLSL 4.20 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7+, asahi 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+, softpipe, v3d, panfrost) 158 GL_ARB_texture_storage DONE (all drivers) 159 GL_ARB_transform_feedback_instanced DONE (freedreno, nv50, softpipe, v3d, crocus/gen6+) 160 GL_ARB_base_instance DONE (freedreno, nv50, softpipe, v3d, crocus) 161 GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, 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, nv50, softpipe, v3d, vc4, panfrost, lima, crocus) 166 GL_ARB_map_buffer_alignment DONE (all drivers) 167 168 169GL 4.3, GLSL 4.30 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, d3d12, iris, crocus/gen7.5+, asahi 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+, softpipe, v3d, panfrost, crocus/gen7+) 175 GL_ARB_copy_image DONE (freedreno/a6xx, nv50, softpipe, v3d, crocus) 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, nv50, softpipe, crocus/gen6+) 179 GL_ARB_framebuffer_no_attachments DONE (freedreno, softpipe, v3d, crocus/gen7+) 180 GL_ARB_internalformat_query2 DONE (all drivers) 181 GL_ARB_invalidate_subdata DONE (all drivers) 182 GL_ARB_multi_draw_indirect DONE (freedreno, softpipe, v3d, crocus/gen7+) 183 GL_ARB_program_interface_query DONE (all drivers) 184 GL_ARB_robust_buffer_access_behavior DONE (freedreno) 185 GL_ARB_shader_image_size DONE (freedreno/a5xx+, softpipe, v3d, panfrost, crocus/gen7+) 186 GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, softpipe, v3d, panfrost, crocus/gen7+) 187 GL_ARB_stencil_texturing DONE (freedreno, nv50, softpipe, v3d, panfrost) 188 GL_ARB_texture_buffer_range DONE (freedreno, nv50, softpipe, v3d, crocus) 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, nv50, softpipe, v3d, crocus/gen7+) 192 GL_ARB_vertex_attrib_binding DONE (all drivers) 193 194 195GL 4.4, GLSL 4.40 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, iris, crocus/gen7.5+, d3d12, asahi 196 197 GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers) 198 GL_ARB_buffer_storage DONE (freedreno, nv50, v3d, vc4, lima, panfrost, softpipe, etnaviv, crocus) 199 GL_ARB_clear_texture DONE (all drivers) 200 GL_ARB_enhanced_layouts DONE (freedreno/a3xx+, nv50, softpipe, crocus) 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) 209 GL_ARB_texture_mirror_clamp_to_edge DONE (freedreno, nv50, softpipe, v3d, panfrost, crocus) 210 GL_ARB_texture_stencil8 DONE (freedreno, nv50, softpipe, v3d, panfrost) 211 GL_ARB_vertex_type_10f_11f_11f_rev DONE (freedreno, nv50, softpipe, panfrost, crocus) 212 213GL 4.5, GLSL 4.50 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, virgl, zink, iris, crocus/gen7.5+, d3d12, asahi 214 215 GL_ARB_ES3_1_compatibility DONE (freedreno/a6xx, softpipe) 216 GL_ARB_clip_control DONE (freedreno, nv50, softpipe, lima, crocus) 217 GL_ARB_conditional_render_inverted DONE (freedreno, nv50, softpipe, panfrost, crocus/gen6+) 218 GL_ARB_cull_distance DONE (freedreno/a6xx, nv50, softpipe, crocus/gen6+) 219 GL_ARB_derivative_control DONE (freedreno/a3xx+, nv50, softpipe, crocus/gen7+) 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+, nv50, crocus/gen7+) 223 GL_ARB_texture_barrier DONE (freedreno, nv50, v3d, vc4, lima, crocus) 224 GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful) 225 GL_KHR_robustness DONE (freedreno) 226 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL) 227 228GL 4.6, GLSL 4.60 -- all DONE: radeonsi, virgl, zink, iris, crocus/gen7+, d3d12, asahi 229 230 GL_ARB_gl_spirv DONE (freedreno, llvmpipe) 231 GL_ARB_indirect_parameters DONE (freedreno/a6xx+, nvc0, llvmpipe, virgl) 232 GL_ARB_pipeline_statistics_query DONE (freedreno/a6xx+, nvc0, r600, llvmpipe, softpipe, crocus/gen6+) 233 GL_ARB_polygon_offset_clamp DONE (freedreno, nv50, nvc0, r600, llvmpipe, v3d, panfrost, crocus) 234 GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx+, nvc0, r600, llvmpipe, softpipe, v3d) 235 GL_ARB_shader_draw_parameters DONE (freedreno/a6xx+, llvmpipe, nvc0, crocus/gen6+) 236 GL_ARB_shader_group_vote DONE (freedreno/a6xx, nvc0, llvmpipe, crocus) 237 GL_ARB_spirv_extensions DONE (freedreno, llvmpipe) 238 GL_ARB_texture_filter_anisotropic DONE (etnaviv/HALTI0, freedreno, nv50, nvc0, r600, softpipe, llvmpipe, v3d, panfrost/g72+, crocus) 239 GL_ARB_transform_feedback_overflow_query DONE (freedreno/a6xx+, nvc0, llvmpipe, softpipe, crocus/gen6+) 240 GL_KHR_no_error DONE (all drivers) 241 242These are the extensions cherry-picked to make GLES 3.1 243GLES3.1, GLSL ES 3.1 -- all DONE: freedreno/a5xx+, nvc0, r600, radeonsi, virgl, v3d, softpipe, llvmpipe, zink, panfrost, d3d12, iris, crocus/gen7.5+, asahi 244 245 GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30) 246 GL_ARB_compute_shader DONE (freedreno/a5xx+, crocus/gen7+) 247 GL_ARB_draw_indirect DONE (freedreno, crocus/gen7+) 248 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL) 249 GL_ARB_framebuffer_no_attachments DONE (freedreno, softpipe, crocus/gen7+) 250 GL_ARB_program_interface_query DONE (all drivers) 251 GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, crocus/gen7+) 252 GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, crocus/gen7+) 253 GL_ARB_shader_image_size DONE (freedreno/a5xx+, crocus/gen7+) 254 GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, crocus/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+, nv50, crocus/gen6+) 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, crocus/gen7+) 262 GS5 Packing/bitfield/conversion functions DONE (freedreno/a5xx+, crocus/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 (r600, panfrost, crocus) 270 271GLES3.2, GLSL ES 3.2 -- all DONE: freedreno/a6xx, radeonsi, virgl, llvmpipe, zink, iris, crocus/gen7.5+, asahi 272 273 GL_EXT_color_buffer_float DONE (all drivers) 274 GL_KHR_blend_equation_advanced DONE (freedreno/a6xx, nvc0, panfrost, crocus/gen4.5+) 275 GL_KHR_debug DONE (all drivers) 276 GL_KHR_robustness DONE (freedreno, nvc0, r600) 277 GL_KHR_texture_compression_astc_ldr DONE (freedreno, r600, v3d, vc4, panfrost, softpipe, lima, crocus/gen6+) 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, 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+, nvc0, r600, softpipe, v3d) 284 GL_OES_sample_shading DONE (freedreno/a6xx, nvc0, r600, panfrost, d3d12) 285 GL_OES_sample_variables DONE (freedreno/a6xx, nvc0, r600, panfrost/bifrost, crocus/gen7+) 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, 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, nvc0, r600, softpipe, panfrost, crocus/gen6+) 292 GL_OES_texture_cube_map_array DONE (freedreno/a4xx+, 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 296Khronos, 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+, nvc0, radeonsi, zink, iris, crocus/gen7+, asahi) 301 GL_ARB_ES3_2_compatibility DONE (freedreno/a6xx, radeonsi, virgl, zink, iris, crocus/gen7.5+, asahi) 302 GL_ARB_fragment_shader_interlock DONE (zink, iris/gen9+) 303 GL_ARB_gpu_shader_int64 DONE (freedreno/a6xx, nvc0, radeonsi, softpipe, llvmpipe, zink, d3d12, iris, crocus/gen8, asahi) 304 GL_ARB_parallel_shader_compile DONE (freedreno, radeonsi, etnaviv, zink, iris, crocus/gen6+, asahi) 305 GL_ARB_post_depth_coverage DONE (freedreno/a6xx, nvc0, radeonsi, llvmpipe, zink, iris/gen9+) 306 GL_ARB_robustness_isolation not started 307 GL_ARB_sample_locations DONE (freedreno/a6xx, nvc0, zink) 308 GL_ARB_seamless_cubemap_per_texture DONE (etnaviv/SEAMLESS_CUBE_MAP, freedreno, nvc0, r600, radeonsi, softpipe, virgl, zink, asahi, iris, crocus) 309 GL_ARB_shader_ballot DONE (nvc0, radeonsi, zink, iris, crocus/gen8, d3d12, asahi) 310 GL_ARB_shader_clock DONE (nv50, nvc0, r600, radeonsi, llvmpipe, virgl, zink, iris, crocus/gen7+) 311 GL_ARB_shader_stencil_export DONE (r600, radeonsi, softpipe, llvmpipe, virgl, panfrost, zink, asahi, iris/gen9+) 312 GL_ARB_shader_viewport_layer_array DONE (freedreno/a6xx, nvc0, radeonsi, zink, iris, crocus/gen6+, asahi) 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 (freedreno/a6xx, nvc0/gm200+, zink) 319 GL_ARM_shader_framebuffer_fetch_depth_stencil DONE (llvmpipe) 320 GL_EXT_shader_framebuffer_fetch DONE (freedreno/a6xx, iris/gen9+, llvmpipe, panfrost, virgl, zink, asahi) 321 GL_EXT_shader_framebuffer_fetch_non_coherent DONE (freedreno/a6xx, iris, llvmpipe, panfrost, virgl, zink, asahi) 322 GL_EXT_color_buffer_half_float DONE (freedreno, iris, llvmpipe, nv50, nvc0, radeonsi, zink, crocus, asahi) 323 GL_EXT_depth_bounds_test DONE (freedreno/a6xx, nv50, nvc0, radeonsi, softpipe, zink, iris/gen12+) 324 GL_EXT_memory_object DONE (freedreno, radeonsi, llvmpipe, zink, d3d12, iris, crocus/gen7+) 325 GL_EXT_memory_object_fd DONE (freedreno, radeonsi, llvmpipe, zink, iris, crocus/gen7+) 326 GL_EXT_memory_object_win32 DONE (zink, d3d12) 327 GL_EXT_multisampled_render_to_texture DONE (freedreno/a6xx, panfrost, zink, lima) 328 GL_EXT_render_snorm DONE (freedreno/a6xx, r600, radeonsi, softpipe, zink, panfrost/bifrost+, iris, asahi) 329 GL_EXT_semaphore DONE (radeonsi, zink, d3d12, iris, crocus) 330 GL_EXT_semaphore_fd DONE (radeonsi, zink, iris, crocus) 331 GL_EXT_semaphore_win32 DONE (zink, d3d12) 332 GL_EXT_shader_group_vote DONE (all drivers that support GL_ARB_shader_group_vote) 333 GL_EXT_sRGB_write_control DONE (all drivers that support GLES 3.0+) 334 GL_EXT_texture_norm16 DONE (freedreno, r600, radeonsi, nvc0i, softpipe, zink, iris, crocus) 335 GL_EXT_texture_sRGB_R8 DONE (all drivers that support GLES 3.0+) 336 GL_KHR_blend_equation_advanced_coherent DONE (freedreno/a6xx, panfrost, zink, asahi, iris/gen9+) 337 GL_KHR_texture_compression_astc_hdr DONE (core only) 338 GL_KHR_texture_compression_astc_sliced_3d DONE (freedreno/a4xx+, r600, radeonsi, panfrost, softpipe, v3d, zink, lima, asahi, iris/gen9+) 339 GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+) 340 GL_OES_EGL_image DONE (all drivers) 341 GL_OES_EGL_image_external DONE (all drivers) 342 GL_OES_EGL_image_external_essl3 DONE (all drivers) 343 GL_OES_required_internalformat DONE (all drivers) 344 GL_OES_surfaceless_context DONE (all drivers) 345 GL_OES_texture_compression_astc DONE (core only) 346 GL_OES_texture_float DONE (freedreno, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, v3d, zink, asahi, iris, crocus) 347 GL_OES_texture_float_linear DONE (freedreno, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, zink, asahi, iris, crocus) 348 GL_OES_texture_half_float DONE (freedreno, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, v3d, zink, lima, asahi, iris, crocus, etnaviv/HALF_FLOAT) 349 GL_OES_texture_half_float_linear DONE (freedreno, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, v3d, zink, lima, asahi, iris, crocus, etnaviv/HALF_FLOAT) 350 GL_OES_texture_view DONE (freedreno, r600, radeonsi, nv50, nvc0, softpipe, llvmpipe, v3d, zink, iris, crocus/gen7+, d3d12) 351 GL_OES_viewport_array DONE (freedreno/a6xx, nvc0, r600, radeonsi, softpipe, zink, iris, crocus/gen7.5+, asahi) 352 GLX_ARB_context_flush_control DONE (all drivers) 353 GLX_ARB_robustness_application_isolation not started 354 GLX_ARB_robustness_share_group_isolation not started 355 356GL_EXT_direct_state_access subfeatures (in the spec order): 357 GL 1.1: Client commands DONE 358 GL 1.0-1.3: Matrix and transpose matrix commands DONE 359 GL 1.1-1.2: Texture commands DONE 360 GL 1.2: 3D texture commands DONE 361 GL 1.2.1: Multitexture commands DONE 362 GL 1.2.1-3.0: Indexed texture commands DONE 363 GL 1.2.1-3.0: Indexed generic queries DONE 364 GL 1.2.1: EnableIndexed.. Get*Indexed DONE 365 GL_ARB_vertex_program DONE 366 GL 1.3: Compressed texture and multitexture commands DONE 367 GL 1.5: Buffer commands DONE 368 GL 2.0-2.1: Uniform and uniform matrix commands DONE 369 GL_EXT_texture_buffer_object DONE 370 GL_EXT_texture_integer DONE 371 GL_EXT_gpu_shader4 DONE 372 GL_EXT_gpu_program_parameters DONE 373 GL_NV_gpu_program4 n/a 374 GL_NV_framebuffer_multisample_coverage n/a 375 GL 3.0: Renderbuffer/framebuffer commands, Gen*Mipmap DONE 376 GL 3.0: CopyBuffer command DONE 377 GL_EXT_geometry_shader4 commands (expose in GL 3.2) DONE 378 GL_NV_explicit_multisample n/a 379 GL 3.0: Vertex array/attrib/query/map commands DONE 380 Matrix GL tokens DONE 381 382GL_EXT_direct_state_access additions from other extensions (complete list): 383 GL_AMD_framebuffer_sample_positions n/a 384 GL_AMD_gpu_shader_int64 n/a (not enabled in compat profile) 385 GL_ARB_bindless_texture DONE 386 GL_ARB_buffer_storage DONE 387 GL_ARB_clear_buffer_object DONE 388 GL_ARB_framebuffer_no_attachments DONE 389 GL_ARB_gpu_shader_fp64 DONE 390 GL_ARB_instanced_arrays DONE 391 GL_ARB_internalformat_query2 DONE 392 GL_ARB_sparse_texture n/a 393 GL_ARB_sparse_buffer DONE 394 GL_ARB_texture_buffer_range DONE 395 GL_ARB_texture_storage DONE 396 GL_ARB_texture_storage_multisample DONE 397 GL_ARB_vertex_attrib_64bit DONE 398 GL_ARB_vertex_attrib_binding DONE 399 GL_EXT_buffer_storage DONE 400 GL_EXT_external_buffer n/a 401 GL_EXT_separate_shader_objects n/a 402 GL_EXT_sparse_texture n/a 403 GL_EXT_texture_storage DONE 404 GL_EXT_vertex_attrib_64bit DONE 405 GL_EXT_EGL_image_storage n/a 406 GL_NV_bindless_texture n/a 407 GL_NV_gpu_shader5 n/a 408 GL_NV_texture_multisample n/a 409 GL_NV_vertex_buffer_unified_memory n/a 410 GL_NVX_linked_gpu_multicast n/a 411 GLX_NV_copy_buffer n/a 412 413The following extensions are not part of any OpenGL or OpenGL ES version, and 414we DO NOT WANT implementations of these extensions for Mesa. 415 416 GL_ARB_geometry_shader4 Superseded by GL 3.2 geometry shaders 417 GL_ARB_matrix_palette Superseded by GL_ARB_vertex_program 418 GL_ARB_shadow_ambient Superseded by GL_ARB_fragment_program 419 GL_ARB_vertex_blend Superseded by GL_ARB_vertex_program 420 421Vulkan 1.0 -- all DONE: anv, dzn, lvp, nvk, radv, tu, v3dv, vn 422 423Vulkan 1.1 -- all DONE: anv, lvp, nvk, radv, tu, vn 424 425 VK_KHR_16bit_storage DONE (anv, dzn, hasvk, lvp, nvk, radv, tu/a650, v3dv, vn) 426 VK_KHR_bind_memory2 DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 427 VK_KHR_dedicated_allocation DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 428 VK_KHR_descriptor_update_template DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) 429 VK_KHR_device_group DONE (anv, dzn, hasvk, lvp, nvk, tu, v3dv, vn) 430 VK_KHR_device_group_creation DONE (anv, hasvk, nvk, dzn, lvp, tu, v3dv, vn) 431 VK_KHR_external_fence DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 432 VK_KHR_external_fence_capabilities DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 433 VK_KHR_external_memory DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 434 VK_KHR_external_memory_capabilities DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 435 VK_KHR_external_semaphore DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 436 VK_KHR_external_semaphore_capabilities DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 437 VK_KHR_get_memory_requirements2 DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 438 VK_KHR_get_physical_device_properties2 DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) 439 VK_KHR_maintenance1 DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 440 VK_KHR_maintenance2 DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 441 VK_KHR_maintenance3 DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 442 VK_KHR_multiview DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 443 VK_KHR_relaxed_block_layout DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 444 VK_KHR_sampler_ycbcr_conversion DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 445 VK_KHR_shader_draw_parameters DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, vn) 446 VK_KHR_storage_buffer_storage_class DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) 447 VK_KHR_variable_pointers DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) 448 449Vulkan 1.2 -- all DONE: anv, nvk, tu, vn 450 451 VK_KHR_8bit_storage DONE (anv, dzn, hasvk, lvp, nvk, radv, v3dv, vn) 452 VK_KHR_buffer_device_address DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 453 VK_KHR_create_renderpass2 DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 454 VK_KHR_depth_stencil_resolve DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 455 VK_KHR_draw_indirect_count DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, vn) 456 VK_KHR_driver_properties DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 457 VK_KHR_image_format_list DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 458 VK_KHR_imageless_framebuffer DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 459 VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 460 VK_KHR_separate_depth_stencil_layouts DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 461 VK_KHR_shader_atomic_int64 DONE (anv, lvp, nvk, radv, vn) 462 VK_KHR_shader_float16_int8 DONE (anv, dzn, hasvk, lvp, radv, tu, vn) 463 VK_KHR_shader_float_controls DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 464 VK_KHR_shader_subgroup_extended_types DONE (anv, hasvk, lvp, nvk, radv, tu, vn) 465 VK_KHR_spirv_1_4 DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 466 VK_KHR_timeline_semaphore DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 467 VK_KHR_uniform_buffer_standard_layout DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 468 VK_KHR_vulkan_memory_model DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 469 VK_EXT_descriptor_indexing DONE (anv, dzn, lvp, nvk, radv, tu, vn) 470 VK_EXT_host_query_reset DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 471 VK_EXT_sampler_filter_minmax DONE (anv, lvp, nvk, radv, tu, vn) 472 VK_EXT_scalar_block_layout DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv/gfx7+, tu, vn) 473 VK_EXT_separate_stencil_usage DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 474 VK_EXT_shader_viewport_index_layer DONE (anv, hasvk, lvp, nvk, radv, tu, vn) 475 476Vulkan 1.3 -- all DONE: anv, lvp, nvk, radv, tu, vn 477 478 VK_KHR_copy_commands2 DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) 479 VK_KHR_dynamic_rendering DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, vn) 480 VK_KHR_format_feature_flags2 DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 481 VK_KHR_maintenance4 DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 482 VK_KHR_shader_integer_dot_product DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 483 VK_KHR_shader_non_semantic_info DONE (anv, hasvk, nvk, radv, tu, v3dv, vn) 484 VK_KHR_shader_terminate_invocation DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 485 VK_KHR_synchronization2 DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) 486 VK_KHR_zero_initialize_workgroup_memory DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 487 VK_EXT_4444_formats DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 488 VK_EXT_extended_dynamic_state DONE (anv, hasvk, lvp, nvk, radv, tu, vn) 489 VK_EXT_extended_dynamic_state2 DONE (anv, hasvk, lvp, nvk, radv, tu, vn) 490 VK_EXT_inline_uniform_block DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 491 VK_EXT_pipeline_creation_cache_control DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 492 VK_EXT_pipeline_creation_feedback DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 493 VK_EXT_private_data DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 494 VK_EXT_image_robustness DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 495 VK_EXT_shader_demote_to_helper_invocation DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 496 VK_EXT_subgroup_size_control DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 497 VK_EXT_texel_buffer_alignment DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 498 VK_EXT_texture_compression_astc_hdr DONE (vn) 499 VK_EXT_tooling_info DONE (anv, hasvk, nvk, pvr, radv, tu, v3dv, vn) 500 VK_EXT_ycbcr_2plane_444_formats DONE (lvp, nvk, vn) 501 502Khronos extensions that are not part of any Vulkan version: 503 504 VK_KHR_acceleration_structure DONE (anv/gfx12.5+, radv/gfx10.3+) 505 VK_KHR_android_surface not started 506 VK_KHR_calibrated_timestamps DONE (anv, radv) 507 VK_KHR_cooperative_matrix DONE (anv, radv/gfx11+) 508 VK_KHR_deferred_host_operations DONE (anv, hasvk, radv) 509 VK_KHR_display DONE (anv, nvk, pvr, radv, tu, v3dv) 510 VK_KHR_display_swapchain not started 511 VK_KHR_dynamic_rendering_local_read DONE (lvp) 512 VK_KHR_external_fence_fd DONE (anv, hasvk, nvk, pvr, radv, tu, v3dv, vn) 513 VK_KHR_external_fence_win32 not started 514 VK_KHR_external_memory_fd DONE (anv, dzn, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 515 VK_KHR_external_memory_win32 DONE (dzn) 516 VK_KHR_external_semaphore_fd DONE (anv, dzn, hasvk, nvk, pvr, radv, tu, v3dv, vn) 517 VK_KHR_external_semaphore_win32 DONE (dzn) 518 VK_KHR_fragment_shader_barycentric DONE (nvk/Turing+, radv/gfx10.3+) 519 VK_KHR_fragment_shading_rate DONE (anv/gen11+, radv/gfx10.3+) 520 VK_KHR_get_display_properties2 DONE (anv, nvk, pvr, radv, tu, v3dv) 521 VK_KHR_get_surface_capabilities2 DONE (anv, lvp, nvk, pvr, radv, tu, v3dv, vn) 522 VK_KHR_global_priority DONE (anv, radv, tu) 523 VK_KHR_incremental_present DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 524 VK_KHR_index_type_uint8 DONE (anv, nvk, radv) 525 VK_KHR_line_rasterization DONE (anv, nvk, radv) 526 VK_KHR_load_store_op_none DONE (anv, nvk, radv) 527 VK_KHR_maintenance5 DONE (anv, lvp, nvk, radv, tu) 528 VK_KHR_maintenance6 DONE (anv, lvp) 529 VK_KHR_performance_query DONE (anv, radv/gfx10.3+, tu, v3dv) 530 VK_KHR_pipeline_executable_properties DONE (anv, nvk, hasvk, radv, tu, v3dv) 531 VK_KHR_pipeline_library DONE (anv, lvp, radv, tu, vn) 532 VK_KHR_present_wait DONE (anv, nvk, radv, tu, x11/display) 533 VK_KHR_push_descriptor DONE (anv, hasvk, lvp, nvk, radv, tu, vn) 534 VK_KHR_ray_query DONE (anv/gfx12.5+, radv/gfx10.3+) 535 VK_KHR_ray_tracing_maintenance1 DONE (anv/gfx12.5+, radv/gfx10.3+) 536 VK_KHR_ray_tracing_pipeline DONE (anv/gfx12.5+, radv/gfx10.3+) 537 VK_KHR_ray_tracing_position_fetch DONE (anv, radv/gfx10.3+) 538 VK_KHR_shader_clock DONE (anv, hasvk, lvp, nvk, radv, vn) 539 VK_KHR_shader_expect_assume DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) 540 VK_KHR_shader_maximal_reconvergence DONE (lvp, radv) 541 VK_KHR_shader_subgroup_rotate DONE (anv, radv) 542 VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, radv) 543 VK_KHR_shader_quad_control DONE (radv) 544 VK_KHR_shared_presentable_image not started 545 VK_KHR_surface DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) 546 VK_KHR_surface_protected_capabilities DONE (anv, lvp, nvk, radv, v3dv, vn) 547 VK_KHR_swapchain DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) 548 VK_KHR_swapchain_mutable_format DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 549 VK_KHR_vertex_attribute_divisor DONE (anv, radv) 550 VK_KHR_wayland_surface DONE (anv, dzn, lvp, nvk, panvk, radv, tu, v3dv, vn) 551 VK_KHR_workgroup_memory_explicit_layout DONE (anv, nvk, hasvk, radv, v3dv) 552 VK_KHR_win32_keyed_mutex not started 553 VK_KHR_win32_surface DONE (dzn, lvp) 554 VK_KHR_xcb_surface DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 555 VK_KHR_xlib_surface DONE (anv, dzn, hasvk, lvp, nvk, radv, tu, v3dv, vn) 556 VK_EXT_acquire_xlib_display DONE (anv, lvp, nvk, radv, tu, v3dv) 557 VK_EXT_attachment_feedback_loop_dynamic_state DONE (anv, lvp, radv) 558 VK_EXT_attachment_feedback_loop_layout DONE (anv, lvp, nvk, radv, tu, v3dv) 559 VK_EXT_border_color_swizzle DONE (anv, hasvk, lvp, nvk, radv/gfx10+, tu, v3dv, vn) 560 VK_EXT_buffer_device_address DONE (anv, hasvk, nvk, radv) 561 VK_EXT_calibrated_timestamps DONE (anv, hasvk, lvp, radv, vn) 562 VK_EXT_color_write_enable DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 563 VK_EXT_conditional_rendering DONE (anv, hasvk, lvp, nvk, radv, tu, vn) 564 VK_EXT_conservative_rasterization DONE (anv, radv, vn) 565 VK_EXT_custom_border_color DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) 566 VK_EXT_debug_marker DONE (radv) 567 VK_EXT_debug_report DONE (anv, dzn, lvp, nvk, pvr, radv, tu, v3dv) 568 VK_EXT_depth_bias_control DONE (anv, nvk, radv) 569 VK_EXT_depth_clip_control DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 570 VK_EXT_depth_clip_enable DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 571 VK_EXT_depth_range_unrestricted DONE (anv/gen20+, radv, lvp) 572 VK_EXT_descriptor_buffer DONE (lvp, radv, tu) 573 VK_EXT_device_fault DONE (radv) 574 VK_EXT_device_memory_report DONE (vn) 575 VK_EXT_direct_mode_display DONE (anv, lvp, nvk, radv, tu, v3dv) 576 VK_EXT_discard_rectangles DONE (radv) 577 VK_EXT_display_control DONE (anv, hasvk, radv, tu) 578 VK_EXT_display_surface_counter DONE (anv, lvp, nvk, radv, tu) 579 VK_EXT_dynamic_rendering_unused_attachments DONE (anv, nvk, radv, vn) 580 VK_EXT_extended_dynamic_state3 DONE (anv, lvp, nvk, radv, tu, vn) 581 VK_EXT_external_memory_acquire_unmodified DONE (radv) 582 VK_EXT_external_memory_dma_buf DONE (anv, hasvk, nvk, pvr, radv, tu, v3dv, vn) 583 VK_EXT_external_memory_host DONE (anv, hasvk, lvp, radv) 584 VK_EXT_filter_cubic DONE (tu/a650) 585 VK_EXT_fragment_shader_interlock DONE (anv, radv/gfx9+, vn) 586 VK_EXT_global_priority DONE (anv, hasvk, radv, tu) 587 VK_EXT_global_priority_query DONE (anv, hasvk, radv, tu) 588 VK_EXT_graphics_pipeline_library DONE (anv, lvp, nvk, radv, tu, vn) 589 VK_EXT_headless_surface DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) 590 VK_EXT_image_2d_view_of_3d DONE (anv, hasvk, lvp, nvk, radv, tu, vn) 591 VK_EXT_image_compression_control DONE (radv) 592 VK_EXT_image_drm_format_modifier DONE (anv, hasvk, radv/gfx9+, tu, v3dv, vn) 593 VK_EXT_image_sliced_view_of_3d DONE (anv, nvk, radv/gfx10+) 594 VK_EXT_image_view_min_lod DONE (anv, hasvk, nvk, radv, tu, vn) 595 VK_EXT_index_type_uint8 DONE (anv, hasvk, nvk, lvp, panvk, radv/gfx8+, tu, v3dv, vn) 596 VK_EXT_line_rasterization DONE (anv, hasvk, nvk, lvp, radv, tu, v3dv, vn) 597 VK_EXT_load_store_op_none DONE (anv, nvk, radv, tu, v3dv, vn) 598 VK_EXT_memory_budget DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) 599 VK_EXT_memory_priority DONE (lvp, radv) 600 VK_EXT_mesh_shader DONE (anv/gfx12.5+, lvp, radv) 601 VK_EXT_multi_draw DONE (anv, hasvk, lvp, nvk, radv, tu, vn, v3dv) 602 VK_EXT_multisampled_render_to_single_sampled DONE (lvp) 603 VK_EXT_nested_command_buffer DONE (anv, lvp) 604 VK_EXT_non_seamless_cube_map DONE (anv, hasvk, lvp, nvk, radv, tu, vn) 605 VK_EXT_pageable_device_local_memory DONE (lvp) 606 VK_EXT_pci_bus_info DONE (anv, hasvk, nvk, radv, vn) 607 VK_EXT_physical_device_drm DONE (anv, hasvk, nvk, radv, tu, v3dv, vn) 608 VK_EXT_pipeline_library_group_handles DONE (anv, radv) 609 VK_EXT_pipeline_robustness DONE (anv, radv, v3dv) 610 VK_EXT_post_depth_coverage DONE (anv/gfx11+, lvp, radv/gfx10+) 611 VK_EXT_primitive_topology_list_restart DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 612 VK_EXT_primitives_generated_query DONE (anv, hasvk, lvp, nvk, radv, tu, vn) 613 VK_EXT_provoking_vertex DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) 614 VK_EXT_queue_family_foreign DONE (anv, hasvk, radv, tu, vn) 615 VK_EXT_rasterization_order_attachment_access DONE (lvp, tu, vn) 616 VK_EXT_robustness2 DONE (anv, hasvk, lvp, nvk, radv, tu, vn) 617 VK_EXT_sample_locations DONE (anv, hasvk, nvk, radv/gfx9-, tu/a650) 618 VK_EXT_shader_atomic_float DONE (anv, hasvk, lvp, radv) 619 VK_EXT_shader_atomic_float2 DONE (anv, lvp, radv) 620 VK_EXT_shader_image_atomic_int64 DONE (nvk, radv) 621 VK_EXT_shader_object DONE (lvp, nvk) 622 VK_EXT_shader_stencil_export DONE (anv, lvp, radv, tu, vn) 623 VK_EXT_shader_subgroup_ballot DONE (anv, dzn, hasvk, lvp, nvk, radv, vn) 624 VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, lvp, nvk, radv) 625 VK_EXT_shader_module_identifier DONE (anv, hasvk, nvk, radv, tu, v3dv) 626 VK_EXT_transform_feedback DONE (anv, hasvk, lvp, nvk, radv, tu, vn) 627 VK_EXT_vertex_attribute_divisor DONE (anv, dzn, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn) 628 VK_EXT_vertex_input_dynamic_state DONE (anv, lvp, nvk, radv, tu, vn) 629 VK_EXT_ycbcr_image_arrays DONE (anv, hasvk, lvp, nvk, radv) 630 VK_ANDROID_external_memory_android_hardware_buffer DONE (anv, radv, vn) 631 VK_ANDROID_native_buffer DONE (anv, radv, tu, v3dv, vn) 632 VK_GOOGLE_decorate_string DONE (anv, hasvk, lvp, radv) 633 VK_GOOGLE_hlsl_functionality1 DONE (anv, hasvk, lvp, radv) 634 VK_GOOGLE_user_type DONE (anv, hasvk, radv) 635 VK_IMG_filter_cubic DONE (tu/a650) 636 VK_NV_compute_shader_derivatives DONE (anv, hasvk, radv) 637 VK_EXT_acquire_drm_display DONE (anv, nvk, radv, tu, v3dv) 638 VK_VALVE_mutable_descriptor_type DONE (anv, hasvk, radv, tu, vn) 639 VK_AMD_buffer_marker DONE (anv, radv, tu) 640 VK_AMD_device_coherent_memory DONE (radv) 641 VK_AMD_draw_indirect_count DONE (radv) 642 VK_AMD_gcn_shader DONE (radv) 643 VK_AMD_gpu_shader_half_float DONE (radv) 644 VK_AMD_gpu_shader_int16 DONE (radv) 645 VK_AMD_memory_overallocation_behavior DONE (radv) 646 VK_AMD_mixed_attachment_samples DONE (radv) 647 VK_AMD_rasterization_order DONE (radv) 648 VK_AMD_shader_ballot DONE (radv) 649 VK_AMD_shader_core_properties DONE (radv) 650 VK_AMD_shader_core_properties2 DONE (radv) 651 VK_AMD_shader_early_and_late_fragment_tests DONE (radv) 652 VK_AMD_shader_explicit_vertex_parameter DONE (radv) 653 VK_AMD_shader_fragment_mask DONE (radv/gfx10.3-) 654 VK_AMD_shader_image_load_store_lod DONE (radv) 655 VK_AMD_shader_trinary_minmax DONE (radv) 656 VK_AMD_texture_gather_bias_lod DONE (anv, radv) 657 VK_ARM_rasterization_order_attachment_access DONE (lvp, tu) 658 VK_EXT_mutable_descriptor_type DONE (anv, lvp, nvk, radv, tu, vn) 659 VK_EXT_swapchain_colorspace DONE (radv, anv, tu) 660 VK_EXT_depth_clamp_zero_one DONE (anv, radv) 661 VK_INTEL_shader_integer_functions2 DONE (anv, hasvk, radv) 662 VK_KHR_map_memory2 DONE (anv, nvk, radv) 663 664 665 666Clover OpenCL 1.0 -- all DONE: 667 668 Image support in progress 669 - Optional image formats in progress 670 671 672Clover OpenCL 1.1 -- all DONE: 673 674 Additional queries for clGetDeviceInfo DONE (nvc0, r600, radeonsi) 675 CL_CONTEXT_NUM_DEVICES for clGetContextInfo DONE 676 New optional image formats not started 677 - CL_Rx not started 678 - CL_RGx not started 679 - CL_RGBx not started 680 clCreateSubBuffer DONE 681 Read from, write to, copy rectangular regions DONE 682 clSetMemObjectDestructorCallback DONE 683 Control OpenCL C version when building DONE 684 Query for preferred work-group size multiple DONE (nvc0, r600, radeonsi) 685 Support user events DONE 686 clSetEventCallback DONE 687 Minimum requirement changes for clGetDeviceInfo DONE (nvc0, r600, radeonsi) 688 Arg prerequisite change for clEnqueueNDRangeKernel DONE () 689 OpenCL C 1.1 DONE (nvc0, r600, radeonsi) 690 - 3-component vector data types DONE (nvc0, r600, radeonsi) 691 - cl_khr_byte_addressable_store DONE (nvc0, r600, radeonsi) 692 - cl_khr_global_int32_base_atomics DONE (nvc0, r600, radeonsi) 693 - cl_khr_global_int32_extended_atomics DONE (nvc0, r600, radeonsi) 694 - cl_khr_local_int32_base_atomics DONE (nvc0, r600, radeonsi) 695 - cl_khr_local_int32_extended_atomics DONE (nvc0, r600, radeonsi) 696 697 698Clover OpenCL 1.2 -- all DONE: 699 700 Custom devices DONE 701 Built-in kernels in progress 702 Device partitioning not started 703 Separate compilation and linking of programs DONE 704 Extend cl_mem_flags DONE 705 clEnqueueFillBuffer, clEnqueueFillImage DONE 706 Add CL_MAP_WRITE_INVALIDATE_REGION to cl_map_flags DONE 707 New image types not started 708 clCreateImage DONE 709 clEnqueueMigrateMemObjects DONE 710 Retrieve kernels information from a program DONE 711 clGetKernelArgInfo DONE 712 clEnqueueMarkerWithWaitList DONE 713 clEnqueueBarrierWithWaitList DONE 714 clUnloadPlatformCompiler DONE 715 cl_khr_fp64 DONE (nvc0, r600, radeonsi) 716 printf DONE (nvc0) 717 CL_KERNEL_ATTRIBUTES for clGetKernelInfo DONE 718 OpenCL C 1.2 DONE 719 720 721Clover OpenCL 2.0 -- all DONE: 722 723 Shared virtual memory DONE (nvc0, llvmpipe) 724 Device queues not started 725 - cl_khr_create_command_queue not started 726 - Additional queries for clGetDeviceInfo not started 727 Pipes not started 728 Extended 2D images creation in progress 729 - CL_ABGR DONE 730 - cl_khr_image2d_from_buffer not started 731 - cl_khr_depth_images not started 732 - from sRGB images not started 733 clCreateSamplerWithProperties not started 734 Non-uniform work-group sizes not started 735 cl_khr_3d_image_writes not started 736 OpenCL C 2.0 in progress 737 - Work-group Collective Functions not started 738 - Generic address space in progress 739 740 741Clover OpenCL 2.1 -- all DONE: 742 743 Sub groups not started 744 - cl_khr_subgroups not started 745 cl_khr_il_program DONE (nvc0) 746 Device and host timer synchronization not started 747 clEnqueueSVMMigrateMem not started 748 clCloneKernel not started 749 Default device command queue not started 750 CL_UNORM_INT_101010_2 DONE 751 752 753Clover OpenCL 2.2 -- all DONE: 754 755 clSetProgramSpecializationConstant not started 756 clSetProgramReleaseCallback not started 757 Initialization and clean-up kernels not started 758 CL_MAX_SIZE_RESTRICTION_EXCEEDED for clSetKernelArg not started 759 Support SPIR-V 1.1 and 1.2 not started 760 761 762Clover OpenCL 3.0 -- all DONE: 763 764 Optional device capabilities queries in progress 765 cl_khr_extended_versioning DONE 766 clSetContextDestructorCallback DONE 767 clCreateBufferWithProperties DONE 768 clCreateImageWithProperties DONE 769 Query properties arrays in progress 770 Supported OpenCL C versions and features queries DONE 771 CL_COMMAND_SVM_MIGRATE_MEM for clGetEventInfo not started 772 OpenCL C 3.0 DONE 773 Latest conformance version passed for devices not started 774 775 776Clover extensions that are not part of any OpenCL version: 777 cl_khr_async_copy_fence not started 778 cl_khr_async_work_group_copy_fence not started 779 cl_khr_device_enqueue_local_arg_types not started 780 cl_khr_device_uuid not started 781 cl_khr_egl_event not started 782 cl_khr_egl_image not started 783 cl_khr_expect_assume not started 784 cl_khr_extended_async_copies not started 785 cl_khr_extended_bit_ops not started 786 cl_khr_fp16 DONE () 787 cl_khr_gl_depth_images not started 788 cl_khr_gl_msaa_sharing not started 789 cl_khr_gl_sharing not started 790 cl_khr_icd DONE 791 cl_khr_initialize_memory not started 792 cl_khr_int64_base_atomics DONE () 793 cl_khr_int64_extended_atomics DONE () 794 cl_khr_integer_dot_product not started 795 cl_khr_mipmap_image not started 796 cl_khr_pci_bus_info not started 797 cl_khr_priority_hints not started 798 cl_khr_spirv_extended_debug_info not started 799 cl_khr_spirv_linkonce_odr not started 800 cl_khr_spirv_no_integer_wrap_decoration not started 801 cl_khr_srgb_image_writes not started 802 cl_khr_subgroup_ballot not started 803 cl_khr_subgroup_clustered_reduce not started 804 cl_khr_subgroup_extended_types not started 805 cl_khr_subgroup_named_barrier not started 806 cl_khr_subgroup_non_uniform_arithmetic not started 807 cl_khr_subgroup_non_uniform_vote not started 808 cl_khr_subgroup_rotate not started 809 cl_khr_subgroup_shuffle not started 810 cl_khr_subgroup_shuffle_relative not started 811 cl_khr_suggested_local_work_size not started 812 cl_khr_terminate_context not started 813 cl_khr_throttle_hints not started 814 cl_khr_work_group_uniform_arithmetic not started 815 cl_arm_non_uniform_work_group_size not started 816 cl_arm_shared_virtual_memory DONE (nvc0) 817 cl_intel_unified_shared_memory not started 818 819 820Rusticl OpenCL 1.0 -- all DONE: 821 822 Image support DONE 823 - Optional image formats in progress 824 825 826Rusticl OpenCL 1.1 -- all DONE: 827 828 Additional queries for clGetDeviceInfo DONE 829 CL_CONTEXT_NUM_DEVICES for clGetContextInfo DONE 830 New optional image formats not started 831 - CL_Rx not started 832 - CL_RGx not started 833 - CL_RGBx not started 834 clCreateSubBuffer DONE 835 Read from, write to, copy rectangular regions DONE 836 clSetMemObjectDestructorCallback DONE 837 Control OpenCL C version when building DONE 838 Query for preferred work-group size multiple DONE 839 Support user events DONE 840 clSetEventCallback DONE 841 Minimum requirement changes for clGetDeviceInfo DONE 842 Arg prerequisite change for clEnqueueNDRangeKernel DONE 843 OpenCL C 1.1 DONE 844 - 3-component vector data types DONE 845 - cl_khr_byte_addressable_store DONE 846 - cl_khr_global_int32_base_atomics DONE 847 - cl_khr_global_int32_extended_atomics DONE 848 - cl_khr_local_int32_base_atomics DONE 849 - cl_khr_local_int32_extended_atomics DONE 850 851 852Rusticl OpenCL 1.2 -- all DONE: 853 854 Custom devices DONE 855 Built-in kernels in progress 856 Device partitioning not started 857 Separate compilation and linking of programs DONE 858 Extend cl_mem_flags DONE 859 clEnqueueFillBuffer, clEnqueueFillImage DONE 860 Add CL_MAP_WRITE_INVALIDATE_REGION to cl_map_flags in progress (flag is ignored) 861 New image types DONE 862 clCreateImage DONE 863 clEnqueueMigrateMemObjects DONE 864 Retrieve kernels information from a program DONE 865 clGetKernelArgInfo DONE 866 clEnqueueMarkerWithWaitList DONE 867 clEnqueueBarrierWithWaitList DONE 868 clUnloadPlatformCompiler DONE 869 cl_khr_fp64 in progress (iris, llvmpipe, nvc0, radeonsi, zink, Available with environment variable RUSTICL_FEATURES=fp64, device dependent.) 870 printf DONE 871 CL_KERNEL_ATTRIBUTES for clGetKernelInfo DONE 872 OpenCL C 1.2 DONE 873 874 875Rusticl OpenCL 2.0 -- all DONE: 876 877 Shared virtual memory in progress (nvc0, llvmpipe) 878 Device queues not started 879 - cl_khr_create_command_queue DONE 880 - Additional queries for clGetDeviceInfo DONE 881 Pipes not started 882 Extended 2D images creation in progress 883 - CL_ABGR DONE 884 - cl_khr_image2d_from_buffer DONE (iris, llvmpipe) 885 - cl_khr_depth_images not started 886 - from sRGB images in progress 887 clCreateSamplerWithProperties DONE 888 Non-uniform work-group sizes not started 889 cl_khr_3d_image_writes DONE (iris, llvmpipe, nvc0, panfrost, radeonsi, zink) 890 OpenCL C 2.0 in progress 891 - Work-group Collective Functions not started 892 - Generic address space in progress 893 894 895Rusticl OpenCL 2.1 -- all DONE: 896 897 Sub groups DONE (iris, llvmpipe, radeonsi) 898 - cl_khr_subgroups in progress 899 cl_khr_il_program DONE 900 Device and host timer synchronization DONE (iris, llvmpipe, radeonsi, zink) 901 clEnqueueSVMMigrateMem in progress (nvc0/gp100, broken) 902 clCloneKernel DONE 903 Default device command queue not started 904 CL_UNORM_INT_101010_2 not started 905 906 907Rusticl OpenCL 2.2 -- all DONE: 908 909 clSetProgramSpecializationConstant DONE 910 clSetProgramReleaseCallback not started 911 Initialization and clean-up kernels not started 912 CL_MAX_SIZE_RESTRICTION_EXCEEDED for clSetKernelArg not started 913 Support SPIR-V 1.1 and 1.2 DONE 914 915 916Rusticl OpenCL 3.0 -- all DONE: iris/gen12 917 918 Optional device capabilities queries DONE 919 cl_khr_extended_versioning DONE 920 clSetContextDestructorCallback DONE 921 clCreateBufferWithProperties DONE 922 clCreateImageWithProperties DONE 923 Query properties arrays DONE 924 Supported OpenCL C versions and features queries DONE 925 CL_COMMAND_SVM_MIGRATE_MEM for clGetEventInfo DONE 926 OpenCL C 3.0 DONE 927 Latest conformance version passed for devices DONE () 928 929 930Rusticl extensions that are not part of any OpenCL version: 931 cl_khr_async_copy_fence not started 932 cl_khr_async_work_group_copy_fence not started 933 cl_khr_device_enqueue_local_arg_types not started 934 cl_khr_device_uuid DONE (iris, llvmpipe, radeonsi, zink) 935 cl_khr_egl_event not started 936 cl_khr_egl_image not started 937 cl_khr_expect_assume in progress (hints are ignored) 938 cl_khr_extended_async_copies not started 939 cl_khr_extended_bit_ops in progress 940 cl_khr_fp16 in progress (llvmpipe, radeonsi, zink, Available with environment variable RUSTICL_FEATURES=fp16) 941 cl_khr_gl_depth_images not started 942 cl_khr_gl_msaa_sharing not started 943 cl_khr_gl_sharing DONE (iris, radeonsi) 944 cl_khr_icd DONE 945 cl_khr_initialize_memory not started 946 cl_khr_int64_base_atomics not started 947 cl_khr_int64_extended_atomics not started 948 cl_khr_integer_dot_product DONE 949 cl_khr_mipmap_image not started 950 cl_khr_pci_bus_info DONE (iris, nvc0, radeonsi, zink) 951 cl_khr_priority_hints not started 952 cl_khr_spirv_extended_debug_info not started 953 cl_khr_spirv_linkonce_odr not started 954 cl_khr_spirv_no_integer_wrap_decoration DONE 955 cl_khr_srgb_image_writes not started 956 cl_khr_subgroup_ballot not started 957 cl_khr_subgroup_clustered_reduce not started 958 cl_khr_subgroup_extended_types not started 959 cl_khr_subgroup_named_barrier not started 960 cl_khr_subgroup_non_uniform_arithmetic not started 961 cl_khr_subgroup_non_uniform_vote not started 962 cl_khr_subgroup_rotate not started 963 cl_khr_subgroup_shuffle DONE (iris, llvmpipe, radeonsi) 964 cl_khr_subgroup_shuffle_relative DONE (iris, llvmpipe, radeonsi) 965 cl_khr_suggested_local_work_size not started 966 cl_khr_terminate_context not started 967 cl_khr_throttle_hints not started 968 cl_khr_work_group_uniform_arithmetic not started 969 cl_arm_non_uniform_work_group_size not started 970 cl_arm_shared_virtual_memory in progress (nvc0) 971 cl_intel_unified_shared_memory not started 972 973 974The following extensions are not part of any OpenCL version, and we DO NOT WANT 975implementations of these extensions for Mesa. 976 cl_khr_spir Superseded by cl_khr_il_program 977 cl_nv_d3d10_sharing Superseded by cl_khr_d3d10_sharing 978 cl_nv_d3d11_sharing Superseded by cl_khr_d3d10_sharing 979 980A graphical representation of this information can be found at 981https://mesamatrix.net/ 982