features.txt revision 01e04c3f
101e04c3fSmrg# Status of OpenGL extensions in Mesa
201e04c3fSmrg
301e04c3fSmrgHere's how to read this file:
401e04c3fSmrg
501e04c3fSmrgall DONE: <driver>, ...
601e04c3fSmrg    All the extensions are done for the given list of drivers.
701e04c3fSmrg
801e04c3fSmrgDONE
901e04c3fSmrg    The extension is done for Mesa and no implementation is necessary on the
1001e04c3fSmrg    driver-side.
1101e04c3fSmrg
1201e04c3fSmrgDONE ()
1301e04c3fSmrg    The extension is done for Mesa and all the drivers in the "all DONE" list.
1401e04c3fSmrg
1501e04c3fSmrgDONE (<driver>, ...)
1601e04c3fSmrg    The extension is done for Mesa, all the drivers in the "all DONE" list, and
1701e04c3fSmrg    all the drivers in the brackets.
1801e04c3fSmrg
1901e04c3fSmrgin progress
2001e04c3fSmrg    The extension is started but not finished yet.
2101e04c3fSmrg
2201e04c3fSmrgnot started
2301e04c3fSmrg    The extension isn't started yet.
2401e04c3fSmrg
2501e04c3fSmrg# OpenGL Core and Compatibility context support
2601e04c3fSmrg
2701e04c3fSmrgSome drivers do not support the Compatibility profile or the
2801e04c3fSmrgARB_compatibility extensions.  If an application does not request a
2901e04c3fSmrgspecific version without the forward-compatiblity flag, such drivers
3001e04c3fSmrgwill be limited to OpenGL 3.0.  If an application requests OpenGL 3.1,
3101e04c3fSmrgit will get a context that may or may not have the ARB_compatibility
3201e04c3fSmrgextension enabled.  Some of the later GL features are exposed in the 3.0
3301e04c3fSmrgcontext as extensions.
3401e04c3fSmrg
3501e04c3fSmrg
3601e04c3fSmrgFeature                                                 Status
3701e04c3fSmrg------------------------------------------------------- ------------------------
3801e04c3fSmrg
3901e04c3fSmrgGL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl
4001e04c3fSmrg
4101e04c3fSmrg  glBindFragDataLocation, glGetFragDataLocation         DONE
4201e04c3fSmrg  GL_NV_conditional_render (Conditional rendering)      DONE ()
4301e04c3fSmrg  GL_ARB_map_buffer_range (Map buffer subranges)        DONE ()
4401e04c3fSmrg  GL_ARB_color_buffer_float (Clamping controls)         DONE ()
4501e04c3fSmrg  GL_ARB_texture_float (Float textures, renderbuffers)  DONE ()
4601e04c3fSmrg  GL_EXT_packed_float                                   DONE ()
4701e04c3fSmrg  GL_EXT_texture_shared_exponent                        DONE ()
4801e04c3fSmrg  GL_ARB_depth_buffer_float (Float depth buffers)       DONE ()
4901e04c3fSmrg  GL_ARB_framebuffer_object (Framebuffer objects)       DONE ()
5001e04c3fSmrg  GL_ARB_half_float_pixel                               DONE (all drivers)
5101e04c3fSmrg  GL_ARB_half_float_vertex                              DONE ()
5201e04c3fSmrg  GL_EXT_texture_integer                                DONE ()
5301e04c3fSmrg  GL_EXT_texture_array                                  DONE ()
5401e04c3fSmrg  GL_EXT_draw_buffers2 (Per-buffer blend and masks)     DONE ()
5501e04c3fSmrg  GL_EXT_texture_compression_rgtc                       DONE ()
5601e04c3fSmrg  GL_ARB_texture_rg                                     DONE ()
5701e04c3fSmrg  GL_EXT_transform_feedback (Transform feedback)        DONE ()
5801e04c3fSmrg  GL_ARB_vertex_array_object (Vertex array objects)     DONE ()
5901e04c3fSmrg  GL_EXT_framebuffer_sRGB (sRGB framebuffer format)     DONE ()
6001e04c3fSmrg  glClearBuffer commands                                DONE
6101e04c3fSmrg  glGetStringi command                                  DONE
6201e04c3fSmrg  glTexParameterI, glGetTexParameterI commands          DONE
6301e04c3fSmrg  glVertexAttribI commands                              DONE
6401e04c3fSmrg  Depth format cube textures                            DONE ()
6501e04c3fSmrg  GLX_ARB_create_context (GLX 1.4 is required)          DONE
6601e04c3fSmrg  Multisample anti-aliasing                             DONE (freedreno/a5xx, freedreno (*), llvmpipe (*), softpipe (*), swr (*))
6701e04c3fSmrg
6801e04c3fSmrg(*) freedreno (a2xx-a4xx), llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support
6901e04c3fSmrg
7001e04c3fSmrg
7101e04c3fSmrgGL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl
7201e04c3fSmrg
7301e04c3fSmrg  Forward compatible context support/deprecations       DONE ()
7401e04c3fSmrg  GL_ARB_draw_instanced (Instanced drawing)             DONE ()
7501e04c3fSmrg  GL_ARB_copy_buffer (Buffer copying)                   DONE ()
7601e04c3fSmrg  GL_NV_primitive_restart (Primitive restart)           DONE ()
7701e04c3fSmrg  16 vertex texture image units                         DONE ()
7801e04c3fSmrg  GL_ARB_texture_buffer_object (Texture buffer objs)    DONE (for OpenGL 3.1 contexts)
7901e04c3fSmrg  GL_ARB_texture_rectangle (Rectangular textures)       DONE ()
8001e04c3fSmrg  GL_ARB_uniform_buffer_object (Uniform buffer objs)    DONE ()
8101e04c3fSmrg  GL_EXT_texture_snorm (Signed normalized textures)     DONE ()
8201e04c3fSmrg
8301e04c3fSmrg
8401e04c3fSmrgGL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl
8501e04c3fSmrg
8601e04c3fSmrg  Core/compatibility profiles                           DONE
8701e04c3fSmrg  Geometry shaders                                      DONE ()
8801e04c3fSmrg  GL_ARB_vertex_array_bgra (BGRA vertex order)          DONE (freedreno)
8901e04c3fSmrg  GL_ARB_draw_elements_base_vertex (Base vertex offset) DONE (freedreno)
9001e04c3fSmrg  GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (freedreno)
9101e04c3fSmrg  GL_ARB_provoking_vertex (Provoking vertex)            DONE (freedreno)
9201e04c3fSmrg  GL_ARB_seamless_cube_map (Seamless cubemaps)          DONE (freedreno)
9301e04c3fSmrg  GL_ARB_texture_multisample (Multisample textures)     DONE (freedreno/a5xx)
9401e04c3fSmrg  GL_ARB_depth_clamp (Frag depth clamp)                 DONE (freedreno)
9501e04c3fSmrg  GL_ARB_sync (Fence objects)                           DONE (freedreno)
9601e04c3fSmrg  GLX_ARB_create_context_profile                        DONE
9701e04c3fSmrg
9801e04c3fSmrg
9901e04c3fSmrgGL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl
10001e04c3fSmrg
10101e04c3fSmrg  GL_ARB_blend_func_extended                            DONE (freedreno/a3xx, swr)
10201e04c3fSmrg  GL_ARB_explicit_attrib_location                       DONE (all drivers that support GLSL)
10301e04c3fSmrg  GL_ARB_occlusion_query2                               DONE (freedreno, swr)
10401e04c3fSmrg  GL_ARB_sampler_objects                                DONE (all drivers)
10501e04c3fSmrg  GL_ARB_shader_bit_encoding                            DONE (freedreno, swr)
10601e04c3fSmrg  GL_ARB_texture_rgb10_a2ui                             DONE (freedreno, swr)
10701e04c3fSmrg  GL_ARB_texture_swizzle                                DONE (freedreno, swr)
10801e04c3fSmrg  GL_ARB_timer_query                                    DONE (freedreno, swr)
10901e04c3fSmrg  GL_ARB_instanced_arrays                               DONE (freedreno, swr)
11001e04c3fSmrg  GL_ARB_vertex_type_2_10_10_10_rev                     DONE (freedreno, swr)
11101e04c3fSmrg
11201e04c3fSmrg
11301e04c3fSmrgGL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
11401e04c3fSmrg
11501e04c3fSmrg  GL_ARB_draw_buffers_blend                             DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
11601e04c3fSmrg  GL_ARB_draw_indirect                                  DONE (freedreno, i965/gen7+, llvmpipe, softpipe, swr)
11701e04c3fSmrg  GL_ARB_gpu_shader5                                    DONE (i965/gen7+)
11801e04c3fSmrg  - 'precise' qualifier                                 DONE
11901e04c3fSmrg  - Dynamically uniform sampler array indices           DONE (softpipe)
12001e04c3fSmrg  - Dynamically uniform UBO array indices               DONE (freedreno)
12101e04c3fSmrg  - Implicit signed -> unsigned conversions             DONE
12201e04c3fSmrg  - Fused multiply-add                                  DONE ()
12301e04c3fSmrg  - Packing/bitfield/conversion functions               DONE (freedreno, softpipe)
12401e04c3fSmrg  - Enhanced textureGather                              DONE (freedreno, softpipe)
12501e04c3fSmrg  - Geometry shader instancing                          DONE (llvmpipe, softpipe)
12601e04c3fSmrg  - Geometry shader multiple streams                    DONE ()
12701e04c3fSmrg  - Enhanced per-sample shading                         DONE ()
12801e04c3fSmrg  - Interpolation functions                             DONE ()
12901e04c3fSmrg  - New overload resolution rules                       DONE
13001e04c3fSmrg  GL_ARB_gpu_shader_fp64                                DONE (i965/gen7+, llvmpipe, softpipe)
13101e04c3fSmrg  GL_ARB_sample_shading                                 DONE (i965/gen6+, nv50)
13201e04c3fSmrg  GL_ARB_shader_subroutine                              DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
13301e04c3fSmrg  GL_ARB_tessellation_shader                            DONE (i965/gen7+)
13401e04c3fSmrg  GL_ARB_texture_buffer_object_rgb32                    DONE (freedreno, i965/gen6+, llvmpipe, softpipe, swr)
13501e04c3fSmrg  GL_ARB_texture_cube_map_array                         DONE (i965/gen6+, nv50, llvmpipe, softpipe)
13601e04c3fSmrg  GL_ARB_texture_gather                                 DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
13701e04c3fSmrg  GL_ARB_texture_query_lod                              DONE (freedreno, i965, nv50, llvmpipe, softpipe)
13801e04c3fSmrg  GL_ARB_transform_feedback2                            DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
13901e04c3fSmrg  GL_ARB_transform_feedback3                            DONE (i965/gen7+, llvmpipe, softpipe, swr)
14001e04c3fSmrg
14101e04c3fSmrg
14201e04c3fSmrgGL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
14301e04c3fSmrg
14401e04c3fSmrg  GL_ARB_ES2_compatibility                              DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
14501e04c3fSmrg  GL_ARB_get_program_binary                             DONE (0 or 1 binary formats)
14601e04c3fSmrg  GL_ARB_separate_shader_objects                        DONE (all drivers)
14701e04c3fSmrg  GL_ARB_shader_precision                               DONE (i965/gen7+, all drivers that support GLSL 4.10)
14801e04c3fSmrg  GL_ARB_vertex_attrib_64bit                            DONE (i965/gen7+, llvmpipe, softpipe)
14901e04c3fSmrg  GL_ARB_viewport_array                                 DONE (i965, nv50, llvmpipe, softpipe)
15001e04c3fSmrg
15101e04c3fSmrg
15201e04c3fSmrgGL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
15301e04c3fSmrg
15401e04c3fSmrg  GL_ARB_texture_compression_bptc                       DONE (freedreno, i965)
15501e04c3fSmrg  GL_ARB_compressed_texture_pixel_storage               DONE (all drivers)
15601e04c3fSmrg  GL_ARB_shader_atomic_counters                         DONE (freedreno/a5xx, i965, softpipe)
15701e04c3fSmrg  GL_ARB_texture_storage                                DONE (all drivers)
15801e04c3fSmrg  GL_ARB_transform_feedback_instanced                   DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
15901e04c3fSmrg  GL_ARB_base_instance                                  DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
16001e04c3fSmrg  GL_ARB_shader_image_load_store                        DONE (freedreno/a5xx, i965, softpipe)
16101e04c3fSmrg  GL_ARB_conservative_depth                             DONE (all drivers that support GLSL 1.30)
16201e04c3fSmrg  GL_ARB_shading_language_420pack                       DONE (all drivers that support GLSL 1.30)
16301e04c3fSmrg  GL_ARB_shading_language_packing                       DONE (all drivers)
16401e04c3fSmrg  GL_ARB_internalformat_query                           DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
16501e04c3fSmrg  GL_ARB_map_buffer_alignment                           DONE (all drivers)
16601e04c3fSmrg
16701e04c3fSmrg
16801e04c3fSmrgGL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, virgl
16901e04c3fSmrg
17001e04c3fSmrg  GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)
17101e04c3fSmrg  GL_ARB_ES3_compatibility                              DONE (all drivers that support GLSL 3.30)
17201e04c3fSmrg  GL_ARB_clear_buffer_object                            DONE (all drivers)
17301e04c3fSmrg  GL_ARB_compute_shader                                 DONE (freedreno/a5xx, i965, softpipe)
17401e04c3fSmrg  GL_ARB_copy_image                                     DONE (i965, nv50, softpipe, llvmpipe)
17501e04c3fSmrg  GL_KHR_debug                                          DONE (all drivers)
17601e04c3fSmrg  GL_ARB_explicit_uniform_location                      DONE (all drivers that support GLSL)
17701e04c3fSmrg  GL_ARB_fragment_layer_viewport                        DONE (i965, nv50, llvmpipe, softpipe)
17801e04c3fSmrg  GL_ARB_framebuffer_no_attachments                     DONE (freedreno, i965, softpipe)
17901e04c3fSmrg  GL_ARB_internalformat_query2                          DONE (all drivers)
18001e04c3fSmrg  GL_ARB_invalidate_subdata                             DONE (all drivers)
18101e04c3fSmrg  GL_ARB_multi_draw_indirect                            DONE (freedreno, i965, llvmpipe, softpipe, swr)
18201e04c3fSmrg  GL_ARB_program_interface_query                        DONE (all drivers)
18301e04c3fSmrg  GL_ARB_robust_buffer_access_behavior                  DONE (i965)
18401e04c3fSmrg  GL_ARB_shader_image_size                              DONE (freedreno/a5xx, i965, softpipe)
18501e04c3fSmrg  GL_ARB_shader_storage_buffer_object                   DONE (freedreno/a5xx, i965, softpipe)
18601e04c3fSmrg  GL_ARB_stencil_texturing                              DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr)
18701e04c3fSmrg  GL_ARB_texture_buffer_range                           DONE (freedreno, nv50, i965, llvmpipe)
18801e04c3fSmrg  GL_ARB_texture_query_levels                           DONE (all drivers that support GLSL 1.30)
18901e04c3fSmrg  GL_ARB_texture_storage_multisample                    DONE (all drivers that support GL_ARB_texture_multisample)
19001e04c3fSmrg  GL_ARB_texture_view                                   DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
19101e04c3fSmrg  GL_ARB_vertex_attrib_binding                          DONE (all drivers)
19201e04c3fSmrg
19301e04c3fSmrg
19401e04c3fSmrgGL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi
19501e04c3fSmrg
19601e04c3fSmrg  GL_MAX_VERTEX_ATTRIB_STRIDE                           DONE (all drivers)
19701e04c3fSmrg  GL_ARB_buffer_storage                                 DONE (freedreno, i965, nv50, llvmpipe, swr)
19801e04c3fSmrg  GL_ARB_clear_texture                                  DONE (i965, nv50, llvmpipe, softpipe, swr)
19901e04c3fSmrg  GL_ARB_enhanced_layouts                               DONE (i965, nv50, llvmpipe, softpipe, virgl)
20001e04c3fSmrg  - compile-time constant expressions                   DONE
20101e04c3fSmrg  - explicit byte offsets for blocks                    DONE
20201e04c3fSmrg  - forced alignment within blocks                      DONE
20301e04c3fSmrg  - specified vec4-slot component numbers               DONE
20401e04c3fSmrg  - specified transform/feedback layout                 DONE
20501e04c3fSmrg  - input/output block locations                        DONE
20601e04c3fSmrg  GL_ARB_multi_bind                                     DONE (all drivers)
20701e04c3fSmrg  GL_ARB_query_buffer_object                            DONE (i965/hsw+)
20801e04c3fSmrg  GL_ARB_texture_mirror_clamp_to_edge                   DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)
20901e04c3fSmrg  GL_ARB_texture_stencil8                               DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr, virgl)
21001e04c3fSmrg  GL_ARB_vertex_type_10f_11f_11f_rev                    DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)
21101e04c3fSmrg
21201e04c3fSmrgGL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi
21301e04c3fSmrg
21401e04c3fSmrg  GL_ARB_ES3_1_compatibility                            DONE (i965/hsw+, r600, virgl)
21501e04c3fSmrg  GL_ARB_clip_control                                   DONE (freedreno, i965, nv50, r600, llvmpipe, softpipe, swr)
21601e04c3fSmrg  GL_ARB_conditional_render_inverted                    DONE (freedreno, i965, nv50, r600, llvmpipe, softpipe, swr, virgl)
21701e04c3fSmrg  GL_ARB_cull_distance                                  DONE (i965, nv50, r600, llvmpipe, softpipe, swr, virgl)
21801e04c3fSmrg  GL_ARB_derivative_control                             DONE (i965, nv50, r600, virgl)
21901e04c3fSmrg  GL_ARB_direct_state_access                            DONE (all drivers)
22001e04c3fSmrg  GL_ARB_get_texture_sub_image                          DONE (all drivers)
22101e04c3fSmrg  GL_ARB_shader_texture_image_samples                   DONE (i965, nv50, r600, virgl)
22201e04c3fSmrg  GL_ARB_texture_barrier                                DONE (freedreno, i965, nv50, r600, virgl)
22301e04c3fSmrg  GL_KHR_context_flush_control                          DONE (all - but needs GLX/EGL extension to be useful)
22401e04c3fSmrg  GL_KHR_robustness                                     DONE (i965)
22501e04c3fSmrg  GL_EXT_shader_integer_mix                             DONE (all drivers that support GLSL)
22601e04c3fSmrg
22701e04c3fSmrgGL 4.6, GLSL 4.60
22801e04c3fSmrg
22901e04c3fSmrg  GL_ARB_gl_spirv                                       in progress (Nicolai Hähnle, Ian Romanick)
23001e04c3fSmrg  GL_ARB_indirect_parameters                            DONE (i965/gen7+, nvc0, radeonsi)
23101e04c3fSmrg  GL_ARB_pipeline_statistics_query                      DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
23201e04c3fSmrg  GL_ARB_polygon_offset_clamp                           DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, swr, virgl)
23301e04c3fSmrg  GL_ARB_shader_atomic_counter_ops                      DONE (freedreno/a5xx, i965/gen7+, nvc0, r600, radeonsi, softpipe, virgl)
23401e04c3fSmrg  GL_ARB_shader_draw_parameters                         DONE (i965, nvc0, radeonsi)
23501e04c3fSmrg  GL_ARB_shader_group_vote                              DONE (i965, nvc0, radeonsi)
23601e04c3fSmrg  GL_ARB_spirv_extensions                               in progress (Nicolai Hähnle, Ian Romanick)
23701e04c3fSmrg  GL_ARB_texture_filter_anisotropic                     DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, softpipe (*), llvmpipe (*))
23801e04c3fSmrg  GL_ARB_transform_feedback_overflow_query              DONE (i965/gen6+, nvc0, radeonsi, llvmpipe, softpipe, virgl)
23901e04c3fSmrg  GL_KHR_no_error                                       DONE (all drivers)
24001e04c3fSmrg
24101e04c3fSmrg(*) softpipe and llvmpipe advertise 16x anisotropy but simply ignore the setting
24201e04c3fSmrg
24301e04c3fSmrgThese are the extensions cherry-picked to make GLES 3.1
24401e04c3fSmrgGLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl
24501e04c3fSmrg
24601e04c3fSmrg  GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)
24701e04c3fSmrg  GL_ARB_compute_shader                                 DONE (freedreno/a5xx, i965/gen7+, softpipe)
24801e04c3fSmrg  GL_ARB_draw_indirect                                  DONE (freedreno, i965/gen7+, llvmpipe, softpipe, swr)
24901e04c3fSmrg  GL_ARB_explicit_uniform_location                      DONE (all drivers that support GLSL)
25001e04c3fSmrg  GL_ARB_framebuffer_no_attachments                     DONE (freedreno, i965/gen7+, softpipe)
25101e04c3fSmrg  GL_ARB_program_interface_query                        DONE (all drivers)
25201e04c3fSmrg  GL_ARB_shader_atomic_counters                         DONE (freedreno/a5xx, i965/gen7+, softpipe)
25301e04c3fSmrg  GL_ARB_shader_image_load_store                        DONE (freedreno/a5xx, i965/gen7+, softpipe)
25401e04c3fSmrg  GL_ARB_shader_image_size                              DONE (freedreno/a5xx, i965/gen7+, softpipe)
25501e04c3fSmrg  GL_ARB_shader_storage_buffer_object                   DONE (freedreno/a5xx, i965/gen7+, softpipe)
25601e04c3fSmrg  GL_ARB_shading_language_packing                       DONE (all drivers)
25701e04c3fSmrg  GL_ARB_separate_shader_objects                        DONE (all drivers)
25801e04c3fSmrg  GL_ARB_stencil_texturing                              DONE (freedreno, nv50, llvmpipe, softpipe, swr)
25901e04c3fSmrg  GL_ARB_texture_multisample (Multisample textures)     DONE (freedreno/a5xx, i965/gen7+, nv50, llvmpipe, softpipe)
26001e04c3fSmrg  GL_ARB_texture_storage_multisample                    DONE (all drivers that support GL_ARB_texture_multisample)
26101e04c3fSmrg  GL_ARB_vertex_attrib_binding                          DONE (all drivers)
26201e04c3fSmrg  GS5 Enhanced textureGather                            DONE (freedreno, i965/gen7+)
26301e04c3fSmrg  GS5 Packing/bitfield/conversion functions             DONE (freedreno/a5xx, i965/gen6+)
26401e04c3fSmrg  GL_EXT_shader_integer_mix                             DONE (all drivers that support GLSL)
26501e04c3fSmrg
26601e04c3fSmrg  Additional functionality not covered above:
26701e04c3fSmrg      glMemoryBarrierByRegion                           DONE
26801e04c3fSmrg      glGetTexLevelParameter[fi]v - needs updates       DONE
26901e04c3fSmrg      glGetBooleani_v - restrict to GLES enums
27001e04c3fSmrg      gl_HelperInvocation support                       DONE (i965, r600)
27101e04c3fSmrg
27201e04c3fSmrgGLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+, radeonsi, virgl
27301e04c3fSmrg
27401e04c3fSmrg  GL_EXT_color_buffer_float                             DONE (all drivers)
27501e04c3fSmrg  GL_KHR_blend_equation_advanced                        DONE (i965, nvc0)
27601e04c3fSmrg  GL_KHR_debug                                          DONE (all drivers)
27701e04c3fSmrg  GL_KHR_robustness                                     DONE (i965, nvc0)
27801e04c3fSmrg  GL_KHR_texture_compression_astc_ldr                   DONE (freedreno, i965/gen9+)
27901e04c3fSmrg  GL_OES_copy_image                                     DONE (all drivers)
28001e04c3fSmrg  GL_OES_draw_buffers_indexed                           DONE (all drivers that support GL_ARB_draw_buffers_blend)
28101e04c3fSmrg  GL_OES_draw_elements_base_vertex                      DONE (all drivers)
28201e04c3fSmrg  GL_OES_geometry_shader                                DONE (i965/hsw+, nvc0)
28301e04c3fSmrg  GL_OES_gpu_shader5                                    DONE (all drivers that support GL_ARB_gpu_shader5)
28401e04c3fSmrg  GL_OES_primitive_bounding_box                         DONE (i965/gen7+, nvc0)
28501e04c3fSmrg  GL_OES_sample_shading                                 DONE (i965, nvc0, r600)
28601e04c3fSmrg  GL_OES_sample_variables                               DONE (i965, nvc0, r600)
28701e04c3fSmrg  GL_OES_shader_image_atomic                            DONE (all drivers that support GL_ARB_shader_image_load_store)
28801e04c3fSmrg  GL_OES_shader_io_blocks                               DONE (All drivers that support GLES 3.1)
28901e04c3fSmrg  GL_OES_shader_multisample_interpolation               DONE (i965, nvc0, r600)
29001e04c3fSmrg  GL_OES_tessellation_shader                            DONE (all drivers that support GL_ARB_tessellation_shader)
29101e04c3fSmrg  GL_OES_texture_border_clamp                           DONE (all drivers)
29201e04c3fSmrg  GL_OES_texture_buffer                                 DONE (freedreno, i965, nvc0)
29301e04c3fSmrg  GL_OES_texture_cube_map_array                         DONE (i965/hsw+, nvc0)
29401e04c3fSmrg  GL_OES_texture_stencil8                               DONE (all drivers that support GL_ARB_texture_stencil8)
29501e04c3fSmrg  GL_OES_texture_storage_multisample_2d_array           DONE (all drivers that support GL_ARB_texture_multisample)
29601e04c3fSmrg
29701e04c3fSmrgKhronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:
29801e04c3fSmrg
29901e04c3fSmrg  GL_ARB_bindless_texture                               DONE (nvc0, radeonsi)
30001e04c3fSmrg  GL_ARB_cl_event                                       not started
30101e04c3fSmrg  GL_ARB_compute_variable_group_size                    DONE (nvc0, radeonsi)
30201e04c3fSmrg  GL_ARB_ES3_2_compatibility                            DONE (i965/gen8+, radeonsi, virgl)
30301e04c3fSmrg  GL_ARB_fragment_shader_interlock                      DONE (i965)
30401e04c3fSmrg  GL_ARB_gpu_shader_int64                               DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe)
30501e04c3fSmrg  GL_ARB_parallel_shader_compile                        not started, but Chia-I Wu did some related work in 2014
30601e04c3fSmrg  GL_ARB_post_depth_coverage                            DONE (i965, nvc0)
30701e04c3fSmrg  GL_ARB_robustness_isolation                           not started
30801e04c3fSmrg  GL_ARB_sample_locations                               DONE (nvc0)
30901e04c3fSmrg  GL_ARB_seamless_cubemap_per_texture                   DONE (freedreno, i965, nvc0, radeonsi, r600, softpipe, swr, virgl)
31001e04c3fSmrg  GL_ARB_shader_ballot                                  DONE (i965/gen8+, nvc0, radeonsi)
31101e04c3fSmrg  GL_ARB_shader_clock                                   DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, virgl)
31201e04c3fSmrg  GL_ARB_shader_stencil_export                          DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr, virgl)
31301e04c3fSmrg  GL_ARB_shader_viewport_layer_array                    DONE (i965/gen6+, nvc0, radeonsi)
31401e04c3fSmrg  GL_ARB_sparse_buffer                                  DONE (radeonsi/CIK+)
31501e04c3fSmrg  GL_ARB_sparse_texture                                 not started
31601e04c3fSmrg  GL_ARB_sparse_texture2                                not started
31701e04c3fSmrg  GL_ARB_sparse_texture_clamp                           not started
31801e04c3fSmrg  GL_ARB_texture_filter_minmax                          not started
31901e04c3fSmrg  GL_EXT_memory_object                                  DONE (radeonsi)
32001e04c3fSmrg  GL_EXT_memory_object_fd                               DONE (radeonsi)
32101e04c3fSmrg  GL_EXT_memory_object_win32                            not started
32201e04c3fSmrg  GL_EXT_render_snorm                                   DONE (i965)
32301e04c3fSmrg  GL_EXT_semaphore                                      DONE (radeonsi)
32401e04c3fSmrg  GL_EXT_semaphore_fd                                   DONE (radeonsi)
32501e04c3fSmrg  GL_EXT_semaphore_win32                                not started
32601e04c3fSmrg  GL_EXT_texture_norm16                                 DONE (i965, r600, radeonsi, nvc0)
32701e04c3fSmrg  GL_KHR_blend_equation_advanced_coherent               DONE (i965/gen9+)
32801e04c3fSmrg  GL_KHR_texture_compression_astc_hdr                   DONE (i965/bxt)
32901e04c3fSmrg  GL_KHR_texture_compression_astc_sliced_3d             DONE (i965/gen9+, radeonsi)
33001e04c3fSmrg  GL_OES_depth_texture_cube_map                         DONE (all drivers that support GLSL 1.30+)
33101e04c3fSmrg  GL_OES_EGL_image                                      DONE (all drivers)
33201e04c3fSmrg  GL_OES_EGL_image_external                             DONE (all drivers)
33301e04c3fSmrg  GL_OES_EGL_image_external_essl3                       DONE (all drivers)
33401e04c3fSmrg  GL_OES_required_internalformat                        DONE (all drivers)
33501e04c3fSmrg  GL_OES_surfaceless_context                            DONE (all drivers)
33601e04c3fSmrg  GL_OES_texture_compression_astc                       DONE (core only)
33701e04c3fSmrg  GL_OES_texture_float                                  DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
33801e04c3fSmrg  GL_OES_texture_float_linear                           DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
33901e04c3fSmrg  GL_OES_texture_half_float                             DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
34001e04c3fSmrg  GL_OES_texture_half_float_linear                      DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
34101e04c3fSmrg  GL_OES_texture_view                                   DONE (i965/gen8+)
34201e04c3fSmrg  GL_OES_viewport_array                                 DONE (i965, nvc0, radeonsi)
34301e04c3fSmrg  GLX_ARB_context_flush_control                         not started
34401e04c3fSmrg  GLX_ARB_robustness_application_isolation              not started
34501e04c3fSmrg  GLX_ARB_robustness_share_group_isolation              not started
34601e04c3fSmrg
34701e04c3fSmrgGL_EXT_direct_state_access subfeatures (in the spec order):
34801e04c3fSmrg  GL 1.1: Client commands                               not started
34901e04c3fSmrg  GL 1.0-1.3: Matrix and transpose matrix commands      not started
35001e04c3fSmrg  GL 1.1-1.2: Texture commands                          not started
35101e04c3fSmrg  GL 1.2: 3D texture commands                           not started
35201e04c3fSmrg  GL 1.2.1: Multitexture commands                       not started
35301e04c3fSmrg  GL 1.2.1-3.0: Indexed texture commands                not started
35401e04c3fSmrg  GL 1.2.1-3.0: Indexed generic queries                 not started
35501e04c3fSmrg  GL 1.2.1: EnableIndexed.. Get*Indexed                 not started
35601e04c3fSmrg  GL_ARB_vertex_program                                 not started
35701e04c3fSmrg  GL 1.3: Compressed texture and multitexture commands  not started
35801e04c3fSmrg  GL 1.5: Buffer commands                               not started
35901e04c3fSmrg  GL 2.0-2.1: Uniform and uniform matrix commands       not started
36001e04c3fSmrg  GL_EXT_texture_buffer_object                          not started
36101e04c3fSmrg  GL_EXT_texture_integer                                not started
36201e04c3fSmrg  GL_EXT_gpu_shader4                                    not started
36301e04c3fSmrg  GL_EXT_gpu_program_parameters                         not started
36401e04c3fSmrg  GL_NV_gpu_program4                                    n/a
36501e04c3fSmrg  GL_NV_framebuffer_multisample_coverage                n/a
36601e04c3fSmrg  GL 3.0: Renderbuffer/framebuffer commands, Gen*Mipmap not started
36701e04c3fSmrg  GL 3.0: CopyBuffer command                            not started
36801e04c3fSmrg  GL_EXT_geometry_shader4 commands (expose in GL 3.2)   not started
36901e04c3fSmrg  GL_NV_explicit_multisample                            n/a
37001e04c3fSmrg  GL 3.0: Vertex array/attrib/query/map commands        not started
37101e04c3fSmrg  Matrix GL tokens                                      not started
37201e04c3fSmrg
37301e04c3fSmrgGL_EXT_direct_state_access additions from other extensions (complete list):
37401e04c3fSmrg  GL_AMD_framebuffer_sample_positions                   n/a
37501e04c3fSmrg  GL_AMD_gpu_shader_int64                               not started
37601e04c3fSmrg  GL_ARB_bindless_texture                               not started
37701e04c3fSmrg  GL_ARB_buffer_storage                                 not started
37801e04c3fSmrg  GL_ARB_clear_buffer_object                            not started
37901e04c3fSmrg  GL_ARB_framebuffer_no_attachments                     not started
38001e04c3fSmrg  GL_ARB_gpu_shader_fp64                                not started
38101e04c3fSmrg  GL_ARB_instanced_arrays                               not started
38201e04c3fSmrg  GL_ARB_internalformat_query2                          not started
38301e04c3fSmrg  GL_ARB_sparse_texture                                 n/a
38401e04c3fSmrg  GL_ARB_sparse_buffer                                  not started
38501e04c3fSmrg  GL_ARB_texture_buffer_range                           not started
38601e04c3fSmrg  GL_ARB_texture_storage                                not started
38701e04c3fSmrg  GL_ARB_texture_storage_multisample                    not started
38801e04c3fSmrg  GL_ARB_vertex_attrib_64bit                            not started
38901e04c3fSmrg  GL_ARB_vertex_attrib_binding                          not started
39001e04c3fSmrg  GL_EXT_buffer_storage                                 not started
39101e04c3fSmrg  GL_EXT_external_buffer                                not started
39201e04c3fSmrg  GL_EXT_separate_shader_objects                        n/a
39301e04c3fSmrg  GL_EXT_sparse_texture                                 n/a
39401e04c3fSmrg  GL_EXT_texture_storage                                n/a
39501e04c3fSmrg  GL_EXT_vertex_attrib_64bit                            not started
39601e04c3fSmrg  GL_EXT_EGL_image_storage                              n/a
39701e04c3fSmrg  GL_NV_bindless_texture                                n/a
39801e04c3fSmrg  GL_NV_gpu_shader5                                     n/a
39901e04c3fSmrg  GL_NV_texture_multisample                             n/a
40001e04c3fSmrg  GL_NV_vertex_buffer_unified_memory                    n/a
40101e04c3fSmrg  GL_NVX_linked_gpu_multicast                           n/a
40201e04c3fSmrg  GLX_NV_copy_buffer                                    n/a
40301e04c3fSmrg
40401e04c3fSmrgThe following extensions are not part of any OpenGL or OpenGL ES version, and
40501e04c3fSmrgwe DO NOT WANT implementations of these extensions for Mesa.
40601e04c3fSmrg
40701e04c3fSmrg  GL_ARB_geometry_shader4                               Superseded by GL 3.2 geometry shaders
40801e04c3fSmrg  GL_ARB_matrix_palette                                 Superseded by GL_ARB_vertex_program
40901e04c3fSmrg  GL_ARB_shading_language_include                       Not interesting
41001e04c3fSmrg  GL_ARB_shadow_ambient                                 Superseded by GL_ARB_fragment_program
41101e04c3fSmrg  GL_ARB_vertex_blend                                   Superseded by GL_ARB_vertex_program
41201e04c3fSmrg
41301e04c3fSmrgVulkan 1.0 -- all DONE: anv, radv
41401e04c3fSmrg
41501e04c3fSmrgVulkan 1.1 -- all DONE: anv, radv
41601e04c3fSmrg
41701e04c3fSmrg  VK_KHR_16bit_storage                                  in progress (Alejandro)
41801e04c3fSmrg  VK_KHR_bind_memory2                                   DONE (anv, radv)
41901e04c3fSmrg  VK_KHR_dedicated_allocation                           DONE (anv, radv)
42001e04c3fSmrg  VK_KHR_descriptor_update_template                     DONE (anv, radv)
42101e04c3fSmrg  VK_KHR_device_group                                   not started
42201e04c3fSmrg  VK_KHR_device_group_creation                          not started
42301e04c3fSmrg  VK_KHR_external_fence                                 DONE (anv, radv)
42401e04c3fSmrg  VK_KHR_external_fence_capabilities                    DONE (anv, radv)
42501e04c3fSmrg  VK_KHR_external_memory                                DONE (anv, radv)
42601e04c3fSmrg  VK_KHR_external_memory_capabilities                   DONE (anv, radv)
42701e04c3fSmrg  VK_KHR_external_semaphore                             DONE (anv, radv)
42801e04c3fSmrg  VK_KHR_external_semaphore_capabilities                DONE (anv, radv)
42901e04c3fSmrg  VK_KHR_get_memory_requirements2                       DONE (anv, radv)
43001e04c3fSmrg  VK_KHR_get_physical_device_properties2                DONE (anv, radv)
43101e04c3fSmrg  VK_KHR_maintenance1                                   DONE (anv, radv)
43201e04c3fSmrg  VK_KHR_maintenance2                                   DONE (anv, radv)
43301e04c3fSmrg  VK_KHR_maintenance3                                   DONE (anv, radv)
43401e04c3fSmrg  VK_KHR_multiview                                      DONE (anv, radv)
43501e04c3fSmrg  VK_KHR_relaxed_block_layout                           DONE (anv, radv)
43601e04c3fSmrg  VK_KHR_sampler_ycbcr_conversion                       DONE (anv)
43701e04c3fSmrg  VK_KHR_shader_draw_parameters                         DONE (anv, radv)
43801e04c3fSmrg  VK_KHR_storage_buffer_storage_class                   DONE (anv, radv)
43901e04c3fSmrg  VK_KHR_variable_pointers                              DONE (anv, radv)
44001e04c3fSmrg
44101e04c3fSmrgKhronos extensions that are not part of any Vulkan version:
44201e04c3fSmrg  VK_KHR_8bit_storage                                   DONE (anv)
44301e04c3fSmrg  VK_KHR_android_surface                                not started
44401e04c3fSmrg  VK_KHR_create_renderpass2                             DONE (anv, radv)
44501e04c3fSmrg  VK_KHR_display                                        DONE (anv, radv)
44601e04c3fSmrg  VK_KHR_display_swapchain                              DONE (anv, radv)
44701e04c3fSmrg  VK_KHR_draw_indirect_count                            DONE (radv)
44801e04c3fSmrg  VK_KHR_external_fence_fd                              DONE (anv, radv)
44901e04c3fSmrg  VK_KHR_external_fence_win32                           not started
45001e04c3fSmrg  VK_KHR_external_memory_fd                             DONE (anv, radv)
45101e04c3fSmrg  VK_KHR_external_memory_win32                          not started
45201e04c3fSmrg  VK_KHR_external_semaphore_fd                          DONE (anv, radv)
45301e04c3fSmrg  VK_KHR_external_semaphore_win32                       not started
45401e04c3fSmrg  VK_KHR_get_display_properties2                        DONE (anv, radv)
45501e04c3fSmrg  VK_KHR_get_surface_capabilities2                      DONE (anv, radv)
45601e04c3fSmrg  VK_KHR_image_format_list                              DONE (anv, radv)
45701e04c3fSmrg  VK_KHR_incremental_present                            DONE (anv, radv)
45801e04c3fSmrg  VK_KHR_mir_surface                                    not started
45901e04c3fSmrg  VK_KHR_push_descriptor                                DONE (anv, radv)
46001e04c3fSmrg  VK_KHR_sampler_mirror_clamp_to_edge                   DONE (anv, radv)
46101e04c3fSmrg  VK_KHR_shared_presentable_image                       not started
46201e04c3fSmrg  VK_KHR_surface                                        DONE (anv, radv)
46301e04c3fSmrg  VK_KHR_swapchain                                      DONE (anv, radv)
46401e04c3fSmrg  VK_KHR_wayland_surface                                DONE (anv, radv)
46501e04c3fSmrg  VK_KHR_win32_keyed_mutex                              not started
46601e04c3fSmrg  VK_KHR_win32_surface                                  not started
46701e04c3fSmrg  VK_KHR_xcb_surface                                    DONE (anv, radv)
46801e04c3fSmrg  VK_KHR_xlib_surface                                   DONE (anv, radv)
46901e04c3fSmrg
47001e04c3fSmrg
47101e04c3fSmrgA graphical representation of this information can be found at
47201e04c3fSmrghttps://mesamatrix.net/
473