blob: 4b2bf2c69fb2b2709682a9fb3534aef10bd2e734 [file] [log] [blame]
Romain Failliote571f112016-03-15 16:14:08 -04001# Status of OpenGL extensions in Mesa
Brian Paul9b0bbe12009-12-30 10:39:20 -07002
Romain Failliote571f112016-03-15 16:14:08 -04003Here's how to read this file:
Brian Paul9b0bbe12009-12-30 10:39:20 -07004
Romain Failliote571f112016-03-15 16:14:08 -04005all DONE: <driver>, ...
6 All the extensions are done for the given list of drivers.
Brian Paul9b0bbe12009-12-30 10:39:20 -07007
Romain Failliote571f112016-03-15 16:14:08 -04008DONE
9 The extension is done for Mesa and no implementation is necessary on the
10 driver-side.
Brian Paul9b0bbe12009-12-30 10:39:20 -070011
Romain Failliote571f112016-03-15 16:14:08 -040012DONE ()
13 The extension is done for Mesa and all the drivers in the "all DONE" list.
Brian Paul9b0bbe12009-12-30 10:39:20 -070014
Romain Failliote571f112016-03-15 16:14:08 -040015DONE (<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
Marek Olšákc40f8d02013-07-30 22:29:11 +020026
27OpenGL 3.1 and later versions are only supported with the Core profile.
28There are no plans to support GL_ARB_compatibility. The last supported OpenGL
29version with all deprecated features is 3.0. Some of the later GL features
30are exposed in the 3.0 context as extensions.
31
32
Romain Failliot3671bb32016-03-15 16:14:09 -040033Feature Status
34------------------------------------------------------- ------------------------
Brian Paul9b0bbe12009-12-30 10:39:20 -070035
Romain Failliot8d8ed432017-01-03 10:41:22 -050036GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
Brian Paul9b0bbe12009-12-30 10:39:20 -070037
Joerg Mayerf9868922013-11-16 22:13:03 +000038 glBindFragDataLocation, glGetFragDataLocation DONE
Romain Failliot15172412016-03-15 16:14:11 -040039 GL_NV_conditional_render (Conditional rendering) DONE ()
40 GL_ARB_map_buffer_range (Map buffer subranges) DONE ()
41 GL_ARB_color_buffer_float (Clamping controls) DONE ()
42 GL_ARB_texture_float (Float textures, renderbuffers) DONE ()
Joerg Mayerf9868922013-11-16 22:13:03 +000043 GL_EXT_packed_float DONE ()
Marek Olšák4e46af02015-03-16 23:19:17 +010044 GL_EXT_texture_shared_exponent DONE ()
Romain Failliot15172412016-03-15 16:14:11 -040045 GL_ARB_depth_buffer_float (Float depth buffers) DONE ()
46 GL_ARB_framebuffer_object (Framebuffer objects) DONE ()
Ian Romanick1edca152014-01-13 15:23:48 -080047 GL_ARB_half_float_pixel DONE (all drivers)
Marek Olšák4e46af02015-03-16 23:19:17 +010048 GL_ARB_half_float_vertex DONE ()
Marek Olšák0ad57be2013-12-04 00:25:55 +010049 GL_EXT_texture_integer DONE ()
50 GL_EXT_texture_array DONE ()
Romain Failliot15172412016-03-15 16:14:11 -040051 GL_EXT_draw_buffers2 (Per-buffer blend and masks) DONE ()
Marek Olšák4e46af02015-03-16 23:19:17 +010052 GL_EXT_texture_compression_rgtc DONE ()
53 GL_ARB_texture_rg DONE ()
Romain Failliot15172412016-03-15 16:14:11 -040054 GL_EXT_transform_feedback (Transform feedback) DONE ()
55 GL_ARB_vertex_array_object (Vertex array objects) DONE ()
56 GL_EXT_framebuffer_sRGB (sRGB framebuffer format) DONE ()
Joerg Mayerf9868922013-11-16 22:13:03 +000057 glClearBuffer commands DONE
58 glGetStringi command DONE
59 glTexParameterI, glGetTexParameterI commands DONE
60 glVertexAttribI commands DONE
61 Depth format cube textures DONE ()
62 GLX_ARB_create_context (GLX 1.4 is required) DONE
Romain Failliot8d8ed432017-01-03 10:41:22 -050063 Multisample anti-aliasing DONE (freedreno (*), llvmpipe (*), softpipe (*), swr (*))
Brian Paul9b0bbe12009-12-30 10:39:20 -070064
Romain Failliot8d8ed432017-01-03 10:41:22 -050065(*) freedreno, llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support
Brian Paul9b0bbe12009-12-30 10:39:20 -070066
Roland Scheidegger17eabfe2014-08-25 18:21:53 +020067
Romain Failliot8d8ed432017-01-03 10:41:22 -050068GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
Brian Paul9b0bbe12009-12-30 10:39:20 -070069
Joerg Mayerf9868922013-11-16 22:13:03 +000070 Forward compatible context support/deprecations DONE ()
Romain Failliot15172412016-03-15 16:14:11 -040071 GL_ARB_draw_instanced (Instanced drawing) DONE ()
72 GL_ARB_copy_buffer (Buffer copying) DONE ()
73 GL_NV_primitive_restart (Primitive restart) DONE ()
Joerg Mayerf9868922013-11-16 22:13:03 +000074 16 vertex texture image units DONE ()
Romain Failliot15172412016-03-15 16:14:11 -040075 GL_ARB_texture_buffer_object (Texture buffer objs) DONE (for OpenGL 3.1 contexts)
76 GL_ARB_texture_rectangle (Rectangular textures) DONE ()
77 GL_ARB_uniform_buffer_object (Uniform buffer objs) DONE ()
78 GL_EXT_texture_snorm (Signed normalized textures) DONE ()
Brian Paul9b0bbe12009-12-30 10:39:20 -070079
80
Tim Rowleybb8a4242017-03-02 16:45:53 -060081GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr
Brian Paul9b0bbe12009-12-30 10:39:20 -070082
Joerg Mayerf9868922013-11-16 22:13:03 +000083 Core/compatibility profiles DONE
Joerg Mayerf9868922013-11-16 22:13:03 +000084 Geometry shaders DONE ()
Tim Rowleybb8a4242017-03-02 16:45:53 -060085 GL_ARB_vertex_array_bgra (BGRA vertex order) DONE (freedreno)
86 GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (freedreno)
87 GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (freedreno)
88 GL_ARB_provoking_vertex (Provoking vertex) DONE (freedreno)
89 GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (freedreno)
90 GL_ARB_texture_multisample (Multisample textures) DONE ()
91 GL_ARB_depth_clamp (Frag depth clamp) DONE (freedreno)
92 GL_ARB_sync (Fence objects) DONE (freedreno)
Joerg Mayerf9868922013-11-16 22:13:03 +000093 GLX_ARB_create_context_profile DONE
Brian Paul9b0bbe12009-12-30 10:39:20 -070094
95
Roland Scheidegger17eabfe2014-08-25 18:21:53 +020096GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
Brian Pauld35c2ca2010-05-11 21:03:53 -060097
Romain Failliot8d8ed432017-01-03 10:41:22 -050098 GL_ARB_blend_func_extended DONE (freedreno/a3xx, swr)
Ian Romanickbc0ed682014-01-13 14:48:16 -080099 GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
Romain Failliot8d8ed432017-01-03 10:41:22 -0500100 GL_ARB_occlusion_query2 DONE (freedreno, swr)
Ian Romanickbc0ed682014-01-13 14:48:16 -0800101 GL_ARB_sampler_objects DONE (all drivers)
Romain Failliot8d8ed432017-01-03 10:41:22 -0500102 GL_ARB_shader_bit_encoding DONE (freedreno, swr)
103 GL_ARB_texture_rgb10_a2ui DONE (freedreno, swr)
104 GL_ARB_texture_swizzle DONE (freedreno, swr)
Rob Clark1831e3f2017-11-17 15:18:14 -0500105 GL_ARB_timer_query DONE (freedreno, swr)
Romain Failliot8d8ed432017-01-03 10:41:22 -0500106 GL_ARB_instanced_arrays DONE (freedreno, swr)
107 GL_ARB_vertex_type_2_10_10_10_rev DONE (freedreno, swr)
Brian Pauld35c2ca2010-05-11 21:03:53 -0600108
109
Samuel Iglesias Gonsálvezef49dda2016-10-11 10:59:52 +0200110GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi
Brian Pauld35c2ca2010-05-11 21:03:53 -0600111
Romain Failliot8d8ed432017-01-03 10:41:22 -0500112 GL_ARB_draw_buffers_blend DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
Ilia Mirkin4f748d12017-11-19 16:32:12 -0500113 GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, llvmpipe, softpipe, swr)
Ian Romanickd1fbd4c2016-05-16 11:30:19 -0700114 GL_ARB_gpu_shader5 DONE (i965/gen7+)
Romain Failliot3671bb32016-03-15 16:14:09 -0400115 - 'precise' qualifier DONE
116 - Dynamically uniform sampler array indices DONE (softpipe)
117 - Dynamically uniform UBO array indices DONE ()
118 - Implicit signed -> unsigned conversions DONE
119 - Fused multiply-add DONE ()
120 - Packing/bitfield/conversion functions DONE (softpipe)
121 - Enhanced textureGather DONE (softpipe)
122 - Geometry shader instancing DONE (llvmpipe, softpipe)
123 - Geometry shader multiple streams DONE ()
124 - Enhanced per-sample shading DONE ()
125 - Interpolation functions DONE ()
126 - New overload resolution rules DONE
Samuel Iglesias Gonsálvezef49dda2016-10-11 10:59:52 +0200127 GL_ARB_gpu_shader_fp64 DONE (i965/gen7+, llvmpipe, softpipe)
Ian Romanickd1fbd4c2016-05-16 11:30:19 -0700128 GL_ARB_sample_shading DONE (i965/gen6+, nv50)
Rob Clark1831e3f2017-11-17 15:18:14 -0500129 GL_ARB_shader_subroutine DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
Ian Romanickd1fbd4c2016-05-16 11:30:19 -0700130 GL_ARB_tessellation_shader DONE (i965/gen7+)
Rob Clark1831e3f2017-11-17 15:18:14 -0500131 GL_ARB_texture_buffer_object_rgb32 DONE (freedreno, i965/gen6+, llvmpipe, softpipe, swr)
Ian Romanickd1fbd4c2016-05-16 11:30:19 -0700132 GL_ARB_texture_cube_map_array DONE (i965/gen6+, nv50, llvmpipe, softpipe)
Ilia Mirkin86f12e92017-11-19 12:28:53 -0500133 GL_ARB_texture_gather DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
Rob Clark1831e3f2017-11-17 15:18:14 -0500134 GL_ARB_texture_query_lod DONE (freedreno, i965, nv50, llvmpipe, softpipe)
Kenneth Graunkeed6b47f2017-02-17 10:18:35 -0800135 GL_ARB_transform_feedback2 DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
Ilia Mirkin3fdeb7c2016-10-14 00:03:12 -0400136 GL_ARB_transform_feedback3 DONE (i965/gen7+, llvmpipe, softpipe, swr)
Marek Olšák2892c8b2010-11-21 22:54:33 +0100137
138
Francisco Jerez96dfc012017-04-14 15:59:52 -0700139GL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi
Marek Olšák2892c8b2010-11-21 22:54:33 +0100140
Rob Clark1831e3f2017-11-17 15:18:14 -0500141 GL_ARB_ES2_compatibility DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
Jordan Justen4d81c8e2017-11-20 13:42:33 -0800142 GL_ARB_get_program_binary DONE (0 or 1 binary formats)
Romain Failliot3671bb32016-03-15 16:14:09 -0400143 GL_ARB_separate_shader_objects DONE (all drivers)
Francisco Jerez96dfc012017-04-14 15:59:52 -0700144 GL_ARB_shader_precision DONE (i965/gen7+, all drivers that support GLSL 4.10)
145 GL_ARB_vertex_attrib_64bit DONE (i965/gen7+, llvmpipe, softpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400146 GL_ARB_viewport_array DONE (i965, nv50, llvmpipe, softpipe)
Brian Pauld35c2ca2010-05-11 21:03:53 -0600147
148
Dave Airlie59162c12017-11-15 10:07:03 +1000149GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi
Marek Olšák768589e2012-07-05 20:27:28 +0200150
Rob Clark1831e3f2017-11-17 15:18:14 -0500151 GL_ARB_texture_compression_bptc DONE (freedreno, i965)
Romain Failliot3671bb32016-03-15 16:14:09 -0400152 GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
Rob Clark1831e3f2017-11-17 15:18:14 -0500153 GL_ARB_shader_atomic_counters DONE (freedreno/a5xx, i965, softpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400154 GL_ARB_texture_storage DONE (all drivers)
Rob Clark1831e3f2017-11-17 15:18:14 -0500155 GL_ARB_transform_feedback_instanced DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
156 GL_ARB_base_instance DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
157 GL_ARB_shader_image_load_store DONE (freedreno/a5xx, i965, softpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400158 GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
159 GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
160 GL_ARB_shading_language_packing DONE (all drivers)
Rob Clark1831e3f2017-11-17 15:18:14 -0500161 GL_ARB_internalformat_query DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
Romain Failliot3671bb32016-03-15 16:14:09 -0400162 GL_ARB_map_buffer_alignment DONE (all drivers)
Brian Pauld35c2ca2010-05-11 21:03:53 -0600163
Brian Paul90894362010-01-05 16:03:11 -0700164
Dave Airlie8de6d4b2017-12-18 04:28:07 +0000165GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi
Jason Wood56c1f552012-08-06 13:47:27 -0600166
Romain Failliot3671bb32016-03-15 16:14:09 -0400167 GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
168 GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
169 GL_ARB_clear_buffer_object DONE (all drivers)
Rob Clark1831e3f2017-11-17 15:18:14 -0500170 GL_ARB_compute_shader DONE (freedreno/a5xx, i965, softpipe)
Dave Airlie8de6d4b2017-12-18 04:28:07 +0000171 GL_ARB_copy_image DONE (i965, nv50, softpipe, llvmpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400172 GL_KHR_debug DONE (all drivers)
173 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
Dave Airlie8de6d4b2017-12-18 04:28:07 +0000174 GL_ARB_fragment_layer_viewport DONE (i965, nv50, llvmpipe, softpipe)
175 GL_ARB_framebuffer_no_attachments DONE (freedreno, i965, softpipe)
Dave Airlieee7c8b92016-03-04 12:33:46 +1000176 GL_ARB_internalformat_query2 DONE (all drivers)
Romain Failliot3671bb32016-03-15 16:14:09 -0400177 GL_ARB_invalidate_subdata DONE (all drivers)
Dave Airlie8de6d4b2017-12-18 04:28:07 +0000178 GL_ARB_multi_draw_indirect DONE (freedreno, i965, llvmpipe, softpipe, swr)
Romain Failliot3671bb32016-03-15 16:14:09 -0400179 GL_ARB_program_interface_query DONE (all drivers)
Dave Airlie8de6d4b2017-12-18 04:28:07 +0000180 GL_ARB_robust_buffer_access_behavior DONE (i965)
181 GL_ARB_shader_image_size DONE (freedreno/a5xx, i965, softpipe)
182 GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx, i965, softpipe)
183 GL_ARB_stencil_texturing DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr)
184 GL_ARB_texture_buffer_range DONE (freedreno, nv50, i965, llvmpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400185 GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
186 GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
Dave Airlie8de6d4b2017-12-18 04:28:07 +0000187 GL_ARB_texture_view DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
Romain Failliot3671bb32016-03-15 16:14:09 -0400188 GL_ARB_vertex_attrib_binding DONE (all drivers)
Jason Wood56c1f552012-08-06 13:47:27 -0600189
190
Ilia Mirkin5f885222016-10-13 21:42:54 -0400191GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, radeonsi
Chris Forbes5a7bdd42013-07-23 09:17:47 +1200192
Romain Failliot3671bb32016-03-15 16:14:09 -0400193 GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
Rob Clark1831e3f2017-11-17 15:18:14 -0500194 GL_ARB_buffer_storage DONE (freedreno, i965, nv50, r600, llvmpipe, swr)
Bruce Cherniak74aa6fd2017-02-25 21:17:07 -0600195 GL_ARB_clear_texture DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
Dave Airlie5758a8c2018-01-18 14:09:38 +1000196 GL_ARB_enhanced_layouts DONE (i965, nv50, r600, llvmpipe, softpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400197 - compile-time constant expressions DONE
198 - explicit byte offsets for blocks DONE
199 - forced alignment within blocks DONE
Dave Airlie5758a8c2018-01-18 14:09:38 +1000200 - specified vec4-slot component numbers DONE
Timothy Arcerib2739582016-03-10 16:41:03 +1100201 - specified transform/feedback layout DONE
Romain Failliot3671bb32016-03-15 16:14:09 -0400202 - input/output block locations DONE
203 GL_ARB_multi_bind DONE (all drivers)
Ilia Mirkin5f885222016-10-13 21:42:54 -0400204 GL_ARB_query_buffer_object DONE (i965/hsw+)
205 GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
Ilia Mirkinffdcd512017-11-19 15:13:41 -0500206 GL_ARB_texture_stencil8 DONE (freedreno, i965/hsw+, nv50, r600, llvmpipe, softpipe, swr)
Ilia Mirkin5f885222016-10-13 21:42:54 -0400207 GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
Chris Forbes5a7bdd42013-07-23 09:17:47 +1200208
Edward O'Callaghan1c05f922016-10-14 15:30:50 +1100209GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi
Ilia Mirkin82903ac2014-08-11 15:07:09 -0400210
Dave Airlieae556ba2017-12-27 00:07:25 +0000211 GL_ARB_ES3_1_compatibility DONE (i965/hsw+, r600)
Rob Clark1831e3f2017-11-17 15:18:14 -0500212 GL_ARB_clip_control DONE (freedreno, i965, nv50, r600, llvmpipe, softpipe, swr)
213 GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, r600, llvmpipe, softpipe, swr)
Dave Airlie464c2d82016-05-13 14:35:33 +1000214 GL_ARB_cull_distance DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
Edward O'Callaghan1c05f922016-10-14 15:30:50 +1100215 GL_ARB_derivative_control DONE (i965, nv50, r600)
Romain Failliot3671bb32016-03-15 16:14:09 -0400216 GL_ARB_direct_state_access DONE (all drivers)
217 GL_ARB_get_texture_sub_image DONE (all drivers)
Edward O'Callaghan1c05f922016-10-14 15:30:50 +1100218 GL_ARB_shader_texture_image_samples DONE (i965, nv50, r600)
Rob Clark1831e3f2017-11-17 15:18:14 -0500219 GL_ARB_texture_barrier DONE (freedreno, i965, nv50, r600)
Romain Failliot3671bb32016-03-15 16:14:09 -0400220 GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
Edward O'Callaghan1c05f922016-10-14 15:30:50 +1100221 GL_KHR_robustness DONE (i965)
Romain Failliot3671bb32016-03-15 16:14:09 -0400222 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
Ilia Mirkin82903ac2014-08-11 15:07:09 -0400223
Adam Jacksond4ca66a2017-07-31 12:27:21 -0400224GL 4.6, GLSL 4.60
225
226 GL_ARB_gl_spirv in progress (Nicolai Hähnle, Ian Romanick)
Matt Turnere057cda2017-10-02 22:27:46 -0700227 GL_ARB_indirect_parameters DONE (i965/gen7+, nvc0, radeonsi)
Dave Airlie59ca0c42017-11-20 09:19:31 +1000228 GL_ARB_pipeline_statistics_query DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
Rob Clark1831e3f2017-11-17 15:18:14 -0500229 GL_ARB_polygon_offset_clamp DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, swr)
230 GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx, i965/gen7+, nvc0, r600, radeonsi, softpipe)
Adam Jacksond4ca66a2017-07-31 12:27:21 -0400231 GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi)
232 GL_ARB_shader_group_vote DONE (i965, nvc0, radeonsi)
Ilia Mirkin35d71452017-08-06 13:00:18 -0400233 GL_ARB_spirv_extensions in progress (Nicolai Hähnle, Ian Romanick)
Rob Clark1831e3f2017-11-17 15:18:14 -0500234 GL_ARB_texture_filter_anisotropic DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, softpipe (*), llvmpipe (*))
Roland Scheidegger3e962312017-08-15 17:53:49 +0200235 GL_ARB_transform_feedback_overflow_query DONE (i965/gen6+, radeonsi, llvmpipe, softpipe)
Kenneth Graunkeb7045382017-10-24 10:34:10 -0700236 GL_KHR_no_error DONE (all drivers)
Adam Jacksond4ca66a2017-07-31 12:27:21 -0400237
Adam Jackson00caf2a2017-08-24 14:40:32 -0400238(*) softpipe and llvmpipe advertise 16x anisotropy but simply ignore the setting
239
Dave Airliec6323342014-08-11 09:04:47 +1000240These are the extensions cherry-picked to make GLES 3.1
Dave Airlie8de6d4b2017-12-18 04:28:07 +0000241GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi
Ian Romanick7dc99da2016-05-16 11:26:15 -0700242
Romain Failliot3671bb32016-03-15 16:14:09 -0400243 GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
Rob Clark1831e3f2017-11-17 15:18:14 -0500244 GL_ARB_compute_shader DONE (freedreno/a5xx, i965/gen7+, softpipe)
Dave Airlie8de6d4b2017-12-18 04:28:07 +0000245 GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, llvmpipe, softpipe, swr)
Romain Failliot3671bb32016-03-15 16:14:09 -0400246 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
Dave Airlie8de6d4b2017-12-18 04:28:07 +0000247 GL_ARB_framebuffer_no_attachments DONE (freedreno, i965/gen7+, softpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400248 GL_ARB_program_interface_query DONE (all drivers)
Dave Airlie8de6d4b2017-12-18 04:28:07 +0000249 GL_ARB_shader_atomic_counters DONE (freedreno/a5xx, i965/gen7+, softpipe)
250 GL_ARB_shader_image_load_store DONE (freedreno/a5xx, i965/gen7+, softpipe)
251 GL_ARB_shader_image_size DONE (freedreno/a5xx, i965/gen7+, softpipe)
252 GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx, i965/gen7+, softpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400253 GL_ARB_shading_language_packing DONE (all drivers)
254 GL_ARB_separate_shader_objects DONE (all drivers)
Dave Airlie8de6d4b2017-12-18 04:28:07 +0000255 GL_ARB_stencil_texturing DONE (freedreno, nv50, llvmpipe, softpipe, swr)
256 GL_ARB_texture_multisample (Multisample textures) DONE (i965/gen7+, nv50, llvmpipe, softpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400257 GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
258 GL_ARB_vertex_attrib_binding DONE (all drivers)
Dave Airlie8de6d4b2017-12-18 04:28:07 +0000259 GS5 Enhanced textureGather DONE (freedreno, i965/gen7+,)
260 GS5 Packing/bitfield/conversion functions DONE (i965/gen6+)
Romain Failliot3671bb32016-03-15 16:14:09 -0400261 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
Dave Airliec6323342014-08-11 09:04:47 +1000262
Tapani Pällid1bce522015-09-14 08:50:51 +0300263 Additional functionality not covered above:
Romain Failliot3671bb32016-03-15 16:14:09 -0400264 glMemoryBarrierByRegion DONE
265 glGetTexLevelParameter[fi]v - needs updates DONE
Tapani Pällid1bce522015-09-14 08:50:51 +0300266 glGetBooleani_v - restrict to GLES enums
Ilia Mirkin68d13502016-05-30 15:18:02 -0400267 gl_HelperInvocation support DONE (i965, r600)
Ilia Mirkin82903ac2014-08-11 15:07:09 -0400268
Kenneth Graunke6c648cd2016-09-21 11:51:43 -0700269GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+
Ian Romanick7dc99da2016-05-16 11:26:15 -0700270
Romain Failliot3671bb32016-03-15 16:14:09 -0400271 GL_EXT_color_buffer_float DONE (all drivers)
Ilia Mirkin5ba380c2017-01-02 00:48:51 -0500272 GL_KHR_blend_equation_advanced DONE (i965, nvc0)
Romain Failliot3671bb32016-03-15 16:14:09 -0400273 GL_KHR_debug DONE (all drivers)
Edward O'Callaghan185be152016-10-07 23:21:32 +1100274 GL_KHR_robustness DONE (i965, nvc0, radeonsi)
Rob Clark1831e3f2017-11-17 15:18:14 -0500275 GL_KHR_texture_compression_astc_ldr DONE (freedreno, i965/gen9+)
Ilia Mirkind816a512016-07-08 02:44:57 -0400276 GL_OES_copy_image DONE (all drivers)
Ilia Mirkine0e16832016-03-31 00:48:01 -0400277 GL_OES_draw_buffers_indexed DONE (all drivers that support GL_ARB_draw_buffers_blend)
Romain Failliot3671bb32016-03-15 16:14:09 -0400278 GL_OES_draw_elements_base_vertex DONE (all drivers)
Ian Romanick1472ff32016-11-08 10:10:35 -0800279 GL_OES_geometry_shader DONE (i965/hsw+, nvc0, radeonsi)
Romain Failliot3671bb32016-03-15 16:14:09 -0400280 GL_OES_gpu_shader5 DONE (all drivers that support GL_ARB_gpu_shader5)
Ilia Mirkina0b12602016-08-28 16:03:21 -0400281 GL_OES_primitive_bounding_box DONE (i965/gen7+, nvc0, radeonsi)
Kenneth Graunke9a1936d2016-04-03 23:03:34 -0700282 GL_OES_sample_shading DONE (i965, nvc0, r600, radeonsi)
283 GL_OES_sample_variables DONE (i965, nvc0, r600, radeonsi)
Romain Failliot3671bb32016-03-15 16:14:09 -0400284 GL_OES_shader_image_atomic DONE (all drivers that support GL_ARB_shader_image_load_store)
Ian Romanick1472ff32016-11-08 10:10:35 -0800285 GL_OES_shader_io_blocks DONE (All drivers that support GLES 3.1)
Kenneth Graunke9a1936d2016-04-03 23:03:34 -0700286 GL_OES_shader_multisample_interpolation DONE (i965, nvc0, r600, radeonsi)
Kenneth Graunke049cee22016-09-12 17:23:10 -0700287 GL_OES_tessellation_shader DONE (all drivers that support GL_ARB_tessellation_shader)
Romain Failliot3671bb32016-03-15 16:14:09 -0400288 GL_OES_texture_border_clamp DONE (all drivers)
Ilia Mirkinccd58012016-05-23 23:04:06 -0400289 GL_OES_texture_buffer DONE (i965, nvc0, radeonsi)
Ian Romanick1472ff32016-11-08 10:10:35 -0800290 GL_OES_texture_cube_map_array DONE (i965/hsw+, nvc0, radeonsi)
Romain Failliot3671bb32016-03-15 16:14:09 -0400291 GL_OES_texture_stencil8 DONE (all drivers that support GL_ARB_texture_stencil8)
292 GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample)
Thomas Helland2e7e3fe2015-08-12 15:07:57 +0200293
Ian Romanick6bc54912016-05-31 16:04:00 -0700294Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:
295
Ilia Mirkin6f4ac7b2017-06-24 00:51:13 -0400296 GL_ARB_bindless_texture DONE (nvc0, radeonsi)
Ian Romanick6bc54912016-05-31 16:04:00 -0700297 GL_ARB_cl_event not started
Nicolai Hähnle77c81162016-09-09 10:08:11 +0200298 GL_ARB_compute_variable_group_size DONE (nvc0, radeonsi)
Ilia Mirkin9fec15a2016-08-28 19:55:05 -0400299 GL_ARB_ES3_2_compatibility DONE (i965/gen8+)
Ian Romanick6bc54912016-05-31 16:04:00 -0700300 GL_ARB_fragment_shader_interlock not started
Ilia Mirkin1e4f5982017-02-05 13:08:07 -0500301 GL_ARB_gpu_shader_int64 DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe)
Ian Romanick6bc54912016-05-31 16:04:00 -0700302 GL_ARB_parallel_shader_compile not started, but Chia-I Wu did some related work in 2014
Plamena Manolova0ff74a82016-12-06 21:37:01 +0200303 GL_ARB_post_depth_coverage DONE (i965)
Ian Romanick6bc54912016-05-31 16:04:00 -0700304 GL_ARB_robustness_isolation not started
305 GL_ARB_sample_locations not started
306 GL_ARB_seamless_cubemap_per_texture DONE (i965, nvc0, radeonsi, r600, softpipe, swr)
Matt Turner51c16592017-06-22 17:15:28 -0700307 GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi)
Dave Airlie90417302017-11-21 07:29:09 +1000308 GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, r600, radeonsi)
Dave Airlie59ca0c42017-11-20 09:19:31 +1000309 GL_ARB_shader_stencil_export DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr)
Ilia Mirkinda0a8082017-04-19 18:38:02 -0400310 GL_ARB_shader_viewport_layer_array DONE (i965/gen6+, nvc0, radeonsi)
Nicolai Hähnle570e50a2017-02-02 21:11:05 +0100311 GL_ARB_sparse_buffer DONE (radeonsi/CIK+)
Ian Romanick6bc54912016-05-31 16:04:00 -0700312 GL_ARB_sparse_texture not started
313 GL_ARB_sparse_texture2 not started
314 GL_ARB_sparse_texture_clamp not started
315 GL_ARB_texture_filter_minmax not started
Jakob Bornecrantz67dd52e2017-10-15 17:42:48 +0100316 GL_EXT_memory_object DONE (radeonsi)
317 GL_EXT_memory_object_fd DONE (radeonsi)
318 GL_EXT_memory_object_win32 not started
319 GL_EXT_semaphore not started
320 GL_EXT_semaphore_fd not started
321 GL_EXT_semaphore_win32 not started
Ian Romanick8cd5c3c2016-05-16 11:30:19 -0700322 GL_KHR_blend_equation_advanced_coherent DONE (i965/gen9+)
Nanley Cheryd132bb32017-05-19 16:39:25 -0700323 GL_KHR_texture_compression_astc_hdr DONE (i965/bxt)
324 GL_KHR_texture_compression_astc_sliced_3d DONE (i965/gen9+)
Ian Romanick6bc54912016-05-31 16:04:00 -0700325 GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+)
326 GL_OES_EGL_image DONE (all drivers)
327 GL_OES_EGL_image_external_essl3 not started
Eric Anholtc16a7442017-05-01 09:28:33 -0700328 GL_OES_required_internalformat DONE (all drivers)
Ian Romanick6bc54912016-05-31 16:04:00 -0700329 GL_OES_surfaceless_context DONE (all drivers)
330 GL_OES_texture_compression_astc DONE (core only)
Rob Clark1831e3f2017-11-17 15:18:14 -0500331 GL_OES_texture_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
332 GL_OES_texture_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
333 GL_OES_texture_half_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
334 GL_OES_texture_half_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
Ian Romanick6bc54912016-05-31 16:04:00 -0700335 GL_OES_texture_view not started - based on GL_ARB_texture_view
Anuj Phogatf8f6f602016-10-05 12:18:55 -0700336 GL_OES_viewport_array DONE (i965, nvc0, radeonsi)
Adam Jackson1cbcd702018-01-15 13:47:24 -0500337 GLX_ARB_context_flush_control not started
Ian Romanick6bc54912016-05-31 16:04:00 -0700338 GLX_ARB_robustness_application_isolation not started
339 GLX_ARB_robustness_share_group_isolation not started
340
341The following extensions are not part of any OpenGL or OpenGL ES version, and
342we DO NOT WANT implementations of these extensions for Mesa.
343
344 GL_ARB_geometry_shader4 Superseded by GL 3.2 geometry shaders
345 GL_ARB_matrix_palette Superseded by GL_ARB_vertex_program
346 GL_ARB_shading_language_include Not interesting
347 GL_ARB_shadow_ambient Superseded by GL_ARB_fragment_program
348 GL_ARB_vertex_blend Superseded by GL_ARB_vertex_program
349
Jordan Justenfe3d2552017-07-31 14:32:04 -0700350Vulkan 1.0 -- all DONE: anv, radv
351
352Khronos extensions that are not part of any Vulkan version:
353 VK_KHR_16bit_storage in progress (Alejandro)
354 VK_KHR_android_surface not started
355 VK_KHR_dedicated_allocation DONE (anv, radv)
356 VK_KHR_descriptor_update_template DONE (anv, radv)
357 VK_KHR_display not started
358 VK_KHR_display_swapchain not started
359 VK_KHR_external_fence not started
360 VK_KHR_external_fence_capabilities not started
361 VK_KHR_external_fence_fd not started
362 VK_KHR_external_fence_win32 not started
363 VK_KHR_external_memory DONE (anv, radv)
364 VK_KHR_external_memory_capabilities DONE (anv, radv)
365 VK_KHR_external_memory_fd DONE (anv, radv)
366 VK_KHR_external_memory_win32 not started
367 VK_KHR_external_semaphore DONE (radv)
368 VK_KHR_external_semaphore_capabilities DONE (radv)
369 VK_KHR_external_semaphore_fd DONE (radv)
370 VK_KHR_external_semaphore_win32 not started
371 VK_KHR_get_memory_requirements2 DONE (anv, radv)
372 VK_KHR_get_physical_device_properties2 DONE (anv, radv)
373 VK_KHR_get_surface_capabilities2 DONE (anv)
374 VK_KHR_incremental_present DONE (anv, radv)
375 VK_KHR_maintenance1 DONE (anv, radv)
376 VK_KHR_mir_surface not started
377 VK_KHR_push_descriptor DONE (anv, radv)
378 VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, radv)
379 VK_KHR_shader_draw_parameters DONE (anv, radv)
380 VK_KHR_shared_presentable_image not started
381 VK_KHR_storage_buffer_storage_class DONE (anv, radv)
382 VK_KHR_surface DONE (anv, radv)
383 VK_KHR_swapchain DONE (anv, radv)
384 VK_KHR_variable_pointers DONE (anv, radv)
385 VK_KHR_wayland_surface DONE (anv, radv)
386 VK_KHR_win32_keyed_mutex not started
387 VK_KHR_win32_surface not started
388 VK_KHR_xcb_surface DONE (anv, radv)
389 VK_KHR_xlib_surface DONE (anv, radv)
390
Brian Paul023a9e32017-02-01 14:35:03 -0700391
392A graphical representation of this information can be found at
Eric Engestrom30cf9ff2017-02-09 02:10:17 +0000393https://mesamatrix.net/