1# Status of OpenGL extensions in Mesa 2 3Here's how to read this file: 4 5all DONE: <driver>, ... 6 All the extensions are done for the given list of drivers. 7 8DONE 9 The extension is done for Mesa and no implementation is necessary on the 10 driver-side. 11 12DONE () 13 The extension is done for Mesa and all the drivers in the "all DONE" list. 14 15DONE (<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 26 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 33Feature Status 34------------------------------------------------------- ------------------------ 35 36GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr 37 38 glBindFragDataLocation, glGetFragDataLocation DONE 39 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 () 43 GL_EXT_packed_float DONE () 44 GL_EXT_texture_shared_exponent DONE () 45 GL_ARB_depth_buffer_float (Float depth buffers) DONE () 46 GL_ARB_framebuffer_object (Framebuffer objects) DONE () 47 GL_ARB_half_float_pixel DONE (all drivers) 48 GL_ARB_half_float_vertex DONE () 49 GL_EXT_texture_integer DONE () 50 GL_EXT_texture_array DONE () 51 GL_EXT_draw_buffers2 (Per-buffer blend and masks) DONE () 52 GL_EXT_texture_compression_rgtc DONE () 53 GL_ARB_texture_rg DONE () 54 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 () 57 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 63 Multisample anti-aliasing DONE (freedreno (*), llvmpipe (*), softpipe (*), swr (*)) 64 65(*) freedreno, llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support 66 67 68GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr 69 70 Forward compatible context support/deprecations DONE () 71 GL_ARB_draw_instanced (Instanced drawing) DONE () 72 GL_ARB_copy_buffer (Buffer copying) DONE () 73 GL_NV_primitive_restart (Primitive restart) DONE () 74 16 vertex texture image units DONE () 75 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 () 79 80 81GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe 82 83 Core/compatibility profiles DONE 84 Geometry shaders DONE () 85 GL_ARB_vertex_array_bgra (BGRA vertex order) DONE (freedreno, swr) 86 GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (freedreno, swr) 87 GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (freedreno, swr) 88 GL_ARB_provoking_vertex (Provoking vertex) DONE (freedreno, swr) 89 GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (freedreno, swr) 90 GL_ARB_texture_multisample (Multisample textures) DONE (swr) 91 GL_ARB_depth_clamp (Frag depth clamp) DONE (freedreno, swr) 92 GL_ARB_sync (Fence objects) DONE (freedreno, swr) 93 GLX_ARB_create_context_profile DONE 94 95 96GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe 97 98 GL_ARB_blend_func_extended DONE (freedreno/a3xx, swr) 99 GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL) 100 GL_ARB_occlusion_query2 DONE (freedreno, swr) 101 GL_ARB_sampler_objects DONE (all drivers) 102 GL_ARB_shader_bit_encoding DONE (freedreno, swr) 103 GL_ARB_texture_rgb10_a2ui DONE (freedreno, swr) 104 GL_ARB_texture_swizzle DONE (freedreno, swr) 105 GL_ARB_timer_query DONE (swr) 106 GL_ARB_instanced_arrays DONE (freedreno, swr) 107 GL_ARB_vertex_type_2_10_10_10_rev DONE (freedreno, swr) 108 109 110GL 4.0, GLSL 4.00 --- all DONE: i965/hsw+, nvc0, r600, radeonsi 111 112 GL_ARB_draw_buffers_blend DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr) 113 GL_ARB_draw_indirect DONE (i965/gen7+, llvmpipe, softpipe, swr) 114 GL_ARB_gpu_shader5 DONE (i965/gen7+) 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 (i965/hsw+, llvmpipe, softpipe) 128 GL_ARB_sample_shading DONE (i965/gen6+, nv50) 129 GL_ARB_shader_subroutine DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr) 130 GL_ARB_tessellation_shader DONE (i965/gen7+) 131 GL_ARB_texture_buffer_object_rgb32 DONE (i965/gen6+, llvmpipe, softpipe, swr) 132 GL_ARB_texture_cube_map_array DONE (i965/gen6+, nv50, llvmpipe, softpipe) 133 GL_ARB_texture_gather DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr) 134 GL_ARB_texture_query_lod DONE (i965, nv50, softpipe) 135 GL_ARB_transform_feedback2 DONE (i965/gen7+, nv50, llvmpipe, softpipe, swr) 136 GL_ARB_transform_feedback3 DONE (i965/gen7+, llvmpipe, softpipe, swr) 137 138 139GL 4.1, GLSL 4.10 --- all DONE: i965/hsw+, nvc0, r600, radeonsi 140 141 GL_ARB_ES2_compatibility DONE (i965, nv50, llvmpipe, softpipe, swr) 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 (i965/hsw+, all drivers that support GLSL 4.10) 145 GL_ARB_vertex_attrib_64bit DONE (i965/hsw+, llvmpipe, softpipe) 146 GL_ARB_viewport_array DONE (i965, nv50, llvmpipe, softpipe) 147 148 149GL 4.2, GLSL 4.20 -- all DONE: i965/hsw+, nvc0, radeonsi 150 151 GL_ARB_texture_compression_bptc DONE (i965, r600) 152 GL_ARB_compressed_texture_pixel_storage DONE (all drivers) 153 GL_ARB_shader_atomic_counters DONE (i965, softpipe) 154 GL_ARB_texture_storage DONE (all drivers) 155 GL_ARB_transform_feedback_instanced DONE (i965, nv50, r600, llvmpipe, softpipe, swr) 156 GL_ARB_base_instance DONE (i965, nv50, r600, llvmpipe, softpipe, swr) 157 GL_ARB_shader_image_load_store DONE (i965, softpipe) 158 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, r600, llvmpipe, softpipe, swr) 162 GL_ARB_map_buffer_alignment DONE (all drivers) 163 164 165GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, radeonsi 166 167 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, softpipe) 171 GL_ARB_copy_image DONE (i965, nv50, r600, softpipe, llvmpipe) 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, r600, llvmpipe, softpipe) 175 GL_ARB_framebuffer_no_attachments DONE (i965, r600, softpipe) 176 GL_ARB_internalformat_query2 DONE (all drivers) 177 GL_ARB_invalidate_subdata DONE (all drivers) 178 GL_ARB_multi_draw_indirect DONE (i965, r600, llvmpipe, softpipe, swr) 179 GL_ARB_program_interface_query DONE (all drivers) 180 GL_ARB_robust_buffer_access_behavior DONE (i965) 181 GL_ARB_shader_image_size DONE (i965, softpipe) 182 GL_ARB_shader_storage_buffer_object DONE (i965, softpipe) 183 GL_ARB_stencil_texturing DONE (i965/hsw+, nv50, r600, llvmpipe, softpipe, swr) 184 GL_ARB_texture_buffer_range DONE (nv50, i965, r600, 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, r600, llvmpipe, softpipe, swr) 188 GL_ARB_vertex_attrib_binding DONE (all drivers) 189 190 191GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, radeonsi 192 193 GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers) 194 GL_ARB_buffer_storage DONE (i965, nv50, r600) 195 GL_ARB_clear_texture DONE (i965, nv50, r600) 196 GL_ARB_enhanced_layouts DONE (i965, nv50, llvmpipe, softpipe) 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 DONE (i965, nv50, llvmpipe, softpipe) 201 - specified transform/feedback layout DONE 202 - input/output block locations DONE 203 GL_ARB_multi_bind DONE (all drivers) 204 GL_ARB_query_buffer_object DONE (i965/hsw+) 205 GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, r600, llvmpipe, softpipe, swr) 206 GL_ARB_texture_stencil8 DONE (i965/hsw+, nv50, r600, llvmpipe, softpipe, swr) 207 GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, r600, llvmpipe, softpipe, swr) 208 209GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi 210 211 GL_ARB_ES3_1_compatibility DONE (i965/hsw+) 212 GL_ARB_clip_control DONE (i965, nv50, r600, llvmpipe, softpipe, swr) 213 GL_ARB_conditional_render_inverted DONE (i965, nv50, r600, llvmpipe, softpipe, swr) 214 GL_ARB_cull_distance DONE (i965, nv50, llvmpipe, softpipe, swr) 215 GL_ARB_derivative_control DONE (i965, nv50, r600) 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, r600) 219 GL_ARB_texture_barrier DONE (i965, nv50, r600) 220 GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful) 221 GL_KHR_robustness DONE (i965) 222 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL) 223 224These are the extensions cherry-picked to make GLES 3.1 225GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, radeonsi 226 227 GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30) 228 GL_ARB_compute_shader DONE (i965/gen7+, softpipe) 229 GL_ARB_draw_indirect DONE (i965/gen7+, r600, llvmpipe, softpipe, swr) 230 GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL) 231 GL_ARB_framebuffer_no_attachments DONE (i965/gen7+, r600, softpipe) 232 GL_ARB_program_interface_query DONE (all drivers) 233 GL_ARB_shader_atomic_counters DONE (i965/gen7+, softpipe) 234 GL_ARB_shader_image_load_store DONE (i965/gen7+, softpipe) 235 GL_ARB_shader_image_size DONE (i965/gen7+, softpipe) 236 GL_ARB_shader_storage_buffer_object DONE (i965/gen7+, softpipe) 237 GL_ARB_shading_language_packing DONE (all drivers) 238 GL_ARB_separate_shader_objects DONE (all drivers) 239 GL_ARB_stencil_texturing DONE (nv50, r600, llvmpipe, softpipe, swr) 240 GL_ARB_texture_multisample (Multisample textures) DONE (i965/gen7+, nv50, r600, llvmpipe, softpipe) 241 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/gen7+, r600) 244 GS5 Packing/bitfield/conversion functions DONE (i965/gen6+, r600) 245 GL_EXT_shader_integer_mix DONE (all drivers that support GLSL) 246 247 Additional functionality not covered above: 248 glMemoryBarrierByRegion DONE 249 glGetTexLevelParameter[fi]v - needs updates DONE 250 glGetBooleani_v - restrict to GLES enums 251 gl_HelperInvocation support DONE (i965, r600) 252 253GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+ 254 255 GL_EXT_color_buffer_float DONE (all drivers) 256 GL_KHR_blend_equation_advanced DONE (i965, nvc0) 257 GL_KHR_debug DONE (all drivers) 258 GL_KHR_robustness DONE (i965, nvc0, radeonsi) 259 GL_KHR_texture_compression_astc_ldr DONE (i965/gen9+) 260 GL_OES_copy_image DONE (all drivers) 261 GL_OES_draw_buffers_indexed DONE (all drivers that support GL_ARB_draw_buffers_blend) 262 GL_OES_draw_elements_base_vertex DONE (all drivers) 263 GL_OES_geometry_shader DONE (i965/hsw+, nvc0, radeonsi) 264 GL_OES_gpu_shader5 DONE (all drivers that support GL_ARB_gpu_shader5) 265 GL_OES_primitive_bounding_box DONE (i965/gen7+, nvc0, radeonsi) 266 GL_OES_sample_shading DONE (i965, nvc0, r600, radeonsi) 267 GL_OES_sample_variables DONE (i965, nvc0, r600, radeonsi) 268 GL_OES_shader_image_atomic DONE (all drivers that support GL_ARB_shader_image_load_store) 269 GL_OES_shader_io_blocks DONE (All drivers that support GLES 3.1) 270 GL_OES_shader_multisample_interpolation DONE (i965, nvc0, r600, radeonsi) 271 GL_OES_tessellation_shader DONE (all drivers that support GL_ARB_tessellation_shader) 272 GL_OES_texture_border_clamp DONE (all drivers) 273 GL_OES_texture_buffer DONE (i965, nvc0, radeonsi) 274 GL_OES_texture_cube_map_array DONE (i965/hsw+, nvc0, radeonsi) 275 GL_OES_texture_stencil8 DONE (all drivers that support GL_ARB_texture_stencil8) 276 GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample) 277 278Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version: 279 280 GL_ARB_bindless_texture started (airlied) 281 GL_ARB_cl_event not started 282 GL_ARB_compute_variable_group_size DONE (nvc0, radeonsi) 283 GL_ARB_ES3_2_compatibility DONE (i965/gen8+) 284 GL_ARB_fragment_shader_interlock not started 285 GL_ARB_gl_spirv not started 286 GL_ARB_gpu_shader_int64 started (airlied for core and Gallium, idr for i965) 287 GL_ARB_indirect_parameters DONE (nvc0, radeonsi) 288 GL_ARB_parallel_shader_compile not started, but Chia-I Wu did some related work in 2014 289 GL_ARB_pipeline_statistics_query DONE (i965, nvc0, radeonsi, softpipe, swr) 290 GL_ARB_post_depth_coverage DONE (i965) 291 GL_ARB_robustness_isolation not started 292 GL_ARB_sample_locations not started 293 GL_ARB_seamless_cubemap_per_texture DONE (i965, nvc0, radeonsi, r600, softpipe, swr) 294 GL_ARB_shader_atomic_counter_ops DONE (nvc0, radeonsi, softpipe) 295 GL_ARB_shader_ballot not started 296 GL_ARB_shader_clock DONE (i965/gen7+) 297 GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi) 298 GL_ARB_shader_group_vote DONE (nvc0) 299 GL_ARB_shader_stencil_export DONE (i965/gen9+, radeonsi, softpipe, llvmpipe, swr) 300 GL_ARB_shader_viewport_layer_array DONE (i965/gen6+) 301 GL_ARB_sparse_buffer not started 302 GL_ARB_sparse_texture not started 303 GL_ARB_sparse_texture2 not started 304 GL_ARB_sparse_texture_clamp not started 305 GL_ARB_texture_filter_minmax not started 306 GL_ARB_transform_feedback_overflow_query not started 307 GL_KHR_blend_equation_advanced_coherent DONE (i965/gen9+) 308 GL_KHR_no_error not started 309 GL_KHR_texture_compression_astc_hdr DONE (core only) 310 GL_KHR_texture_compression_astc_sliced_3d not started 311 GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+) 312 GL_OES_EGL_image DONE (all drivers) 313 GL_OES_EGL_image_external_essl3 not started 314 GL_OES_required_internalformat not started - GLES2 extension based on OpenGL ES 3.0 feature 315 GL_OES_surfaceless_context DONE (all drivers) 316 GL_OES_texture_compression_astc DONE (core only) 317 GL_OES_texture_float DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe) 318 GL_OES_texture_float_linear DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe) 319 GL_OES_texture_half_float DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe) 320 GL_OES_texture_half_float_linear DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe) 321 GL_OES_texture_view not started - based on GL_ARB_texture_view 322 GL_OES_viewport_array DONE (i965, nvc0, radeonsi) 323 GLX_ARB_context_flush_control not started 324 GLX_ARB_robustness_application_isolation not started 325 GLX_ARB_robustness_share_group_isolation not started 326 327The following extensions are not part of any OpenGL or OpenGL ES version, and 328we DO NOT WANT implementations of these extensions for Mesa. 329 330 GL_ARB_geometry_shader4 Superseded by GL 3.2 geometry shaders 331 GL_ARB_matrix_palette Superseded by GL_ARB_vertex_program 332 GL_ARB_shading_language_include Not interesting 333 GL_ARB_shadow_ambient Superseded by GL_ARB_fragment_program 334 GL_ARB_vertex_blend Superseded by GL_ARB_vertex_program 335 336More info about these features and the work involved can be found at 337http://dri.freedesktop.org/wiki/MissingFunctionality 338