blob: 90357797d0a992260c4c2f724de0a4419fa87195 [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
10Feature Status
11----------------------------------------------------- ------------------------
12
13GL 3.0:
14
Matt Turner151b4f32012-01-11 15:29:51 -050015GLSL 1.30 DONE
Dave Airliec33d2e62011-11-27 16:44:03 +000016glBindFragDataLocation, glGetFragDataLocation DONE
Marek Olšák571e1942012-01-12 03:27:27 +010017Conditional rendering (GL_NV_conditional_render) DONE (i965, r300, r600, swrast)
18Map buffer subranges (GL_ARB_map_buffer_range) DONE (i965, r300, r600, swrast)
19Clamping controls (GL_ARB_color_buffer_float) DONE (i965, r300, r600)
20Float textures, renderbuffers (GL_ARB_texture_float) DONE (i965, r300, r600)
Matt Turner151b4f32012-01-11 15:29:51 -050021GL_EXT_packed_float DONE (i965, r600)
22GL_EXT_texture_shared_exponent DONE (i965, r600, swrast)
23Float depth buffers (GL_ARB_depth_buffer_float) DONE (i965, r600)
Marek Olšák4c0d88c2012-01-12 03:52:06 +010024Framebuffer objects (GL_ARB_framebuffer_object) DONE (i965, r300, r600, swrast)
Marek Olšáke0b98cd2011-01-27 21:17:25 +010025Half-float DONE
Eric Anholt252d99e2012-04-13 12:09:59 -070026Non-normalized Integer texture/framebuffer formats DONE (i965)
Matt Turner151b4f32012-01-11 15:29:51 -0500271D/2D Texture arrays DONE
Matt Turner151b4f32012-01-11 15:29:51 -050028Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE (i965, r600, swrast)
Marek Olšák571e1942012-01-12 03:27:27 +010029GL_EXT_texture_compression_rgtc DONE (i965, r300, r600, swrast)
Matt Turner151b4f32012-01-11 15:29:51 -050030Red and red/green texture formats DONE (i965, swrast, gallium)
31Transform feedback (GL_EXT_transform_feedback) DONE (i965)
Marek Olšák571e1942012-01-12 03:27:27 +010032Vertex array objects (GL_APPLE_vertex_array_object) DONE (i965, r300, r600, swrast)
Matt Turner151b4f32012-01-11 15:29:51 -050033sRGB framebuffer format (GL_EXT_framebuffer_sRGB) DONE (i965, r600)
Brian Paul0ec0f102010-11-21 09:31:19 -070034glClearBuffer commands DONE
35glGetStringi command DONE
36glTexParameterI, glGetTexParameterI commands DONE
Marek Olšák492b69f32012-10-30 14:44:22 +010037glVertexAttribI commands DONE
Matt Turner151b4f32012-01-11 15:29:51 -050038Depth format cube textures DONE
39GLX_ARB_create_context (GLX 1.4 is required) DONE
Brian Paul9b0bbe12009-12-30 10:39:20 -070040
41
42GL 3.1:
43
Ian Romanick2d2f1fd2012-08-30 15:22:37 -070044GLSL 1.40 DONE (i965)
45Forward compatibile context support/deprecations DONE (i965)
Eric Anholt45f460f2012-04-13 12:09:11 -070046Instanced drawing (GL_ARB_draw_instanced) DONE (i965, gallium, swrast)
Marek Olšák571e1942012-01-12 03:27:27 +010047Buffer copying (GL_ARB_copy_buffer) DONE (i965, r300, r600, swrast)
Jordan Justendf7d1322012-05-12 21:01:19 -070048Primitive restart (GL_NV_primitive_restart) DONE (i965, r600)
Marek Olšák9e9d73e2011-06-30 21:27:46 +02004916 vertex texture image units DONE
Ian Romanick2d2f1fd2012-08-30 15:22:37 -070050Texture buffer objs (GL_ARB_texture_buffer_object) DONE for OpenGL 3.1 contexts (i965)
Marek Olšák571e1942012-01-12 03:27:27 +010051Rectangular textures (GL_ARB_texture_rectangle) DONE (i965, r300, r600, swrast)
Eric Anholt4a078512012-06-27 13:46:26 -070052Uniform buffer objs (GL_ARB_uniform_buffer_object) DONE (i965)
Marek Olšák571e1942012-01-12 03:27:27 +010053Signed normalized textures (GL_EXT_texture_snorm) DONE (i965, r300, r600)
Brian Paul9b0bbe12009-12-30 10:39:20 -070054
55
56GL 3.2:
57
Ian Romanick2d2f1fd2012-08-30 15:22:37 -070058Core/compatibility profiles DONE
Brian Paul9b0bbe12009-12-30 10:39:20 -070059GLSL 1.50 not started
60Geometry shaders (GL_ARB_geometry_shader4) partially done (Zack)
Marek Olšák571e1942012-01-12 03:27:27 +010061BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (i965, r300, r600, swrast)
62Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (i965, r300, r600, swrast)
63Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (i965, r300, r600, swrast)
64Provoking vertex (GL_ARB_provoking_vertex) DONE (i965, r300, r600, swrast)
Matt Turner151b4f32012-01-11 15:29:51 -050065Seamless cubemaps (GL_ARB_seamless_cube_map) DONE (i965, r600)
Brian Paul9b0bbe12009-12-30 10:39:20 -070066Multisample textures (GL_ARB_texture_multisample) not started
Matt Turner151b4f32012-01-11 15:29:51 -050067Frag depth clamp (GL_ARB_depth_clamp) DONE (i965, r600, swrast)
Marek Olšák571e1942012-01-12 03:27:27 +010068Fence objects (GL_ARB_sync) DONE (i965, r300, r600, swrast)
Matt Turner151b4f32012-01-11 15:29:51 -050069GLX_ARB_create_context_profile DONE
Brian Paul9b0bbe12009-12-30 10:39:20 -070070
71
Brian Pauld35c2ca2010-05-11 21:03:53 -060072GL 3.3:
73
Marek Olšák0f530d22012-06-25 23:48:33 +020074GLSL 3.30 new features in this version pretty much done
Eric Anholt29362872012-04-25 13:58:07 -070075GL_ARB_blend_func_extended DONE (i965, r600, softpipe)
Marek Olšák571e1942012-01-12 03:27:27 +010076GL_ARB_explicit_attrib_location DONE (i915, i965, r300, r600, swrast)
Eric Anholt9a2943d2012-08-23 09:56:31 -070077GL_ARB_occlusion_query2 DONE (i965, r300, r600, swrast)
Marek Olšák571e1942012-01-12 03:27:27 +010078GL_ARB_sampler_objects DONE (i965, r300, r600)
Marek Olšák0f530d22012-06-25 23:48:33 +020079GL_ARB_shader_bit_encoding DONE
Jordan Justenb3900ed2012-06-09 12:19:11 -070080GL_ARB_texture_rgb10_a2ui DONE (i965, r600)
Marek Olšák571e1942012-01-12 03:27:27 +010081GL_ARB_texture_swizzle DONE (same as EXT version) (i965, r300, r600, swrast)
Eric Anholtf0159012012-07-18 10:18:26 -070082GL_ARB_timer_query DONE (i965)
Jordan Justen35880982012-05-27 10:48:47 -070083GL_ARB_instanced_arrays DONE (i965, r300, r600)
Matt Turner151b4f32012-01-11 15:29:51 -050084GL_ARB_vertex_type_2_10_10_10_rev DONE (r600)
Brian Pauld35c2ca2010-05-11 21:03:53 -060085
86
87GL 4.0:
88
89GLSL 4.0 not started
90GL_ARB_texture_query_lod not started
Eric Anholtb7932e12012-04-25 13:19:28 -070091GL_ARB_draw_buffers_blend DONE (i965, r600, softpipe)
Brian Pauld35c2ca2010-05-11 21:03:53 -060092GL_ARB_draw_indirect not started
Marek Olšák768589e2012-07-05 20:27:28 +020093GL_ARB_gpu_shader5 not started
Brian Pauld35c2ca2010-05-11 21:03:53 -060094GL_ARB_gpu_shader_fp64 not started
95GL_ARB_sample_shading not started
96GL_ARB_shader_subroutine not started
97GL_ARB_tessellation_shader not started
98GL_ARB_texture_buffer_object_rgb32 not started
99GL_ARB_texture_cube_map_array not started
100GL_ARB_texture_gather not started
Marek Olšák06dcb172011-12-17 14:47:15 +0100101GL_ARB_transform_feedback2 DONE
Marek Olšák0f3659b2012-07-05 15:34:42 +0200102GL_ARB_transform_feedback3 DONE
Marek Olšák2892c8b2010-11-21 22:54:33 +0100103
104
105GL 4.1:
106
107GLSL 4.1 not started
Marek Olšák571e1942012-01-12 03:27:27 +0100108GL_ARB_ES2_compatibility DONE (i965, r300, r600)
Marek Olšák2892c8b2010-11-21 22:54:33 +0100109GL_ARB_get_program_binary not started
110GL_ARB_separate_shader_objects some infrastructure done
111GL_ARB_shader_precision not started
112GL_ARB_vertex_attrib_64bit not started
113GL_ARB_viewport_array not started
Brian Pauld35c2ca2010-05-11 21:03:53 -0600114
115
Dave Airlie36291172011-08-09 10:39:52 +0100116GL 4.2:
Marek Olšák768589e2012-07-05 20:27:28 +0200117
Dave Airlie36291172011-08-09 10:39:52 +0100118GLSL 4.2 not started
119GL_ARB_texture_compression_bptc not started
120GL_ARB_compressed_texture_pixel_storage not started
121GL_ARB_shader_atomic_counters not started
Marek Olšák571e1942012-01-12 03:27:27 +0100122GL_ARB_texture_storage DONE (r300, r600, swrast)
Marek Olšák0f3659b2012-07-05 15:34:42 +0200123GL_ARB_transform_feedback_instanced DONE
Fredrik Höglund4e943c32012-06-18 22:50:04 +0200124GL_ARB_base_instance DONE (nv50, nvc0, r600, radeonsi)
Dave Airlie36291172011-08-09 10:39:52 +0100125GL_ARB_shader_image_load_store not started
Marek Olšák571e1942012-01-12 03:27:27 +0100126GL_ARB_conservative_depth DONE (softpipe)
Dave Airlie36291172011-08-09 10:39:52 +0100127GL_ARB_shading_language_420pack not started
128GL_ARB_internalformat_query not started
129GL_ARB_map_buffer_alignment not started
Brian Pauld35c2ca2010-05-11 21:03:53 -0600130
Brian Paul90894362010-01-05 16:03:11 -0700131
Jason Wood56c1f552012-08-06 13:47:27 -0600132GL 4.3:
133
134GLSL 4.3 not started
135ARB_arrays_of_arrays not started
136ARB_ES3_compatibility not started
137ARB_clear_buffer_object not started
138ARB_compute_shader started (gallium)
139ARB_copy_image not started
140ARB_debug_group not started
141ARB_debug_label not started
Brian Paule6227232012-08-06 16:48:00 -0600142ARB_debug_output DONE
Jason Wood56c1f552012-08-06 13:47:27 -0600143ARB_debug_output2 not started
Jason Wood56c1f552012-08-06 13:47:27 -0600144ARB_explicit_uniform_location not started
145ARB_fragment_layer_viewport not started
146ARB_framebuffer_no_attachments not started
147ARB_internalformat_query2 not started
148ARB_invalidate_subdata not started
149ARB_multi_draw_indirect not started
150ARB_program_interface_query not started
151ARB_robust_buffer_access_behavior not started
152ARB_shader_image_size not started
153ARB_shader_storage_buffer_object not started
154ARB_stencil_texturing not started
155ARB_texture_buffer_range not started
156ARB_texture_query_levels not started
157ARB_texture_storage_multisample not started
158ARB_texture_view not started
159ARB_vertex_attrib_binding not started
160
161
Brian Paul90894362010-01-05 16:03:11 -0700162More info about these features and the work involved can be found at
163http://dri.freedesktop.org/wiki/MissingFunctionality