docs: document radeonsi BPTC support, sort extensions in 10.3 release notes
[mesa.git] / docs / GL3.txt
1
2 Status of OpenGL 3.x features in Mesa
3
4
5 Note: when an item is marked as "DONE" it means all the core Mesa
6 infrastructure is complete but it may be the case that few (if any) drivers
7 implement the features.
8
9
10 OpenGL Core and Compatibility context support
11
12 OpenGL 3.1 and later versions are only supported with the Core profile.
13 There are no plans to support GL_ARB_compatibility. The last supported OpenGL
14 version with all deprecated features is 3.0. Some of the later GL features
15 are exposed in the 3.0 context as extensions.
16
17
18 Feature Status
19 ----------------------------------------------------- ------------------------
20
21 GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi
22
23 glBindFragDataLocation, glGetFragDataLocation DONE
24 Conditional rendering (GL_NV_conditional_render) DONE (r300, swrast)
25 Map buffer subranges (GL_ARB_map_buffer_range) DONE (r300, swrast)
26 Clamping controls (GL_ARB_color_buffer_float) DONE (r300)
27 Float textures, renderbuffers (GL_ARB_texture_float) DONE (r300)
28 GL_EXT_packed_float DONE ()
29 GL_EXT_texture_shared_exponent DONE (swrast)
30 Float depth buffers (GL_ARB_depth_buffer_float) DONE ()
31 Framebuffer objects (GL_ARB_framebuffer_object) DONE (r300, swrast)
32 GL_ARB_half_float_pixel DONE (all drivers)
33 GL_ARB_half_float_vertex DONE (r300, swrast)
34 GL_EXT_texture_integer DONE ()
35 GL_EXT_texture_array DONE ()
36 Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE (swrast)
37 GL_EXT_texture_compression_rgtc DONE (r300, swrast)
38 GL_ARB_texture_rg DONE (r300, swrast)
39 Transform feedback (GL_EXT_transform_feedback) DONE ()
40 Vertex array objects (GL_ARB_vertex_array_object) DONE (all drivers)
41 sRGB framebuffer format (GL_EXT_framebuffer_sRGB) DONE ()
42 glClearBuffer commands DONE
43 glGetStringi command DONE
44 glTexParameterI, glGetTexParameterI commands DONE
45 glVertexAttribI commands DONE
46 Depth format cube textures DONE ()
47 GLX_ARB_create_context (GLX 1.4 is required) DONE
48 Multisample anti-aliasing DONE (r300)
49
50
51 GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi
52
53 Forward compatible context support/deprecations DONE ()
54 Instanced drawing (GL_ARB_draw_instanced) DONE (swrast)
55 Buffer copying (GL_ARB_copy_buffer) DONE (r300, swrast)
56 Primitive restart (GL_NV_primitive_restart) DONE (r300)
57 16 vertex texture image units DONE ()
58 Texture buffer objs (GL_ARB_texture_buffer_object) DONE for OpenGL 3.1 contexts ()
59 Rectangular textures (GL_ARB_texture_rectangle) DONE (r300, swrast)
60 Uniform buffer objs (GL_ARB_uniform_buffer_object) DONE (swrast)
61 Signed normalized textures (GL_EXT_texture_snorm) DONE (r300)
62
63
64 GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi
65
66 Core/compatibility profiles DONE
67 Geometry shaders DONE ()
68 BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (r300, swrast)
69 Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (r300, swrast)
70 Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (r300, swrast)
71 Provoking vertex (GL_ARB_provoking_vertex) DONE (r300, swrast)
72 Seamless cubemaps (GL_ARB_seamless_cube_map) DONE ()
73 Multisample textures (GL_ARB_texture_multisample) DONE ()
74 Frag depth clamp (GL_ARB_depth_clamp) DONE (swrast)
75 Fence objects (GL_ARB_sync) DONE (r300, swrast)
76 GLX_ARB_create_context_profile DONE
77
78
79 GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi
80
81 GL_ARB_blend_func_extended DONE (softpipe)
82 GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
83 GL_ARB_occlusion_query2 DONE (r300, swrast)
84 GL_ARB_sampler_objects DONE (all drivers)
85 GL_ARB_shader_bit_encoding DONE ()
86 GL_ARB_texture_rgb10_a2ui DONE ()
87 GL_ARB_texture_swizzle DONE (r300, swrast)
88 GL_ARB_timer_query DONE ()
89 GL_ARB_instanced_arrays DONE (r300)
90 GL_ARB_vertex_type_2_10_10_10_rev DONE ()
91
92
93 GL 4.0, GLSL 4.00:
94
95 GL_ARB_draw_buffers_blend DONE (i965, nv50, nvc0, r600, radeonsi, softpipe)
96 GL_ARB_draw_indirect DONE (i965, nvc0, radeonsi, softpipe, llvmpipe)
97 GL_ARB_gpu_shader5 DONE (nvc0)
98 - 'precise' qualifier DONE
99 - Dynamically uniform sampler array indices DONE ()
100 - Dynamically uniform UBO array indices DONE ()
101 - Implicit signed -> unsigned conversions DONE
102 - Fused multiply-add DONE (i965)
103 - Packing/bitfield/conversion functions DONE (i965, r600)
104 - Enhanced textureGather DONE (i965, r600, radeonsi)
105 - Geometry shader instancing DONE (i965)
106 - Geometry shader multiple streams DONE (i965)
107 - Enhanced per-sample shading DONE (i965, r600)
108 - Interpolation functions DONE (i965)
109 - New overload resolution rules DONE
110 GL_ARB_gpu_shader_fp64 started (Dave)
111 GL_ARB_sample_shading DONE (i965, nv50, nvc0, radeonsi)
112 GL_ARB_shader_subroutine not started
113 GL_ARB_tessellation_shader started (Fabian)
114 GL_ARB_texture_buffer_object_rgb32 DONE (i965, nvc0, r600, radeonsi, softpipe)
115 GL_ARB_texture_cube_map_array DONE (i965, nv50, nvc0, r600, radeonsi, softpipe)
116 GL_ARB_texture_gather DONE (i965, nv50, nvc0, r600, radeonsi)
117 GL_ARB_texture_query_lod DONE (i965, nv50, nvc0, r600, radeonsi)
118 GL_ARB_transform_feedback2 DONE (i965, nv50, nvc0, r600, radeonsi)
119 GL_ARB_transform_feedback3 DONE (i965, nv50, nvc0, r600, radeonsi)
120
121
122 GL 4.1, GLSL 4.10:
123
124 GL_ARB_ES2_compatibility DONE (i965, nv50, nvc0, r300, r600, radeonsi)
125 GL_ARB_get_program_binary DONE (0 binary formats)
126 GL_ARB_separate_shader_objects DONE (all drivers)
127 GL_ARB_shader_precision started (Micah)
128 GL_ARB_vertex_attrib_64bit started (Dave)
129 GL_ARB_viewport_array DONE (i965, nv50, nvc0, r600)
130
131
132 GL 4.2, GLSL 4.20:
133
134 GL_ARB_texture_compression_bptc DONE (i965, nvc0, r600, radeonsi)
135 GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
136 GL_ARB_shader_atomic_counters DONE (i965)
137 GL_ARB_texture_storage DONE (all drivers)
138 GL_ARB_transform_feedback_instanced DONE (i965, nv50, nvc0, r600, radeonsi)
139 GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi)
140 GL_ARB_shader_image_load_store in progress (curro)
141 GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
142 GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
143 GL_ARB_internalformat_query DONE (i965, nv50, nvc0, r300, r600, radeonsi)
144 GL_ARB_map_buffer_alignment DONE (all drivers)
145
146
147 GL 4.3, GLSL 4.30:
148
149 GL_ARB_arrays_of_arrays started (Timothy)
150 GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
151 GL_ARB_clear_buffer_object DONE (all drivers)
152 GL_ARB_compute_shader started (currently stalled)
153 GL_ARB_copy_image DONE (i965)
154 GL_KHR_debug DONE (all drivers)
155 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
156 GL_ARB_fragment_layer_viewport DONE (nv50, nvc0, r600)
157 GL_ARB_framebuffer_no_attachments not started
158 GL_ARB_internalformat_query2 not started
159 GL_ARB_invalidate_subdata DONE (all drivers)
160 GL_ARB_multi_draw_indirect DONE (i965, nvc0, radeonsi, softpipe, llvmpipe)
161 GL_ARB_program_interface_query not started
162 GL_ARB_robust_buffer_access_behavior not started
163 GL_ARB_shader_image_size not started
164 GL_ARB_shader_storage_buffer_object not started
165 GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi)
166 GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi)
167 GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
168 GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
169 GL_ARB_texture_view DONE (i965)
170 GL_ARB_vertex_attrib_binding DONE (all drivers)
171
172
173 GL 4.4, GLSL 4.40:
174
175 GL_MAX_VERTEX_ATTRIB_STRIDE not started
176 GL_ARB_buffer_storage DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi)
177 GL_ARB_clear_texture DONE (i965)
178 GL_ARB_enhanced_layouts not started
179 GL_ARB_multi_bind DONE (all drivers)
180 GL_ARB_query_buffer_object not started
181 GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi, swrast)
182 GL_ARB_texture_stencil8 not started
183 GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, nvc0, r600, radeonsi)
184
185 GL 4.5, GLSL 4.50:
186
187 GL_ARB_ES3_1_compatibility not started
188 GL_ARB_clip_control not started
189 GL_ARB_conditional_render_inverted not started
190 GL_ARB_cull_distance not started
191 GL_ARB_derivative_control not started
192 GL_ARB_direct_state_access not started
193 GL_ARB_get_texture_sub_image started (Brian Paul)
194 GL_ARB_shader_texture_image_samples not started
195 GL_ARB_texture_barrier started (Ilia Mirkin)
196 GL_KHR_context_flush_control not started
197 GL_KHR_robust_buffer_access_behavior not started
198 GL_KHR_robustness 90% done (the ARB variant)
199
200 These are the extensions cherry-picked to make GLES 3.1
201 GLES3.1, GLSL ES 3.1
202 GL_ARB_arrays_of_arrays started (Timothy)
203 GL_ARB_compute_shader started (currently stalled)
204 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
205 GL_ARB_framebuffer_no_attachments not started
206 GL_ARB_program_interface_query not started
207 GL_ARB_shader_atomic_counters DONE (i965)
208 GL_ARB_shader_image_load_store in progress (curro)
209 GL_ARB_shader_storage_buffer_object not started
210 GL_ARB_separate_shader_objects DONE (all drivers)
211 GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi)
212 GL_ARB_vertex_attrib_binding DONE (all drivers)
213 GS5 Enhanced textureGather DONE (i965, nvc0, r600, radeonsi)
214 GS5 Packing/bitfield/conversion functions DONE (i965, nvc0, r600)
215 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
216
217
218 More info about these features and the work involved can be found at
219 http://dri.freedesktop.org/wiki/MissingFunctionality