7ccc097c9dbe7a5ddb14ce49cb284c4411331f9a
[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, swr, virgl
40
41 glBindFragDataLocation, glGetFragDataLocation DONE
42 GL_NV_conditional_render (Conditional rendering) DONE ()
43 GL_ARB_map_buffer_range (Map buffer subranges) DONE ()
44 GL_ARB_color_buffer_float (Clamping controls) DONE ()
45 GL_ARB_texture_float (Float textures, renderbuffers) DONE ()
46 GL_EXT_packed_float DONE ()
47 GL_EXT_texture_shared_exponent DONE ()
48 GL_ARB_depth_buffer_float (Float depth buffers) DONE ()
49 GL_ARB_framebuffer_object (Framebuffer objects) DONE ()
50 GL_ARB_half_float_pixel DONE (all drivers)
51 GL_ARB_half_float_vertex DONE ()
52 GL_EXT_texture_integer DONE ()
53 GL_EXT_texture_array DONE ()
54 GL_EXT_draw_buffers2 (Per-buffer blend and masks) DONE ()
55 GL_EXT_texture_compression_rgtc DONE ()
56 GL_ARB_texture_rg DONE ()
57 GL_EXT_transform_feedback (Transform feedback) DONE ()
58 GL_ARB_vertex_array_object (Vertex array objects) DONE ()
59 GL_EXT_framebuffer_sRGB (sRGB framebuffer format) DONE ()
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
66 Multisample anti-aliasing DONE (freedreno/a5xx+, freedreno (*), llvmpipe (*), softpipe (*), swr (*))
67
68 (*) freedreno (a2xx-a4xx), llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support
69
70
71 GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl
72
73 Forward compatible context support/deprecations DONE ()
74 GL_ARB_draw_instanced (Instanced drawing) DONE ()
75 GL_ARB_copy_buffer (Buffer copying) DONE ()
76 GL_NV_primitive_restart (Primitive restart) DONE ()
77 16 vertex texture image units DONE ()
78 GL_ARB_texture_buffer_object (Texture buffer objs) DONE (for OpenGL 3.1 contexts)
79 GL_ARB_texture_rectangle (Rectangular textures) DONE ()
80 GL_ARB_uniform_buffer_object (Uniform buffer objs) DONE ()
81 GL_EXT_texture_snorm (Signed normalized textures) DONE ()
82
83
84 GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl
85
86 Core/compatibility profiles DONE
87 Geometry shaders DONE ()
88 GL_ARB_vertex_array_bgra (BGRA vertex order) DONE (freedreno)
89 GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (freedreno)
90 GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (freedreno)
91 GL_ARB_provoking_vertex (Provoking vertex) DONE (freedreno)
92 GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (freedreno)
93 GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx+)
94 GL_ARB_depth_clamp (Frag depth clamp) DONE (freedreno)
95 GL_ARB_sync (Fence objects) DONE (freedreno)
96 GLX_ARB_create_context_profile DONE
97
98
99 GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl
100
101 GL_ARB_blend_func_extended DONE (freedreno/a3xx, swr)
102 GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
103 GL_ARB_occlusion_query2 DONE (freedreno, swr)
104 GL_ARB_sampler_objects DONE (all drivers)
105 GL_ARB_shader_bit_encoding DONE (freedreno, swr)
106 GL_ARB_texture_rgb10_a2ui DONE (freedreno, swr)
107 GL_ARB_texture_swizzle DONE (freedreno, swr)
108 GL_ARB_timer_query DONE (freedreno, swr)
109 GL_ARB_instanced_arrays DONE (freedreno, swr)
110 GL_ARB_vertex_type_2_10_10_10_rev DONE (freedreno, swr)
111
112
113 GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
114
115 GL_ARB_draw_buffers_blend DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
116 GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, llvmpipe, softpipe, swr)
117 GL_ARB_gpu_shader5 DONE (i965/gen7+)
118 - 'precise' qualifier DONE (softpipe)
119 - Dynamically uniform sampler array indices DONE (softpipe)
120 - Dynamically uniform UBO array indices DONE (freedreno, softpipe)
121 - Implicit signed -> unsigned conversions DONE (softpipe)
122 - Fused multiply-add DONE (softpipe)
123 - Packing/bitfield/conversion functions DONE (freedreno, softpipe)
124 - Enhanced textureGather DONE (freedreno, softpipe, swr)
125 - Geometry shader instancing DONE (llvmpipe, softpipe, swr)
126 - Geometry shader multiple streams DONE (softpipe, swr)
127 - Enhanced per-sample shading DONE ()
128 - Interpolation functions DONE (softpipe)
129 - New overload resolution rules DONE (softpipe)
130 GL_ARB_gpu_shader_fp64 DONE (i965/gen7+, llvmpipe, softpipe, swr)
131 GL_ARB_sample_shading DONE (freedreno/a6xx, i965/gen6+, nv50)
132 GL_ARB_shader_subroutine DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
133 GL_ARB_tessellation_shader DONE (i965/gen7+)
134 GL_ARB_texture_buffer_object_rgb32 DONE (freedreno, i965/gen6+, llvmpipe, softpipe, swr)
135 GL_ARB_texture_cube_map_array DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
136 GL_ARB_texture_gather DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
137 GL_ARB_texture_query_lod DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
138 GL_ARB_transform_feedback2 DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
139 GL_ARB_transform_feedback3 DONE (i965/gen7+, llvmpipe, softpipe, swr)
140
141
142 GL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
143
144 GL_ARB_ES2_compatibility DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
145 GL_ARB_get_program_binary DONE (0 or 1 binary formats)
146 GL_ARB_separate_shader_objects DONE (all drivers)
147 GL_ARB_shader_precision DONE (i965/gen7+, all drivers that support GLSL 4.10)
148 GL_ARB_vertex_attrib_64bit DONE (i965/gen7+, llvmpipe, softpipe, swr)
149 GL_ARB_viewport_array DONE (i965, nv50, llvmpipe, softpipe, swr)
150
151
152 GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
153
154 GL_ARB_texture_compression_bptc DONE (freedreno, i965)
155 GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
156 GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965, llvmpipe, softpipe)
157 GL_ARB_texture_storage DONE (all drivers)
158 GL_ARB_transform_feedback_instanced DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
159 GL_ARB_base_instance DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
160 GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965, llvmpipe, softpipe)
161 GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
162 GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
163 GL_ARB_shading_language_packing DONE (all drivers)
164 GL_ARB_internalformat_query DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
165 GL_ARB_map_buffer_alignment DONE (all drivers)
166
167
168 GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, virgl
169
170 GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
171 GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
172 GL_ARB_clear_buffer_object DONE (all drivers)
173 GL_ARB_compute_shader DONE (freedreno/a5xx+, i965, llvmpipe, softpipe)
174 GL_ARB_copy_image DONE (i965, nv50, softpipe, llvmpipe, swr)
175 GL_KHR_debug DONE (all drivers)
176 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
177 GL_ARB_fragment_layer_viewport DONE (i965, nv50, llvmpipe, softpipe, swr)
178 GL_ARB_framebuffer_no_attachments DONE (freedreno, i965, llvmpipe, softpipe)
179 GL_ARB_internalformat_query2 DONE (all drivers)
180 GL_ARB_invalidate_subdata DONE (all drivers)
181 GL_ARB_multi_draw_indirect DONE (freedreno, i965, llvmpipe, softpipe, swr)
182 GL_ARB_program_interface_query DONE (all drivers)
183 GL_ARB_robust_buffer_access_behavior DONE (i965)
184 GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965, llvmpipe, softpipe)
185 GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965, llvmpipe, softpipe)
186 GL_ARB_stencil_texturing DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr)
187 GL_ARB_texture_buffer_range DONE (freedreno, nv50, i965, softpipe, llvmpipe, swr)
188 GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
189 GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
190 GL_ARB_texture_view DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
191 GL_ARB_vertex_attrib_binding DONE (all drivers)
192
193
194 GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi
195
196 GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
197 GL_ARB_buffer_storage DONE (freedreno, i965, nv50, llvmpipe, swr)
198 GL_ARB_clear_texture DONE (i965, nv50, llvmpipe, softpipe, swr)
199 GL_ARB_enhanced_layouts DONE (i965, nv50, llvmpipe, softpipe, virgl)
200 - compile-time constant expressions DONE
201 - explicit byte offsets for blocks DONE
202 - forced alignment within blocks DONE
203 - specified vec4-slot component numbers DONE
204 - specified transform/feedback layout DONE
205 - input/output block locations DONE
206 GL_ARB_multi_bind DONE (all drivers)
207 GL_ARB_query_buffer_object DONE (i965/hsw+, virgl)
208 GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)
209 GL_ARB_texture_stencil8 DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr, virgl)
210 GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)
211
212 GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi, r600
213
214 GL_ARB_ES3_1_compatibility DONE (i965/hsw+, softpipe, virgl)
215 GL_ARB_clip_control DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
216 GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr, virgl)
217 GL_ARB_cull_distance DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)
218 GL_ARB_derivative_control DONE (i965, nv50, softpipe, virgl)
219 GL_ARB_direct_state_access DONE (all drivers)
220 GL_ARB_get_texture_sub_image DONE (all drivers)
221 GL_ARB_shader_texture_image_samples DONE (i965, nv50, virgl)
222 GL_ARB_texture_barrier DONE (freedreno, i965, nv50, virgl)
223 GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
224 GL_KHR_robustness DONE (freedreno, i965)
225 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
226
227 GL 4.6, GLSL 4.60
228
229 GL_ARB_gl_spirv DONE (i965/gen7+)
230 GL_ARB_indirect_parameters DONE (i965/gen7+, nvc0, radeonsi, virgl)
231 GL_ARB_pipeline_statistics_query DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
232 GL_ARB_polygon_offset_clamp DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, swr, virgl)
233 GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl)
234 GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi)
235 GL_ARB_shader_group_vote DONE (i965, nvc0, radeonsi)
236 GL_ARB_spirv_extensions DONE (i965/gen7+)
237 GL_ARB_texture_filter_anisotropic DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, softpipe (*), llvmpipe (*))
238 GL_ARB_transform_feedback_overflow_query DONE (i965/gen6+, nvc0, radeonsi, llvmpipe, softpipe, virgl)
239 GL_KHR_no_error DONE (all drivers)
240
241 (*) softpipe and llvmpipe advertise 16x anisotropy but simply ignore the setting
242
243 These are the extensions cherry-picked to make GLES 3.1
244 GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl
245
246 GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
247 GL_ARB_compute_shader DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
248 GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, llvmpipe, softpipe, swr)
249 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
250 GL_ARB_framebuffer_no_attachments DONE (freedreno, i965/gen7+, llvmpipe, softpipe)
251 GL_ARB_program_interface_query DONE (all drivers)
252 GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
253 GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
254 GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
255 GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
256 GL_ARB_shading_language_packing DONE (all drivers)
257 GL_ARB_separate_shader_objects DONE (all drivers)
258 GL_ARB_stencil_texturing DONE (freedreno, nv50, llvmpipe, softpipe, swr)
259 GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx+, i965/gen7+, nv50, llvmpipe, softpipe)
260 GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
261 GL_ARB_vertex_attrib_binding DONE (all drivers)
262 GS5 Enhanced textureGather DONE (freedreno, i965/gen7+)
263 GS5 Packing/bitfield/conversion functions DONE (freedreno/a5xx+, i965/gen6+)
264 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
265
266 Additional functionality not covered above:
267 glMemoryBarrierByRegion DONE
268 glGetTexLevelParameter[fi]v - needs updates DONE
269 glGetBooleani_v - restrict to GLES enums
270 gl_HelperInvocation support DONE (i965, r600)
271
272 GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+, radeonsi, virgl
273
274 GL_EXT_color_buffer_float DONE (all drivers)
275 GL_KHR_blend_equation_advanced DONE (freedreno/a6xx, i965, nvc0)
276 GL_KHR_debug DONE (all drivers)
277 GL_KHR_robustness DONE (freedreno, i965, nvc0)
278 GL_KHR_texture_compression_astc_ldr DONE (freedreno, i965/gen9+)
279 GL_OES_copy_image DONE (all drivers)
280 GL_OES_draw_buffers_indexed DONE (all drivers that support GL_ARB_draw_buffers_blend)
281 GL_OES_draw_elements_base_vertex DONE (all drivers)
282 GL_OES_geometry_shader DONE (i965/hsw+, nvc0, softpipe)
283 GL_OES_gpu_shader5 DONE (freedreno/a6xx, all drivers that support GL_ARB_gpu_shader5)
284 GL_OES_primitive_bounding_box DONE (freedreno/a5xx+, i965/gen7+, nvc0, softpipe)
285 GL_OES_sample_shading DONE (freedreno/a6xx, i965, nvc0, r600)
286 GL_OES_sample_variables DONE (freedreno/a6xx, i965, nvc0, r600)
287 GL_OES_shader_image_atomic DONE (all drivers that support GL_ARB_shader_image_load_store)
288 GL_OES_shader_io_blocks DONE (All drivers that support GLES 3.1)
289 GL_OES_shader_multisample_interpolation DONE (freedreno/a6xx, i965, nvc0, r600)
290 GL_OES_tessellation_shader DONE (all drivers that support GL_ARB_tessellation_shader)
291 GL_OES_texture_border_clamp DONE (all drivers)
292 GL_OES_texture_buffer DONE (freedreno, i965, nvc0, softpipe)
293 GL_OES_texture_cube_map_array DONE (i965/hsw+, nvc0, softpipe)
294 GL_OES_texture_stencil8 DONE (all drivers that support GL_ARB_texture_stencil8)
295 GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample)
296
297 Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:
298
299 GL_ARB_bindless_texture DONE (nvc0, radeonsi)
300 GL_ARB_cl_event not started
301 GL_ARB_compute_variable_group_size DONE (nvc0, radeonsi)
302 GL_ARB_ES3_2_compatibility DONE (i965/gen8+, radeonsi, virgl)
303 GL_ARB_fragment_shader_interlock DONE (i965)
304 GL_ARB_gpu_shader_int64 DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe)
305 GL_ARB_parallel_shader_compile DONE (all drivers)
306 GL_ARB_post_depth_coverage DONE (i965, nvc0, radeonsi)
307 GL_ARB_robustness_isolation not started
308 GL_ARB_sample_locations DONE (nvc0)
309 GL_ARB_seamless_cubemap_per_texture DONE (etnaviv/SEAMLESS_CUBE_MAP, freedreno, i965, nvc0, radeonsi, r600, softpipe, swr, virgl)
310 GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi)
311 GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, virgl)
312 GL_ARB_shader_stencil_export DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr, virgl)
313 GL_ARB_shader_viewport_layer_array DONE (i965/gen6+, nvc0, radeonsi)
314 GL_ARB_sparse_buffer DONE (radeonsi/CIK+)
315 GL_ARB_sparse_texture not started
316 GL_ARB_sparse_texture2 not started
317 GL_ARB_sparse_texture_clamp not started
318 GL_ARB_texture_filter_minmax not started
319 GL_EXT_memory_object DONE (radeonsi)
320 GL_EXT_memory_object_fd DONE (radeonsi)
321 GL_EXT_memory_object_win32 not started
322 GL_EXT_render_snorm DONE (i965, radeonsi)
323 GL_EXT_semaphore DONE (radeonsi)
324 GL_EXT_semaphore_fd DONE (radeonsi)
325 GL_EXT_semaphore_win32 not started
326 GL_EXT_sRGB_write_control DONE (all drivers that support GLES 3.0+)
327 GL_EXT_texture_norm16 DONE (freedreno, i965, r600, radeonsi, nvc0)
328 GL_EXT_texture_sRGB_R8 DONE (all drivers that support GLES 3.0+)
329 GL_KHR_blend_equation_advanced_coherent DONE (i965/gen9+)
330 GL_KHR_texture_compression_astc_hdr DONE (i965/bxt)
331 GL_KHR_texture_compression_astc_sliced_3d DONE (i965/gen9+, radeonsi)
332 GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+)
333 GL_OES_EGL_image DONE (all drivers)
334 GL_OES_EGL_image_external DONE (all drivers)
335 GL_OES_EGL_image_external_essl3 DONE (all drivers)
336 GL_OES_required_internalformat DONE (all drivers)
337 GL_OES_surfaceless_context DONE (all drivers)
338 GL_OES_texture_compression_astc DONE (core only)
339 GL_OES_texture_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
340 GL_OES_texture_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
341 GL_OES_texture_half_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
342 GL_OES_texture_half_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
343 GL_OES_texture_view DONE (freedreno, i965/gen8+, r600, radeonsi, nv50, nvc0, softpipe, llvmpipe, swr)
344 GL_OES_viewport_array DONE (i965, nvc0, radeonsi, softpipe)
345 GLX_ARB_context_flush_control not started
346 GLX_ARB_robustness_application_isolation not started
347 GLX_ARB_robustness_share_group_isolation not started
348
349 GL_EXT_direct_state_access subfeatures (in the spec order):
350 GL 1.1: Client commands DONE
351 GL 1.0-1.3: Matrix and transpose matrix commands DONE
352 GL 1.1-1.2: Texture commands DONE
353 GL 1.2: 3D texture commands DONE
354 GL 1.2.1: Multitexture commands DONE
355 GL 1.2.1-3.0: Indexed texture commands DONE
356 GL 1.2.1-3.0: Indexed generic queries DONE
357 GL 1.2.1: EnableIndexed.. Get*Indexed DONE
358 GL_ARB_vertex_program DONE
359 GL 1.3: Compressed texture and multitexture commands DONE
360 GL 1.5: Buffer commands DONE
361 GL 2.0-2.1: Uniform and uniform matrix commands DONE
362 GL_EXT_texture_buffer_object DONE
363 GL_EXT_texture_integer DONE
364 GL_EXT_gpu_shader4 DONE
365 GL_EXT_gpu_program_parameters DONE
366 GL_NV_gpu_program4 n/a
367 GL_NV_framebuffer_multisample_coverage n/a
368 GL 3.0: Renderbuffer/framebuffer commands, Gen*Mipmap DONE
369 GL 3.0: CopyBuffer command DONE
370 GL_EXT_geometry_shader4 commands (expose in GL 3.2) DONE
371 GL_NV_explicit_multisample n/a
372 GL 3.0: Vertex array/attrib/query/map commands DONE
373 Matrix GL tokens DONE
374
375 GL_EXT_direct_state_access additions from other extensions (complete list):
376 GL_AMD_framebuffer_sample_positions n/a
377 GL_AMD_gpu_shader_int64 n/a (not enabled in compat profile)
378 GL_ARB_bindless_texture DONE
379 GL_ARB_buffer_storage DONE
380 GL_ARB_clear_buffer_object DONE
381 GL_ARB_framebuffer_no_attachments DONE
382 GL_ARB_gpu_shader_fp64 DONE
383 GL_ARB_instanced_arrays DONE
384 GL_ARB_internalformat_query2 DONE
385 GL_ARB_sparse_texture n/a
386 GL_ARB_sparse_buffer not started
387 GL_ARB_texture_buffer_range not started
388 GL_ARB_texture_storage DONE
389 GL_ARB_texture_storage_multisample not started
390 GL_ARB_vertex_attrib_64bit DONE
391 GL_ARB_vertex_attrib_binding DONE
392 GL_EXT_buffer_storage DONE
393 GL_EXT_external_buffer n/a
394 GL_EXT_separate_shader_objects n/a
395 GL_EXT_sparse_texture n/a
396 GL_EXT_texture_storage n/a
397 GL_EXT_vertex_attrib_64bit DONE
398 GL_EXT_EGL_image_storage n/a
399 GL_NV_bindless_texture n/a
400 GL_NV_gpu_shader5 n/a
401 GL_NV_texture_multisample n/a
402 GL_NV_vertex_buffer_unified_memory n/a
403 GL_NVX_linked_gpu_multicast n/a
404 GLX_NV_copy_buffer n/a
405
406 The following extensions are not part of any OpenGL or OpenGL ES version, and
407 we DO NOT WANT implementations of these extensions for Mesa.
408
409 GL_ARB_geometry_shader4 Superseded by GL 3.2 geometry shaders
410 GL_ARB_matrix_palette Superseded by GL_ARB_vertex_program
411 GL_ARB_shading_language_include Not interesting
412 GL_ARB_shadow_ambient Superseded by GL_ARB_fragment_program
413 GL_ARB_vertex_blend Superseded by GL_ARB_vertex_program
414
415 Vulkan 1.0 -- all DONE: anv, radv
416
417 Vulkan 1.1 -- all DONE: anv, radv
418
419 VK_KHR_16bit_storage DONE (anv/gen8+, radv)
420 VK_KHR_bind_memory2 DONE (anv, radv)
421 VK_KHR_dedicated_allocation DONE (anv, radv)
422 VK_KHR_descriptor_update_template DONE (anv, radv)
423 VK_KHR_device_group not started
424 VK_KHR_device_group_creation not started
425 VK_KHR_external_fence DONE (anv, radv)
426 VK_KHR_external_fence_capabilities DONE (anv, radv)
427 VK_KHR_external_memory DONE (anv, radv)
428 VK_KHR_external_memory_capabilities DONE (anv, radv)
429 VK_KHR_external_semaphore DONE (anv, radv)
430 VK_KHR_external_semaphore_capabilities DONE (anv, radv)
431 VK_KHR_get_memory_requirements2 DONE (anv, radv)
432 VK_KHR_get_physical_device_properties2 DONE (anv, radv)
433 VK_KHR_maintenance1 DONE (anv, radv)
434 VK_KHR_maintenance2 DONE (anv, radv)
435 VK_KHR_maintenance3 DONE (anv, radv)
436 VK_KHR_multiview DONE (anv, radv)
437 VK_KHR_relaxed_block_layout DONE (anv, radv)
438 VK_KHR_sampler_ycbcr_conversion DONE (anv, radv)
439 VK_KHR_shader_draw_parameters DONE (anv, radv)
440 VK_KHR_storage_buffer_storage_class DONE (anv, radv)
441 VK_KHR_variable_pointers DONE (anv, radv)
442
443 Khronos extensions that are not part of any Vulkan version:
444
445 VK_KHR_8bit_storage DONE (anv/gen8+, radv)
446 VK_KHR_android_surface not started
447 VK_KHR_create_renderpass2 DONE (anv, radv)
448 VK_KHR_depth_stencil_resolve DONE (anv, radv)
449 VK_KHR_display DONE (anv, radv)
450 VK_KHR_display_swapchain not started
451 VK_KHR_draw_indirect_count DONE (anv, radv)
452 VK_KHR_driver_properties DONE (anv, radv)
453 VK_KHR_external_fence_fd DONE (anv, radv)
454 VK_KHR_external_fence_win32 not started
455 VK_KHR_external_memory_fd DONE (anv, radv)
456 VK_KHR_external_memory_win32 not started
457 VK_KHR_external_semaphore_fd DONE (anv, radv)
458 VK_KHR_external_semaphore_win32 not started
459 VK_KHR_get_display_properties2 DONE (anv, radv)
460 VK_KHR_get_surface_capabilities2 DONE (anv, radv)
461 VK_KHR_image_format_list DONE (anv, radv)
462 VK_KHR_imageless_framebuffer DONE (anv, radv)
463 VK_KHR_incremental_present DONE (anv, radv)
464 VK_KHR_mir_surface not started
465 VK_KHR_pipeline_executable_properties DONE (anv, radv)
466 VK_KHR_push_descriptor DONE (anv, radv)
467 VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, radv)
468 VK_KHR_shader_atomic_int64 DONE (anv, radv)
469 VK_KHR_shader_float16_int8 DONE (anv/gen8+, radv)
470 VK_KHR_shader_float_controls DONE (anv/gen8+)
471 VK_KHR_shader_subgroup_extended_types not started
472 VK_KHR_shared_presentable_image not started
473 VK_KHR_surface DONE (anv, radv)
474 VK_KHR_surface_protected_capabilities DONE (anv, radv)
475 VK_KHR_swapchain DONE (anv, radv)
476 VK_KHR_swapchain_mutable_format not started
477 VK_KHR_uniform_buffer_standard_layout DONE (anv, radv)
478 VK_KHR_vulkan_memory_model not started
479 VK_KHR_wayland_surface DONE (anv, radv)
480 VK_KHR_win32_keyed_mutex not started
481 VK_KHR_win32_surface not started
482 VK_KHR_xcb_surface DONE (anv, radv)
483 VK_KHR_xlib_surface DONE (anv, radv)
484
485
486 A graphical representation of this information can be found at
487 https://mesamatrix.net/