blob: 6f57ec26fd18c0407ff5130f29d45f398076d03c [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)
Tim Rowley78572c92016-05-16 11:02:27 -0500105 GL_ARB_timer_query DONE (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)
Ian Romanickd1fbd4c2016-05-16 11:30:19 -0700113 GL_ARB_draw_indirect DONE (i965/gen7+, llvmpipe, softpipe, swr)
114 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)
129 GL_ARB_shader_subroutine DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
130 GL_ARB_tessellation_shader DONE (i965/gen7+)
Kenneth Graunke44ef2ce2016-07-22 09:56:53 -0700131 GL_ARB_texture_buffer_object_rgb32 DONE (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)
133 GL_ARB_texture_gather DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
Romain Failliot3671bb32016-03-15 16:14:09 -0400134 GL_ARB_texture_query_lod DONE (i965, nv50, 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
Tim Rowley78572c92016-05-16 11:02:27 -0500141 GL_ARB_ES2_compatibility DONE (i965, nv50, llvmpipe, softpipe, swr)
Romain Failliot3671bb32016-03-15 16:14:09 -0400142 GL_ARB_get_program_binary DONE (0 binary formats)
143 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
Francisco Jerez96dfc012017-04-14 15:59:52 -0700149GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, radeonsi
Marek Olšák768589e2012-07-05 20:27:28 +0200150
Ilia Mirkin68d13502016-05-30 15:18:02 -0400151 GL_ARB_texture_compression_bptc DONE (i965, r600)
Romain Failliot3671bb32016-03-15 16:14:09 -0400152 GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
Ilia Mirkin68d13502016-05-30 15:18:02 -0400153 GL_ARB_shader_atomic_counters DONE (i965, softpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400154 GL_ARB_texture_storage DONE (all drivers)
Ilia Mirkin68d13502016-05-30 15:18:02 -0400155 GL_ARB_transform_feedback_instanced DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
156 GL_ARB_base_instance DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
157 GL_ARB_shader_image_load_store DONE (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)
Ilia Mirkin68d13502016-05-30 15:18:02 -0400161 GL_ARB_internalformat_query DONE (i965, nv50, r600, 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
Ian Romanick8cd5c3c2016-05-16 11:30:19 -0700165GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, 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)
Ilia Mirkin68d13502016-05-30 15:18:02 -0400170 GL_ARB_compute_shader DONE (i965, softpipe)
Brian Paul5cfc9162016-06-10 15:50:51 -0600171 GL_ARB_copy_image DONE (i965, nv50, r600, 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)
Lars Hamre198074a2016-07-19 01:20:27 +0200174 GL_ARB_fragment_layer_viewport DONE (i965, nv50, r600, llvmpipe, softpipe)
Ilia Mirkin68d13502016-05-30 15:18:02 -0400175 GL_ARB_framebuffer_no_attachments DONE (i965, r600, 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)
Ilia Mirkin68d13502016-05-30 15:18:02 -0400178 GL_ARB_multi_draw_indirect DONE (i965, r600, llvmpipe, softpipe, swr)
Romain Failliot3671bb32016-03-15 16:14:09 -0400179 GL_ARB_program_interface_query DONE (all drivers)
Ilia Mirkin68d13502016-05-30 15:18:02 -0400180 GL_ARB_robust_buffer_access_behavior DONE (i965)
181 GL_ARB_shader_image_size DONE (i965, softpipe)
182 GL_ARB_shader_storage_buffer_object DONE (i965, softpipe)
Jordan Justen79702382016-08-18 15:05:13 -0700183 GL_ARB_stencil_texturing DONE (i965/hsw+, nv50, r600, llvmpipe, softpipe, swr)
Ilia Mirkin68d13502016-05-30 15:18:02 -0400184 GL_ARB_texture_buffer_range DONE (nv50, i965, r600, 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)
Ilia Mirkin68d13502016-05-30 15:18:02 -0400187 GL_ARB_texture_view DONE (i965, nv50, r600, 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)
Gregory Hainautb3605012017-02-24 21:45:12 +0100194 GL_ARB_buffer_storage DONE (i965, nv50, r600, llvmpipe, swr)
Bruce Cherniak74aa6fd2017-02-25 21:17:07 -0600195 GL_ARB_clear_texture DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
Ilia Mirkin5f885222016-10-13 21:42:54 -0400196 GL_ARB_enhanced_layouts DONE (i965, nv50, 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
Ilia Mirkin5f885222016-10-13 21:42:54 -0400200 - specified vec4-slot component numbers DONE (i965, nv50, llvmpipe, softpipe)
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)
206 GL_ARB_texture_stencil8 DONE (i965/hsw+, nv50, r600, llvmpipe, softpipe, swr)
207 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
Edward O'Callaghan1c05f922016-10-14 15:30:50 +1100211 GL_ARB_ES3_1_compatibility DONE (i965/hsw+)
212 GL_ARB_clip_control DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
213 GL_ARB_conditional_render_inverted DONE (i965, nv50, r600, llvmpipe, softpipe, swr)
214 GL_ARB_cull_distance DONE (i965, nv50, llvmpipe, softpipe, swr)
215 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)
219 GL_ARB_texture_barrier DONE (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)
Adam Jacksond4ca66a2017-07-31 12:27:21 -0400227 GL_ARB_indirect_parameters DONE (nvc0, radeonsi)
228 GL_ARB_pipeline_statistics_query DONE (i965, nvc0, radeonsi, softpipe, swr)
229 GL_ARB_polygon_offset_clamp not started
230 GL_ARB_shader_atomic_counter_ops DONE (i965/gen7+, nvc0, radeonsi, softpipe)
231 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)
Adam Jacksond4ca66a2017-07-31 12:27:21 -0400234 GL_ARB_texture_filter_anisotropic not started
Roland Scheidegger3e962312017-08-15 17:53:49 +0200235 GL_ARB_transform_feedback_overflow_query DONE (i965/gen6+, radeonsi, llvmpipe, softpipe)
Adam Jacksond4ca66a2017-07-31 12:27:21 -0400236 GL_KHR_no_error started (Timothy Arceri)
237
Dave Airliec6323342014-08-11 09:04:47 +1000238These are the extensions cherry-picked to make GLES 3.1
Jordan Justen79702382016-08-18 15:05:13 -0700239GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, radeonsi
Ian Romanick7dc99da2016-05-16 11:26:15 -0700240
Romain Failliot3671bb32016-03-15 16:14:09 -0400241 GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
Ian Romanick7dc99da2016-05-16 11:26:15 -0700242 GL_ARB_compute_shader DONE (i965/gen7+, softpipe)
243 GL_ARB_draw_indirect DONE (i965/gen7+, r600, llvmpipe, softpipe, swr)
Romain Failliot3671bb32016-03-15 16:14:09 -0400244 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
Ian Romanick7dc99da2016-05-16 11:26:15 -0700245 GL_ARB_framebuffer_no_attachments DONE (i965/gen7+, r600, softpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400246 GL_ARB_program_interface_query DONE (all drivers)
Ian Romanick7dc99da2016-05-16 11:26:15 -0700247 GL_ARB_shader_atomic_counters DONE (i965/gen7+, softpipe)
248 GL_ARB_shader_image_load_store DONE (i965/gen7+, softpipe)
249 GL_ARB_shader_image_size DONE (i965/gen7+, softpipe)
250 GL_ARB_shader_storage_buffer_object DONE (i965/gen7+, softpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400251 GL_ARB_shading_language_packing DONE (all drivers)
252 GL_ARB_separate_shader_objects DONE (all drivers)
Ian Romanick7dc99da2016-05-16 11:26:15 -0700253 GL_ARB_stencil_texturing DONE (nv50, r600, llvmpipe, softpipe, swr)
254 GL_ARB_texture_multisample (Multisample textures) DONE (i965/gen7+, nv50, r600, llvmpipe, softpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400255 GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
256 GL_ARB_vertex_attrib_binding DONE (all drivers)
Ian Romanick7dc99da2016-05-16 11:26:15 -0700257 GS5 Enhanced textureGather DONE (i965/gen7+, r600)
258 GS5 Packing/bitfield/conversion functions DONE (i965/gen6+, r600)
Romain Failliot3671bb32016-03-15 16:14:09 -0400259 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
Dave Airliec6323342014-08-11 09:04:47 +1000260
Tapani Pällid1bce522015-09-14 08:50:51 +0300261 Additional functionality not covered above:
Romain Failliot3671bb32016-03-15 16:14:09 -0400262 glMemoryBarrierByRegion DONE
263 glGetTexLevelParameter[fi]v - needs updates DONE
Tapani Pällid1bce522015-09-14 08:50:51 +0300264 glGetBooleani_v - restrict to GLES enums
Ilia Mirkin68d13502016-05-30 15:18:02 -0400265 gl_HelperInvocation support DONE (i965, r600)
Ilia Mirkin82903ac2014-08-11 15:07:09 -0400266
Kenneth Graunke6c648cd2016-09-21 11:51:43 -0700267GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+
Ian Romanick7dc99da2016-05-16 11:26:15 -0700268
Romain Failliot3671bb32016-03-15 16:14:09 -0400269 GL_EXT_color_buffer_float DONE (all drivers)
Ilia Mirkin5ba380c2017-01-02 00:48:51 -0500270 GL_KHR_blend_equation_advanced DONE (i965, nvc0)
Romain Failliot3671bb32016-03-15 16:14:09 -0400271 GL_KHR_debug DONE (all drivers)
Edward O'Callaghan185be152016-10-07 23:21:32 +1100272 GL_KHR_robustness DONE (i965, nvc0, radeonsi)
Romain Failliot3671bb32016-03-15 16:14:09 -0400273 GL_KHR_texture_compression_astc_ldr DONE (i965/gen9+)
Ilia Mirkind816a512016-07-08 02:44:57 -0400274 GL_OES_copy_image DONE (all drivers)
Ilia Mirkine0e16832016-03-31 00:48:01 -0400275 GL_OES_draw_buffers_indexed DONE (all drivers that support GL_ARB_draw_buffers_blend)
Romain Failliot3671bb32016-03-15 16:14:09 -0400276 GL_OES_draw_elements_base_vertex DONE (all drivers)
Ian Romanick1472ff32016-11-08 10:10:35 -0800277 GL_OES_geometry_shader DONE (i965/hsw+, nvc0, radeonsi)
Romain Failliot3671bb32016-03-15 16:14:09 -0400278 GL_OES_gpu_shader5 DONE (all drivers that support GL_ARB_gpu_shader5)
Ilia Mirkina0b12602016-08-28 16:03:21 -0400279 GL_OES_primitive_bounding_box DONE (i965/gen7+, nvc0, radeonsi)
Kenneth Graunke9a1936d2016-04-03 23:03:34 -0700280 GL_OES_sample_shading DONE (i965, nvc0, r600, radeonsi)
281 GL_OES_sample_variables DONE (i965, nvc0, r600, radeonsi)
Romain Failliot3671bb32016-03-15 16:14:09 -0400282 GL_OES_shader_image_atomic DONE (all drivers that support GL_ARB_shader_image_load_store)
Ian Romanick1472ff32016-11-08 10:10:35 -0800283 GL_OES_shader_io_blocks DONE (All drivers that support GLES 3.1)
Kenneth Graunke9a1936d2016-04-03 23:03:34 -0700284 GL_OES_shader_multisample_interpolation DONE (i965, nvc0, r600, radeonsi)
Kenneth Graunke049cee22016-09-12 17:23:10 -0700285 GL_OES_tessellation_shader DONE (all drivers that support GL_ARB_tessellation_shader)
Romain Failliot3671bb32016-03-15 16:14:09 -0400286 GL_OES_texture_border_clamp DONE (all drivers)
Ilia Mirkinccd58012016-05-23 23:04:06 -0400287 GL_OES_texture_buffer DONE (i965, nvc0, radeonsi)
Ian Romanick1472ff32016-11-08 10:10:35 -0800288 GL_OES_texture_cube_map_array DONE (i965/hsw+, nvc0, radeonsi)
Romain Failliot3671bb32016-03-15 16:14:09 -0400289 GL_OES_texture_stencil8 DONE (all drivers that support GL_ARB_texture_stencil8)
290 GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample)
Thomas Helland2e7e3fe2015-08-12 15:07:57 +0200291
Ian Romanick6bc54912016-05-31 16:04:00 -0700292Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:
293
Samuel Pitoiset65d1e4d2017-02-27 13:15:38 +0100294 GL_ARB_bindless_texture DONE (radeonsi)
Ian Romanick6bc54912016-05-31 16:04:00 -0700295 GL_ARB_cl_event not started
Nicolai Hähnle77c81162016-09-09 10:08:11 +0200296 GL_ARB_compute_variable_group_size DONE (nvc0, radeonsi)
Ilia Mirkin9fec15a2016-08-28 19:55:05 -0400297 GL_ARB_ES3_2_compatibility DONE (i965/gen8+)
Ian Romanick6bc54912016-05-31 16:04:00 -0700298 GL_ARB_fragment_shader_interlock not started
Ilia Mirkin1e4f5982017-02-05 13:08:07 -0500299 GL_ARB_gpu_shader_int64 DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe)
Ian Romanick6bc54912016-05-31 16:04:00 -0700300 GL_ARB_parallel_shader_compile not started, but Chia-I Wu did some related work in 2014
Plamena Manolova0ff74a82016-12-06 21:37:01 +0200301 GL_ARB_post_depth_coverage DONE (i965)
Ian Romanick6bc54912016-05-31 16:04:00 -0700302 GL_ARB_robustness_isolation not started
303 GL_ARB_sample_locations not started
304 GL_ARB_seamless_cubemap_per_texture DONE (i965, nvc0, radeonsi, r600, softpipe, swr)
Matt Turner51c16592017-06-22 17:15:28 -0700305 GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi)
Boyan Dingb1b189a2017-04-04 22:44:47 +0800306 GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, radeonsi)
Ian Romanick6bc54912016-05-31 16:04:00 -0700307 GL_ARB_shader_stencil_export DONE (i965/gen9+, radeonsi, softpipe, llvmpipe, swr)
Ilia Mirkinda0a8082017-04-19 18:38:02 -0400308 GL_ARB_shader_viewport_layer_array DONE (i965/gen6+, nvc0, radeonsi)
Nicolai Hähnle570e50a2017-02-02 21:11:05 +0100309 GL_ARB_sparse_buffer DONE (radeonsi/CIK+)
Ian Romanick6bc54912016-05-31 16:04:00 -0700310 GL_ARB_sparse_texture not started
311 GL_ARB_sparse_texture2 not started
312 GL_ARB_sparse_texture_clamp not started
313 GL_ARB_texture_filter_minmax not started
Ian Romanick8cd5c3c2016-05-16 11:30:19 -0700314 GL_KHR_blend_equation_advanced_coherent DONE (i965/gen9+)
Nanley Cheryd132bb32017-05-19 16:39:25 -0700315 GL_KHR_texture_compression_astc_hdr DONE (i965/bxt)
316 GL_KHR_texture_compression_astc_sliced_3d DONE (i965/gen9+)
Ian Romanick6bc54912016-05-31 16:04:00 -0700317 GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+)
318 GL_OES_EGL_image DONE (all drivers)
319 GL_OES_EGL_image_external_essl3 not started
320 GL_OES_required_internalformat not started - GLES2 extension based on OpenGL ES 3.0 feature
321 GL_OES_surfaceless_context DONE (all drivers)
322 GL_OES_texture_compression_astc DONE (core only)
323 GL_OES_texture_float DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
324 GL_OES_texture_float_linear DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
325 GL_OES_texture_half_float DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
326 GL_OES_texture_half_float_linear DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
327 GL_OES_texture_view not started - based on GL_ARB_texture_view
Anuj Phogatf8f6f602016-10-05 12:18:55 -0700328 GL_OES_viewport_array DONE (i965, nvc0, radeonsi)
Ian Romanick6bc54912016-05-31 16:04:00 -0700329 GLX_ARB_context_flush_control not started
330 GLX_ARB_robustness_application_isolation not started
331 GLX_ARB_robustness_share_group_isolation not started
332
333The following extensions are not part of any OpenGL or OpenGL ES version, and
334we DO NOT WANT implementations of these extensions for Mesa.
335
336 GL_ARB_geometry_shader4 Superseded by GL 3.2 geometry shaders
337 GL_ARB_matrix_palette Superseded by GL_ARB_vertex_program
338 GL_ARB_shading_language_include Not interesting
339 GL_ARB_shadow_ambient Superseded by GL_ARB_fragment_program
340 GL_ARB_vertex_blend Superseded by GL_ARB_vertex_program
341
Jordan Justenfe3d2552017-07-31 14:32:04 -0700342Vulkan 1.0 -- all DONE: anv, radv
343
344Khronos extensions that are not part of any Vulkan version:
345 VK_KHR_16bit_storage in progress (Alejandro)
346 VK_KHR_android_surface not started
347 VK_KHR_dedicated_allocation DONE (anv, radv)
348 VK_KHR_descriptor_update_template DONE (anv, radv)
349 VK_KHR_display not started
350 VK_KHR_display_swapchain not started
351 VK_KHR_external_fence not started
352 VK_KHR_external_fence_capabilities not started
353 VK_KHR_external_fence_fd not started
354 VK_KHR_external_fence_win32 not started
355 VK_KHR_external_memory DONE (anv, radv)
356 VK_KHR_external_memory_capabilities DONE (anv, radv)
357 VK_KHR_external_memory_fd DONE (anv, radv)
358 VK_KHR_external_memory_win32 not started
359 VK_KHR_external_semaphore DONE (radv)
360 VK_KHR_external_semaphore_capabilities DONE (radv)
361 VK_KHR_external_semaphore_fd DONE (radv)
362 VK_KHR_external_semaphore_win32 not started
363 VK_KHR_get_memory_requirements2 DONE (anv, radv)
364 VK_KHR_get_physical_device_properties2 DONE (anv, radv)
365 VK_KHR_get_surface_capabilities2 DONE (anv)
366 VK_KHR_incremental_present DONE (anv, radv)
367 VK_KHR_maintenance1 DONE (anv, radv)
368 VK_KHR_mir_surface not started
369 VK_KHR_push_descriptor DONE (anv, radv)
370 VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, radv)
371 VK_KHR_shader_draw_parameters DONE (anv, radv)
372 VK_KHR_shared_presentable_image not started
373 VK_KHR_storage_buffer_storage_class DONE (anv, radv)
374 VK_KHR_surface DONE (anv, radv)
375 VK_KHR_swapchain DONE (anv, radv)
376 VK_KHR_variable_pointers DONE (anv, radv)
377 VK_KHR_wayland_surface DONE (anv, radv)
378 VK_KHR_win32_keyed_mutex not started
379 VK_KHR_win32_surface not started
380 VK_KHR_xcb_surface DONE (anv, radv)
381 VK_KHR_xlib_surface DONE (anv, radv)
382
Brian Paul023a9e32017-02-01 14:35:03 -0700383
384A graphical representation of this information can be found at
Eric Engestrom30cf9ff2017-02-09 02:10:17 +0000385https://mesamatrix.net/