i965: Expose logic telling if non-msrt mcs is supported
[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, llvmpipe, softpipe
22
23 glBindFragDataLocation, glGetFragDataLocation DONE
24 Conditional rendering (GL_NV_conditional_render) DONE ()
25 Map buffer subranges (GL_ARB_map_buffer_range) DONE ()
26 Clamping controls (GL_ARB_color_buffer_float) DONE ()
27 Float textures, renderbuffers (GL_ARB_texture_float) DONE ()
28 GL_EXT_packed_float DONE ()
29 GL_EXT_texture_shared_exponent DONE ()
30 Float depth buffers (GL_ARB_depth_buffer_float) DONE ()
31 Framebuffer objects (GL_ARB_framebuffer_object) DONE ()
32 GL_ARB_half_float_pixel DONE (all drivers)
33 GL_ARB_half_float_vertex DONE ()
34 GL_EXT_texture_integer DONE ()
35 GL_EXT_texture_array DONE ()
36 Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE ()
37 GL_EXT_texture_compression_rgtc DONE ()
38 GL_ARB_texture_rg DONE ()
39 Transform feedback (GL_EXT_transform_feedback) DONE ()
40 Vertex array objects (GL_ARB_vertex_array_object) DONE ()
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 (llvmpipe (*), softpipe (*))
49
50 (*) llvmpipe and softpipe have fake Multisample anti-aliasing support
51
52
53 GL 3.1, GLSL 1.40 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
54
55 Forward compatible context support/deprecations DONE ()
56 Instanced drawing (GL_ARB_draw_instanced) DONE ()
57 Buffer copying (GL_ARB_copy_buffer) DONE ()
58 Primitive restart (GL_NV_primitive_restart) DONE ()
59 16 vertex texture image units DONE ()
60 Texture buffer objs (GL_ARB_texture_buffer_object) DONE for OpenGL 3.1 contexts ()
61 Rectangular textures (GL_ARB_texture_rectangle) DONE ()
62 Uniform buffer objs (GL_ARB_uniform_buffer_object) DONE ()
63 Signed normalized textures (GL_EXT_texture_snorm) DONE ()
64
65
66 GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
67
68 Core/compatibility profiles DONE
69 Geometry shaders DONE ()
70 BGRA vertex order (GL_ARB_vertex_array_bgra) DONE ()
71 Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE ()
72 Frag shader coord (GL_ARB_fragment_coord_conventions) DONE ()
73 Provoking vertex (GL_ARB_provoking_vertex) DONE ()
74 Seamless cubemaps (GL_ARB_seamless_cube_map) DONE ()
75 Multisample textures (GL_ARB_texture_multisample) DONE ()
76 Frag depth clamp (GL_ARB_depth_clamp) DONE ()
77 Fence objects (GL_ARB_sync) DONE ()
78 GLX_ARB_create_context_profile DONE
79
80
81 GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe
82
83 GL_ARB_blend_func_extended DONE ()
84 GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
85 GL_ARB_occlusion_query2 DONE ()
86 GL_ARB_sampler_objects DONE (all drivers)
87 GL_ARB_shader_bit_encoding DONE ()
88 GL_ARB_texture_rgb10_a2ui DONE ()
89 GL_ARB_texture_swizzle DONE ()
90 GL_ARB_timer_query DONE ()
91 GL_ARB_instanced_arrays DONE ()
92 GL_ARB_vertex_type_2_10_10_10_rev DONE ()
93
94
95 GL 4.0, GLSL 4.00 --- all DONE: nvc0, r600, radeonsi
96
97 GL_ARB_draw_buffers_blend DONE (i965, nv50, llvmpipe, softpipe)
98 GL_ARB_draw_indirect DONE (i965, llvmpipe, softpipe)
99 GL_ARB_gpu_shader5 DONE (i965)
100 - 'precise' qualifier DONE
101 - Dynamically uniform sampler array indices DONE (softpipe)
102 - Dynamically uniform UBO array indices DONE ()
103 - Implicit signed -> unsigned conversions DONE
104 - Fused multiply-add DONE ()
105 - Packing/bitfield/conversion functions DONE (softpipe)
106 - Enhanced textureGather DONE (softpipe)
107 - Geometry shader instancing DONE (llvmpipe, softpipe)
108 - Geometry shader multiple streams DONE ()
109 - Enhanced per-sample shading DONE ()
110 - Interpolation functions DONE ()
111 - New overload resolution rules DONE
112 GL_ARB_gpu_shader_fp64 DONE (llvmpipe, softpipe)
113 GL_ARB_sample_shading DONE (i965, nv50)
114 GL_ARB_shader_subroutine DONE (i965, nv50, llvmpipe, softpipe)
115 GL_ARB_tessellation_shader DONE (i965)
116 GL_ARB_texture_buffer_object_rgb32 DONE (i965, llvmpipe, softpipe)
117 GL_ARB_texture_cube_map_array DONE (i965, nv50, llvmpipe, softpipe)
118 GL_ARB_texture_gather DONE (i965, nv50, llvmpipe, softpipe)
119 GL_ARB_texture_query_lod DONE (i965, nv50, softpipe)
120 GL_ARB_transform_feedback2 DONE (i965, nv50, llvmpipe, softpipe)
121 GL_ARB_transform_feedback3 DONE (i965, nv50, llvmpipe, softpipe)
122
123
124 GL 4.1, GLSL 4.10 --- all DONE: nvc0, r600, radeonsi
125
126 GL_ARB_ES2_compatibility DONE (i965, nv50, llvmpipe, softpipe)
127 GL_ARB_get_program_binary DONE (0 binary formats)
128 GL_ARB_separate_shader_objects DONE (all drivers)
129 GL_ARB_shader_precision DONE (all drivers that support GLSL 4.10)
130 GL_ARB_vertex_attrib_64bit DONE (llvmpipe, softpipe)
131 GL_ARB_viewport_array DONE (i965, nv50, llvmpipe, softpipe)
132
133
134 GL 4.2, GLSL 4.20:
135
136 GL_ARB_texture_compression_bptc DONE (i965, nvc0, r600, radeonsi)
137 GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
138 GL_ARB_shader_atomic_counters DONE (i965, nvc0)
139 GL_ARB_texture_storage DONE (all drivers)
140 GL_ARB_transform_feedback_instanced DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
141 GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
142 GL_ARB_shader_image_load_store DONE (i965)
143 GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
144 GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
145 GL_ARB_shading_language_packing DONE (all drivers)
146 GL_ARB_internalformat_query DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
147 GL_ARB_map_buffer_alignment DONE (all drivers)
148
149
150 GL 4.3, GLSL 4.30:
151
152 GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
153 GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
154 GL_ARB_clear_buffer_object DONE (all drivers)
155 GL_ARB_compute_shader DONE (i965)
156 GL_ARB_copy_image DONE (i965, nv50, nvc0, r600, radeonsi)
157 GL_KHR_debug DONE (all drivers)
158 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
159 GL_ARB_fragment_layer_viewport DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe)
160 GL_ARB_framebuffer_no_attachments DONE (i965)
161 GL_ARB_internalformat_query2 in progress (elima)
162 GL_ARB_invalidate_subdata DONE (all drivers)
163 GL_ARB_multi_draw_indirect DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)
164 GL_ARB_program_interface_query DONE (all drivers)
165 GL_ARB_robust_buffer_access_behavior not started
166 GL_ARB_shader_image_size DONE (i965)
167 GL_ARB_shader_storage_buffer_object DONE (i965, nvc0)
168 GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
169 GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi, llvmpipe)
170 GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
171 GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
172 GL_ARB_texture_view DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
173 GL_ARB_vertex_attrib_binding DONE (all drivers)
174
175
176 GL 4.4, GLSL 4.40:
177
178 GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
179 GL_ARB_buffer_storage DONE (i965, nv50, nvc0, r600, radeonsi)
180 GL_ARB_clear_texture DONE (i965, nv50, nvc0)
181 GL_ARB_enhanced_layouts in progress (Timothy)
182 - compile-time constant expressions DONE
183 - explicit byte offsets for blocks in progress
184 - forced alignment within blocks in progress
185 - specified vec4-slot component numbers in progress
186 - specified transform/feedback layout in progress
187 - input/output block locations DONE
188 GL_ARB_multi_bind DONE (all drivers)
189 GL_ARB_query_buffer_object DONE (nvc0)
190 GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
191 GL_ARB_texture_stencil8 DONE (nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
192 GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
193
194 GL 4.5, GLSL 4.50:
195
196 GL_ARB_ES3_1_compatibility not started
197 GL_ARB_clip_control DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
198 GL_ARB_conditional_render_inverted DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
199 GL_ARB_cull_distance in progress (Tobias)
200 GL_ARB_derivative_control DONE (i965, nv50, nvc0, r600, radeonsi)
201 GL_ARB_direct_state_access DONE (all drivers)
202 GL_ARB_get_texture_sub_image DONE (all drivers)
203 GL_ARB_shader_texture_image_samples DONE (i965, nv50, nvc0, r600, radeonsi)
204 GL_ARB_texture_barrier DONE (i965, nv50, nvc0, r600, radeonsi)
205 GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
206 GL_KHR_robust_buffer_access_behavior not started
207 GL_KHR_robustness 90% done (the ARB variant)
208 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
209
210 These are the extensions cherry-picked to make GLES 3.1
211 GLES3.1, GLSL ES 3.1
212 GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
213 GL_ARB_compute_shader DONE (i965)
214 GL_ARB_draw_indirect DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)
215 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
216 GL_ARB_framebuffer_no_attachments DONE (i965)
217 GL_ARB_program_interface_query DONE (all drivers)
218 GL_ARB_shader_atomic_counters DONE (i965, nvc0)
219 GL_ARB_shader_image_load_store DONE (i965)
220 GL_ARB_shader_image_size DONE (i965)
221 GL_ARB_shader_storage_buffer_object DONE (i965, nvc0)
222 GL_ARB_shading_language_packing DONE (all drivers)
223 GL_ARB_separate_shader_objects DONE (all drivers)
224 GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
225 Multisample textures (GL_ARB_texture_multisample) DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
226 GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
227 GL_ARB_vertex_attrib_binding DONE (all drivers)
228 GS5 Enhanced textureGather DONE (i965, nvc0, r600, radeonsi)
229 GS5 Packing/bitfield/conversion functions DONE (i965, nvc0, r600, radeonsi)
230 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
231
232 Additional functionality not covered above:
233 glMemoryBarrierByRegion DONE
234 glGetTexLevelParameter[fi]v - needs updates DONE
235 glGetBooleani_v - restrict to GLES enums
236 gl_HelperInvocation support DONE (i965, nvc0, r600)
237
238 GLES3.2, GLSL ES 3.2
239 GL_EXT_color_buffer_float DONE (all drivers)
240 GL_KHR_blend_equation_advanced not started
241 GL_KHR_debug DONE (all drivers)
242 GL_KHR_robustness 90% done (the ARB variant)
243 GL_KHR_texture_compression_astc_ldr DONE (i965/gen9+)
244 GL_OES_copy_image not started (based on GL_ARB_copy_image, which is done for some drivers)
245 GL_OES_draw_buffers_indexed not started
246 GL_OES_draw_elements_base_vertex DONE (all drivers)
247 GL_OES_geometry_shader started (Marta)
248 GL_OES_gpu_shader5 not started (based on parts of GL_ARB_gpu_shader5, which is done for some drivers)
249 GL_OES_primitive_bounding box not started
250 GL_OES_sample_shading not started (based on parts of GL_ARB_sample_shading, which is done for some drivers)
251 GL_OES_sample_variables not started (based on parts of GL_ARB_sample_shading, which is done for some drivers)
252 GL_OES_shader_image_atomic not started (based on parts of GL_ARB_shader_image_load_store, which is done for some drivers)
253 GL_OES_shader_io_blocks not started (based on parts of GLSL 1.50, which is done)
254 GL_OES_shader_multisample_interpolation not started (based on parts of GL_ARB_gpu_shader5, which is done)
255 GL_OES_tessellation_shader not started (based on GL_ARB_tessellation_shader, which is done for some drivers)
256 GL_OES_texture_border_clamp not started (based on GL_ARB_texture_border_clamp, which is done)
257 GL_OES_texture_buffer not started (based on GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_range, and GL_ARB_texture_buffer_object_rgb32 that are all done)
258 GL_OES_texture_cube_map_array not started (based on GL_ARB_texture_cube_map_array, which is done for all drivers)
259 GL_OES_texture_stencil8 not started (based on GL_ARB_texture_stencil8, which is done for some drivers)
260 GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample)
261
262 More info about these features and the work involved can be found at
263 http://dri.freedesktop.org/wiki/MissingFunctionality