blob: f6248daa1b69f550992e7824109d03fc697bacca [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 Failliotb3404692014-11-27 18:02:20 +010036GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
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
Marek Olšák2b537962015-03-16 23:15:22 +010063 Multisample anti-aliasing DONE (llvmpipe (*), softpipe (*))
Brian Paul9b0bbe12009-12-30 10:39:20 -070064
Roland Scheidegger17eabfe2014-08-25 18:21:53 +020065(*) llvmpipe and softpipe have fake Multisample anti-aliasing support
Brian Paul9b0bbe12009-12-30 10:39:20 -070066
Roland Scheidegger17eabfe2014-08-25 18:21:53 +020067
68GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
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
Roland Scheidegger17eabfe2014-08-25 18:21:53 +020081GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
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 ()
Romain Failliot15172412016-03-15 16:14:11 -040085 GL_ARB_vertex_array_bgra (BGRA vertex order) DONE ()
86 GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE ()
87 GL_ARB_fragment_coord_conventions (Frag shader coord) DONE ()
88 GL_ARB_provoking_vertex (Provoking vertex) DONE ()
89 GL_ARB_seamless_cube_map (Seamless cubemaps) DONE ()
90 GL_ARB_texture_multisample (Multisample textures) DONE ()
91 GL_ARB_depth_clamp (Frag depth clamp) DONE ()
92 GL_ARB_sync (Fence objects) DONE ()
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
Roland Scheidegger17eabfe2014-08-25 18:21:53 +020098 GL_ARB_blend_func_extended DONE ()
Ian Romanickbc0ed682014-01-13 14:48:16 -080099 GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
Marek Olšák4e46af02015-03-16 23:19:17 +0100100 GL_ARB_occlusion_query2 DONE ()
Ian Romanickbc0ed682014-01-13 14:48:16 -0800101 GL_ARB_sampler_objects DONE (all drivers)
Dave Airlie16215a92014-02-05 07:52:48 +1000102 GL_ARB_shader_bit_encoding DONE ()
103 GL_ARB_texture_rgb10_a2ui DONE ()
Marek Olšák4e46af02015-03-16 23:19:17 +0100104 GL_ARB_texture_swizzle DONE ()
Dave Airlie16215a92014-02-05 07:52:48 +1000105 GL_ARB_timer_query DONE ()
Marek Olšák2b537962015-03-16 23:15:22 +0100106 GL_ARB_instanced_arrays DONE ()
Dave Airlie16215a92014-02-05 07:52:48 +1000107 GL_ARB_vertex_type_2_10_10_10_rev DONE ()
Brian Pauld35c2ca2010-05-11 21:03:53 -0600108
109
Dave Airlie5ca98252015-12-07 10:06:44 +1000110GL 4.0, GLSL 4.00 --- all DONE: nvc0, r600, radeonsi
Brian Pauld35c2ca2010-05-11 21:03:53 -0600111
Romain Failliot3671bb32016-03-15 16:14:09 -0400112 GL_ARB_draw_buffers_blend DONE (i965, nv50, llvmpipe, softpipe)
113 GL_ARB_draw_indirect DONE (i965, llvmpipe, softpipe)
114 GL_ARB_gpu_shader5 DONE (i965)
115 - '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
127 GL_ARB_gpu_shader_fp64 DONE (llvmpipe, softpipe)
128 GL_ARB_sample_shading DONE (i965, nv50)
129 GL_ARB_shader_subroutine DONE (i965, nv50, llvmpipe, softpipe)
130 GL_ARB_tessellation_shader DONE (i965)
131 GL_ARB_texture_buffer_object_rgb32 DONE (i965, llvmpipe, softpipe)
132 GL_ARB_texture_cube_map_array DONE (i965, nv50, llvmpipe, softpipe)
133 GL_ARB_texture_gather DONE (i965, nv50, llvmpipe, softpipe)
134 GL_ARB_texture_query_lod DONE (i965, nv50, softpipe)
135 GL_ARB_transform_feedback2 DONE (i965, nv50, llvmpipe, softpipe)
136 GL_ARB_transform_feedback3 DONE (i965, nv50, llvmpipe, softpipe)
Marek Olšák2892c8b2010-11-21 22:54:33 +0100137
138
Dave Airliebd47fcd2015-12-08 20:13:14 +1000139GL 4.1, GLSL 4.10 --- all DONE: nvc0, r600, radeonsi
Marek Olšák2892c8b2010-11-21 22:54:33 +0100140
Romain Failliot3671bb32016-03-15 16:14:09 -0400141 GL_ARB_ES2_compatibility DONE (i965, nv50, llvmpipe, softpipe)
142 GL_ARB_get_program_binary DONE (0 binary formats)
143 GL_ARB_separate_shader_objects DONE (all drivers)
144 GL_ARB_shader_precision DONE (all drivers that support GLSL 4.10)
145 GL_ARB_vertex_attrib_64bit DONE (llvmpipe, softpipe)
146 GL_ARB_viewport_array DONE (i965, nv50, llvmpipe, softpipe)
Brian Pauld35c2ca2010-05-11 21:03:53 -0600147
148
Matt Turnerb6ab52b2014-08-06 21:11:50 -0700149GL 4.2, GLSL 4.20:
Marek Olšák768589e2012-07-05 20:27:28 +0200150
Romain Failliot3671bb32016-03-15 16:14:09 -0400151 GL_ARB_texture_compression_bptc DONE (i965, nvc0, r600, radeonsi)
152 GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
153 GL_ARB_shader_atomic_counters DONE (i965, nvc0)
154 GL_ARB_texture_storage DONE (all drivers)
155 GL_ARB_transform_feedback_instanced DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
156 GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
Dave Airliec9367c12016-03-22 08:00:52 +1000157 GL_ARB_shader_image_load_store DONE (i965, radeonsi, 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)
161 GL_ARB_internalformat_query DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
162 GL_ARB_map_buffer_alignment DONE (all drivers)
Brian Pauld35c2ca2010-05-11 21:03:53 -0600163
Brian Paul90894362010-01-05 16:03:11 -0700164
Matt Turnerb6ab52b2014-08-06 21:11:50 -0700165GL 4.3, GLSL 4.30:
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)
170 GL_ARB_compute_shader DONE (i965)
171 GL_ARB_copy_image DONE (i965, nv50, nvc0, r600, radeonsi)
172 GL_KHR_debug DONE (all drivers)
173 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
174 GL_ARB_fragment_layer_viewport DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe)
175 GL_ARB_framebuffer_no_attachments DONE (i965)
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)
178 GL_ARB_multi_draw_indirect DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)
179 GL_ARB_program_interface_query DONE (all drivers)
180 GL_ARB_robust_buffer_access_behavior not started
Nicolai Hähnleb7478462016-03-15 13:08:21 -0500181 GL_ARB_shader_image_size DONE (i965, radeonsi)
Romain Failliot3671bb32016-03-15 16:14:09 -0400182 GL_ARB_shader_storage_buffer_object DONE (i965, nvc0)
183 GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
184 GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi, llvmpipe)
185 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)
187 GL_ARB_texture_view DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
188 GL_ARB_vertex_attrib_binding DONE (all drivers)
Jason Wood56c1f552012-08-06 13:47:27 -0600189
190
Matt Turnerb6ab52b2014-08-06 21:11:50 -0700191GL 4.4, GLSL 4.40:
Chris Forbes5a7bdd42013-07-23 09:17:47 +1200192
Romain Failliot3671bb32016-03-15 16:14:09 -0400193 GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
194 GL_ARB_buffer_storage DONE (i965, nv50, nvc0, r600, radeonsi)
195 GL_ARB_clear_texture DONE (i965, nv50, nvc0)
196 GL_ARB_enhanced_layouts in progress (Timothy)
197 - compile-time constant expressions DONE
198 - explicit byte offsets for blocks DONE
199 - forced alignment within blocks DONE
200 - specified vec4-slot component numbers in progress
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)
204 GL_ARB_query_buffer_object DONE (nvc0)
205 GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
206 GL_ARB_texture_stencil8 DONE (nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
207 GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
Chris Forbes5a7bdd42013-07-23 09:17:47 +1200208
Ilia Mirkin82903ac2014-08-11 15:07:09 -0400209GL 4.5, GLSL 4.50:
210
Romain Failliot3671bb32016-03-15 16:14:09 -0400211 GL_ARB_ES3_1_compatibility not started
212 GL_ARB_clip_control DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
213 GL_ARB_conditional_render_inverted DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
214 GL_ARB_cull_distance in progress (Tobias)
215 GL_ARB_derivative_control DONE (i965, nv50, nvc0, r600, radeonsi)
216 GL_ARB_direct_state_access DONE (all drivers)
217 GL_ARB_get_texture_sub_image DONE (all drivers)
218 GL_ARB_shader_texture_image_samples DONE (i965, nv50, nvc0, r600, radeonsi)
219 GL_ARB_texture_barrier DONE (i965, nv50, nvc0, r600, radeonsi)
220 GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
221 GL_KHR_robust_buffer_access_behavior not started
Romain Failliotf5d47dd2016-03-15 16:14:10 -0400222 GL_KHR_robustness not started (90% done with the ARB variant)
Romain Failliot3671bb32016-03-15 16:14:09 -0400223 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
Ilia Mirkin82903ac2014-08-11 15:07:09 -0400224
Dave Airliec6323342014-08-11 09:04:47 +1000225These are the extensions cherry-picked to make GLES 3.1
226GLES3.1, GLSL ES 3.1
Romain Failliot3671bb32016-03-15 16:14:09 -0400227 GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
228 GL_ARB_compute_shader DONE (i965)
229 GL_ARB_draw_indirect DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)
230 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
231 GL_ARB_framebuffer_no_attachments DONE (i965)
232 GL_ARB_program_interface_query DONE (all drivers)
233 GL_ARB_shader_atomic_counters DONE (i965, nvc0)
234 GL_ARB_shader_image_load_store DONE (i965)
235 GL_ARB_shader_image_size DONE (i965)
236 GL_ARB_shader_storage_buffer_object DONE (i965, nvc0)
237 GL_ARB_shading_language_packing DONE (all drivers)
238 GL_ARB_separate_shader_objects DONE (all drivers)
239 GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
Romain Failliot15172412016-03-15 16:14:11 -0400240 GL_ARB_texture_multisample (Multisample textures) DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
Romain Failliot3671bb32016-03-15 16:14:09 -0400241 GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
242 GL_ARB_vertex_attrib_binding DONE (all drivers)
243 GS5 Enhanced textureGather DONE (i965, nvc0, r600, radeonsi)
244 GS5 Packing/bitfield/conversion functions DONE (i965, nvc0, r600, radeonsi)
245 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
Dave Airliec6323342014-08-11 09:04:47 +1000246
Tapani Pällid1bce522015-09-14 08:50:51 +0300247 Additional functionality not covered above:
Romain Failliot3671bb32016-03-15 16:14:09 -0400248 glMemoryBarrierByRegion DONE
249 glGetTexLevelParameter[fi]v - needs updates DONE
Tapani Pällid1bce522015-09-14 08:50:51 +0300250 glGetBooleani_v - restrict to GLES enums
Romain Failliot3671bb32016-03-15 16:14:09 -0400251 gl_HelperInvocation support DONE (i965, nvc0, r600)
Ilia Mirkin82903ac2014-08-11 15:07:09 -0400252
Thomas Helland2e7e3fe2015-08-12 15:07:57 +0200253GLES3.2, GLSL ES 3.2
Romain Failliot3671bb32016-03-15 16:14:09 -0400254 GL_EXT_color_buffer_float DONE (all drivers)
255 GL_KHR_blend_equation_advanced not started
256 GL_KHR_debug DONE (all drivers)
Romain Failliotf5d47dd2016-03-15 16:14:10 -0400257 GL_KHR_robustness not started (90% done with the ARB variant)
Romain Failliot3671bb32016-03-15 16:14:09 -0400258 GL_KHR_texture_compression_astc_ldr DONE (i965/gen9+)
259 GL_OES_copy_image not started (based on GL_ARB_copy_image, which is done for some drivers)
260 GL_OES_draw_buffers_indexed not started
261 GL_OES_draw_elements_base_vertex DONE (all drivers)
262 GL_OES_geometry_shader started (Marta)
263 GL_OES_gpu_shader5 DONE (all drivers that support GL_ARB_gpu_shader5)
264 GL_OES_primitive_bounding box not started
265 GL_OES_sample_shading not started (based on parts of GL_ARB_sample_shading, which is done for some drivers)
266 GL_OES_sample_variables not started (based on parts of GL_ARB_sample_shading, which is done for some drivers)
267 GL_OES_shader_image_atomic DONE (all drivers that support GL_ARB_shader_image_load_store)
268 GL_OES_shader_io_blocks not started (based on parts of GLSL 1.50, which is done)
269 GL_OES_shader_multisample_interpolation not started (based on parts of GL_ARB_gpu_shader5, which is done)
270 GL_OES_tessellation_shader not started (based on GL_ARB_tessellation_shader, which is done for some drivers)
271 GL_OES_texture_border_clamp DONE (all drivers)
Ilia Mirkinb4c0c512016-02-27 16:16:28 -0500272 GL_OES_texture_buffer DONE (core only)
Romain Failliot3671bb32016-03-15 16:14:09 -0400273 GL_OES_texture_cube_map_array not started (based on GL_ARB_texture_cube_map_array, which is done for all drivers)
274 GL_OES_texture_stencil8 DONE (all drivers that support GL_ARB_texture_stencil8)
275 GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample)
Thomas Helland2e7e3fe2015-08-12 15:07:57 +0200276
Brian Paul90894362010-01-05 16:03:11 -0700277More info about these features and the work involved can be found at
278http://dri.freedesktop.org/wiki/MissingFunctionality