blob: 9b056d0165a41f73db85f97a90fecf984100148a [file] [log] [blame]
Brian Paul9b0bbe12009-12-30 10:39:20 -07001
2Status of OpenGL 3.x features in Mesa
3
4
5Note: when an item is marked as "DONE" it means all the core Mesa
6infrastructure is complete but it may be the case that few (if any) drivers
7implement the features.
8
9
Marek Olšákc40f8d02013-07-30 22:29:11 +020010OpenGL Core and Compatibility context support
11
12OpenGL 3.1 and later versions are only supported with the Core profile.
13There are no plans to support GL_ARB_compatibility. The last supported OpenGL
14version with all deprecated features is 3.0. Some of the later GL features
15are exposed in the 3.0 context as extensions.
16
17
Brian Paul9b0bbe12009-12-30 10:39:20 -070018Feature Status
19----------------------------------------------------- ------------------------
20
21GL 3.0:
22
Matt Turner151b4f32012-01-11 15:29:51 -050023GLSL 1.30 DONE
Dave Airliec33d2e62011-11-27 16:44:03 +000024glBindFragDataLocation, glGetFragDataLocation DONE
Marek Olšák571e1942012-01-12 03:27:27 +010025Conditional rendering (GL_NV_conditional_render) DONE (i965, r300, r600, swrast)
26Map buffer subranges (GL_ARB_map_buffer_range) DONE (i965, r300, r600, swrast)
27Clamping controls (GL_ARB_color_buffer_float) DONE (i965, r300, r600)
28Float textures, renderbuffers (GL_ARB_texture_float) DONE (i965, r300, r600)
Matt Turner151b4f32012-01-11 15:29:51 -050029GL_EXT_packed_float DONE (i965, r600)
30GL_EXT_texture_shared_exponent DONE (i965, r600, swrast)
31Float depth buffers (GL_ARB_depth_buffer_float) DONE (i965, r600)
Marek Olšák4c0d88c2012-01-12 03:52:06 +010032Framebuffer objects (GL_ARB_framebuffer_object) DONE (i965, r300, r600, swrast)
Marek Olšáke0b98cd2011-01-27 21:17:25 +010033Half-float DONE
Brian Paul60c71cc2013-05-08 11:07:46 -060034Non-normalized Integer texture/framebuffer formats DONE (i965, r600)
Matt Turner151b4f32012-01-11 15:29:51 -0500351D/2D Texture arrays DONE
Matt Turner151b4f32012-01-11 15:29:51 -050036Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE (i965, r600, swrast)
Marek Olšák571e1942012-01-12 03:27:27 +010037GL_EXT_texture_compression_rgtc DONE (i965, r300, r600, swrast)
Matt Turner151b4f32012-01-11 15:29:51 -050038Red and red/green texture formats DONE (i965, swrast, gallium)
Brian Paul60c71cc2013-05-08 11:07:46 -060039Transform feedback (GL_EXT_transform_feedback) DONE (i965, r600)
Marek Olšák571e1942012-01-12 03:27:27 +010040Vertex array objects (GL_APPLE_vertex_array_object) DONE (i965, r300, r600, swrast)
Matt Turner151b4f32012-01-11 15:29:51 -050041sRGB framebuffer format (GL_EXT_framebuffer_sRGB) DONE (i965, r600)
Brian Paul0ec0f102010-11-21 09:31:19 -070042glClearBuffer commands DONE
43glGetStringi command DONE
44glTexParameterI, glGetTexParameterI commands DONE
Marek Olšákacf438f2012-10-30 14:44:22 +010045glVertexAttribI commands DONE
Matt Turner151b4f32012-01-11 15:29:51 -050046Depth format cube textures DONE
47GLX_ARB_create_context (GLX 1.4 is required) DONE
Brian Paul9b0bbe12009-12-30 10:39:20 -070048
49
50GL 3.1:
51
Dave Airlie4f1e0372013-01-12 00:19:18 +000052GLSL 1.40 DONE (i965, r600)
53Forward compatibile context support/deprecations DONE (i965, r600)
Eric Anholt45f460f2012-04-13 12:09:11 -070054Instanced drawing (GL_ARB_draw_instanced) DONE (i965, gallium, swrast)
Marek Olšák571e1942012-01-12 03:27:27 +010055Buffer copying (GL_ARB_copy_buffer) DONE (i965, r300, r600, swrast)
Jordan Justendf7d1322012-05-12 21:01:19 -070056Primitive restart (GL_NV_primitive_restart) DONE (i965, r600)
Marek Olšák9e9d73e2011-06-30 21:27:46 +02005716 vertex texture image units DONE
Dave Airlie4f1e0372013-01-12 00:19:18 +000058Texture buffer objs (GL_ARB_texture_buffer_object) DONE for OpenGL 3.1 contexts (i965, r600)
Marek Olšák571e1942012-01-12 03:27:27 +010059Rectangular textures (GL_ARB_texture_rectangle) DONE (i965, r300, r600, swrast)
Dave Airlie4f1e0372013-01-12 00:19:18 +000060Uniform buffer objs (GL_ARB_uniform_buffer_object) DONE (i965, r600, swrast)
Marek Olšák571e1942012-01-12 03:27:27 +010061Signed normalized textures (GL_EXT_texture_snorm) DONE (i965, r300, r600)
Brian Paul9b0bbe12009-12-30 10:39:20 -070062
63
64GL 3.2:
65
Ian Romanick2d2f1fd2012-08-30 15:22:37 -070066Core/compatibility profiles DONE
Kenneth Graunkea6961f32013-05-14 12:22:09 -070067GLSL 1.50 in progress
68Geometry shaders (GL_ARB_geometry_shader4) partially done
Marek Olšák571e1942012-01-12 03:27:27 +010069BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (i965, r300, r600, swrast)
70Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (i965, r300, r600, swrast)
71Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (i965, r300, r600, swrast)
72Provoking vertex (GL_ARB_provoking_vertex) DONE (i965, r300, r600, swrast)
Matt Turner151b4f32012-01-11 15:29:51 -050073Seamless cubemaps (GL_ARB_seamless_cube_map) DONE (i965, r600)
Chris Forbes76165862013-03-02 12:01:24 +130074Multisample textures (GL_ARB_texture_multisample) DONE (i965)
Matt Turner151b4f32012-01-11 15:29:51 -050075Frag depth clamp (GL_ARB_depth_clamp) DONE (i965, r600, swrast)
Marek Olšák571e1942012-01-12 03:27:27 +010076Fence objects (GL_ARB_sync) DONE (i965, r300, r600, swrast)
Matt Turner151b4f32012-01-11 15:29:51 -050077GLX_ARB_create_context_profile DONE
Brian Paul9b0bbe12009-12-30 10:39:20 -070078
79
Brian Pauld35c2ca2010-05-11 21:03:53 -060080GL 3.3:
81
Marek Olšák0f530d22012-06-25 23:48:33 +020082GLSL 3.30 new features in this version pretty much done
Eric Anholt29362872012-04-25 13:58:07 -070083GL_ARB_blend_func_extended DONE (i965, r600, softpipe)
Marek Olšák571e1942012-01-12 03:27:27 +010084GL_ARB_explicit_attrib_location DONE (i915, i965, r300, r600, swrast)
Eric Anholt9a2943d2012-08-23 09:56:31 -070085GL_ARB_occlusion_query2 DONE (i965, r300, r600, swrast)
Marek Olšák571e1942012-01-12 03:27:27 +010086GL_ARB_sampler_objects DONE (i965, r300, r600)
Marek Olšák0f530d22012-06-25 23:48:33 +020087GL_ARB_shader_bit_encoding DONE
Jordan Justenb3900ed2012-06-09 12:19:11 -070088GL_ARB_texture_rgb10_a2ui DONE (i965, r600)
Marek Olšák571e1942012-01-12 03:27:27 +010089GL_ARB_texture_swizzle DONE (same as EXT version) (i965, r300, r600, swrast)
Brian Paul60c71cc2013-05-08 11:07:46 -060090GL_ARB_timer_query DONE (i965, r600)
Jordan Justen35880982012-05-27 10:48:47 -070091GL_ARB_instanced_arrays DONE (i965, r300, r600)
Chris Forbes93c689a2012-11-22 16:23:25 +130092GL_ARB_vertex_type_2_10_10_10_rev DONE (i965, r600)
Brian Pauld35c2ca2010-05-11 21:03:53 -060093
94
95GL 4.0:
96
97GLSL 4.0 not started
Matt Turnered6186f2013-03-06 14:54:27 -080098GL_ARB_texture_query_lod DONE (i965)
Eric Anholtb7932e12012-04-25 13:19:28 -070099GL_ARB_draw_buffers_blend DONE (i965, r600, softpipe)
Kenneth Graunkea6961f32013-05-14 12:22:09 -0700100GL_ARB_draw_indirect started (Christoph)
101GL_ARB_gpu_shader5 started
Brian Pauld35c2ca2010-05-11 21:03:53 -0600102GL_ARB_gpu_shader_fp64 not started
103GL_ARB_sample_shading not started
104GL_ARB_shader_subroutine not started
105GL_ARB_tessellation_shader not started
Eric Anholt5e529d72013-01-10 14:53:12 -0800106GL_ARB_texture_buffer_object_rgb32 DONE (i965, softpipe)
Chris Forbes2f7f0952012-11-22 19:24:22 +1300107GL_ARB_texture_cube_map_array DONE (i965, softpipe)
Kenneth Graunkea6961f32013-05-14 12:22:09 -0700108GL_ARB_texture_gather started (Maxence, Chris)
Marek Olšák06dcb172011-12-17 14:47:15 +0100109GL_ARB_transform_feedback2 DONE
Marek Olšák0f3659b2012-07-05 15:34:42 +0200110GL_ARB_transform_feedback3 DONE
Marek Olšák2892c8b2010-11-21 22:54:33 +0100111
112
113GL 4.1:
114
115GLSL 4.1 not started
Marek Olšák571e1942012-01-12 03:27:27 +0100116GL_ARB_ES2_compatibility DONE (i965, r300, r600)
Kenneth Graunkea73181b2013-02-11 15:55:00 -0800117GL_ARB_get_program_binary DONE (0 binary formats)
Marek Olšák2892c8b2010-11-21 22:54:33 +0100118GL_ARB_separate_shader_objects some infrastructure done
119GL_ARB_shader_precision not started
120GL_ARB_vertex_attrib_64bit not started
121GL_ARB_viewport_array not started
Brian Pauld35c2ca2010-05-11 21:03:53 -0600122
123
Dave Airlie36291172011-08-09 10:39:52 +0100124GL 4.2:
Marek Olšák768589e2012-07-05 20:27:28 +0200125
Dave Airlie36291172011-08-09 10:39:52 +0100126GLSL 4.2 not started
127GL_ARB_texture_compression_bptc not started
128GL_ARB_compressed_texture_pixel_storage not started
129GL_ARB_shader_atomic_counters not started
Chris Forbes76165862013-03-02 12:01:24 +1300130GL_ARB_texture_storage DONE (i965, r300, r600, swrast, gallium)
Marek Olšák0f3659b2012-07-05 15:34:42 +0200131GL_ARB_transform_feedback_instanced DONE
Matt Turner60315e32013-01-22 21:34:25 -0800132GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi)
Dave Airlie36291172011-08-09 10:39:52 +0100133GL_ARB_shader_image_load_store not started
Marek Olšák571e1942012-01-12 03:27:27 +0100134GL_ARB_conservative_depth DONE (softpipe)
Chris Forbes6c0dad62013-07-27 21:29:01 +1200135GL_ARB_shading_language_420pack DONE (i965, gallium)
Kenneth Graunkea73181b2013-02-11 15:55:00 -0800136GL_ARB_internalformat_query DONE (i965, gallium)
Marek Olšákc9f2af32012-10-28 17:52:48 +0100137GL_ARB_map_buffer_alignment DONE (r300, r600, radeonsi)
Brian Pauld35c2ca2010-05-11 21:03:53 -0600138
Brian Paul90894362010-01-05 16:03:11 -0700139
Jason Wood56c1f552012-08-06 13:47:27 -0600140GL 4.3:
141
142GLSL 4.3 not started
143ARB_arrays_of_arrays not started
Matt Turner81e585f2013-03-21 15:59:08 -0700144ARB_ES3_compatibility DONE (i965)
Jason Wood56c1f552012-08-06 13:47:27 -0600145ARB_clear_buffer_object not started
146ARB_compute_shader started (gallium)
147ARB_copy_image not started
Marek Olšák60e610e2012-09-23 17:14:25 +0200148KHR_debug some work done (ARB_debug_output)
Jason Wood56c1f552012-08-06 13:47:27 -0600149ARB_explicit_uniform_location not started
150ARB_fragment_layer_viewport not started
151ARB_framebuffer_no_attachments not started
152ARB_internalformat_query2 not started
153ARB_invalidate_subdata not started
154ARB_multi_draw_indirect not started
155ARB_program_interface_query not started
156ARB_robust_buffer_access_behavior not started
157ARB_shader_image_size not started
158ARB_shader_storage_buffer_object not started
159ARB_stencil_texturing not started
Christoph Bumiller4bdf5452013-01-12 14:59:43 +0100160ARB_texture_buffer_range DONE (nv50, nvc0)
Jason Wood56c1f552012-08-06 13:47:27 -0600161ARB_texture_query_levels not started
Chris Forbes2a528882013-03-16 17:02:58 +1300162ARB_texture_storage_multisample DONE (i965)
Jason Wood56c1f552012-08-06 13:47:27 -0600163ARB_texture_view not started
Kenneth Graunkef2be6392013-07-26 23:46:55 -0700164ARB_vertex_attrib_binding started (Fredrik)
Jason Wood56c1f552012-08-06 13:47:27 -0600165
166
Chris Forbes5a7bdd42013-07-23 09:17:47 +1200167GL 4.4:
168
169GLSL 4.4 not started
170MAX_VERTEX_ATTRIB_STRIDE not started
171ARB_buffer_storage not started
172ARB_clear_texture not started
173ARB_enhanced_layouts not started
174ARB_multi_bind not started
175ARB_query_buffer_object not started
176ARB_texture_mirror_clamp_to_edge not started
177ARB_texture_stencil8 not started
178ARB_vertex_type_10f_11f_11f_rev not started
179
180
Brian Paul90894362010-01-05 16:03:11 -0700181More info about these features and the work involved can be found at
182http://dri.freedesktop.org/wiki/MissingFunctionality