This page is a graphical representation of the text file docs/features.txt from the Mesa repository.

Although this text file is updated by the Mesa developers themselves, it might not contain an exhaustive list of all the drivers features and subtleties. So, for more information, it is advised to look at the source code, or ask the developers on their mailing-list.

Feel free to open an issue or create a PR on GitHub, or join the Matrix room #mesamatrix:matrix.org.

Last commits

Age Commit message
2022-08-17 16:56 tu: Implement VK_EXT_non_seamless_cube_map
2022-08-16 11:26 docs/radv: advertise VK_KHR_global_priority
2022-08-15 21:47 docs/features: drop unsupported VK_KHR_display & VK_KHR_get_display_properties2 for lavapipe
2022-08-15 21:47 docs/features: start tracking extensions supported by powervr
2022-08-15 21:47 docs/features: start tracking extensions supported by panvk
2022-08-15 21:47 docs/features: start tracking extensions supported by dozen
2022-08-15 21:47 docs/features: add missing extensions supported by venus
2022-08-15 21:47 docs/features: add missing extensions supported by turnip
2022-08-15 21:47 docs/features: add missing extensions supported by radv
2022-08-15 21:47 docs/features: add missing extensions supported by lavapipe
More...

Vulkan

There is a total of 181 extensions to implement. The ranking is based on the number of extensions done by driver.

# Driver Extensions Version
1 mesa (95.6%) 173 1.3
2 radv (91.7%) 166 1.3
3 anv (76.8%) 139 1.3
4 tu (63.5%) 115 1.1
5 lvp (60.8%) 110 1.1
6 vn (48.6%) 88 1.2
7 v3dv (39.8%) 72 1.0
Drivers details

Vulkan 1.3

Intel Software AMD Qualcomm Broadcom Emulation
Extension mesa anv lvp radv tu v3dv vn
100.0% 100.0% 100.0% 100.0% 94.7% 42.1% 47.4%
VK_KHR_copy_commands2 2022-01-20 2022-08-15
VK_KHR_dynamic_rendering 2021-11-04 2022-01-26 2021-11-04 2021-12-05 2022-07-27 2022-08-15
VK_KHR_format_feature_flags2 2021-11-02 2022-01-27 2022-03-21 2021-11-02 2022-04-02 2022-05-26
VK_KHR_maintenance4 2022-01-27 2022-01-27 2022-03-21 2022-01-27 2022-04-05 2022-08-15
VK_KHR_shader_non_semantic_info 2022-03-21 2022-02-04 2022-02-04
VK_KHR_shader_terminate_invocation 2022-03-21
VK_KHR_synchronization2 2021-11-26 2021-11-26 2022-03-21 2021-11-26 2022-06-01
VK_KHR_zero_initialize_workgroup_memory 2022-03-21 2022-02-04
VK_EXT_4444_formats 2021-10-06 2022-01-14 2022-08-15
VK_EXT_extended_dynamic_state 2022-08-15
VK_EXT_extended_dynamic_state2 2022-02-04 2022-08-15
VK_EXT_inline_uniform_block 2022-03-21 2022-03-28 2022-08-15
VK_EXT_pipeline_creation_cache_control 2022-03-21 2022-05-18 2021-08-16
VK_EXT_pipeline_creation_feedback 2022-03-21 2022-05-18 2021-08-26
VK_EXT_private_data
VK_EXT_image_robustness 2022-03-21 2022-02-04 2022-08-15
VK_EXT_shader_demote_to_helper_invocation 2022-03-21 2022-08-15
VK_EXT_subgroup_size_control 2022-03-21 2022-02-04
VK_EXT_texel_buffer_alignment 2022-03-21 2022-03-17

Vulkan 1.2

Intel Software AMD Qualcomm Broadcom Emulation
Extension mesa anv lvp radv tu v3dv vn
100.0% 100.0% 95.8% 100.0% 91.7% 66.7% 100.0%
VK_KHR_8bit_storage 2022-01-25
VK_KHR_buffer_device_address 2021-11-23 2022-07-19
VK_KHR_create_renderpass2 2022-01-24
VK_KHR_depth_stencil_resolve 2021-08-31 2022-01-28
VK_KHR_draw_indirect_count
VK_KHR_driver_properties 2022-08-15 2022-01-24
VK_KHR_image_format_list
VK_KHR_imageless_framebuffer 2021-10-08 2022-01-27
VK_KHR_sampler_mirror_clamp_to_edge
VK_KHR_separate_depth_stencil_layouts 2021-11-12 2022-05-05
VK_KHR_shader_atomic_int64
VK_KHR_shader_float16_int8 2021-09-16
VK_KHR_shader_float_controls 2021-10-06 2022-05-11
VK_KHR_shader_subgroup_extended_types 2021-09-16 2021-10-11
VK_KHR_spirv_1_4 2021-09-16 2022-05-11
VK_KHR_timeline_semaphore 2021-07-29 2022-05-05
VK_KHR_uniform_buffer_standard_layout 2021-08-23
VK_KHR_vulkan_memory_model 2022-03-21 2022-05-20
VK_EXT_descriptor_indexing
VK_EXT_host_query_reset 2021-10-15
VK_EXT_sampler_filter_minmax
VK_EXT_scalar_block_layout
VK_EXT_separate_stencil_usage 2022-04-01 2022-05-05
VK_EXT_shader_viewport_index_layer

Vulkan 1.1

Intel Software AMD Qualcomm Broadcom Emulation
Extension mesa anv lvp radv tu v3dv vn
100.0% 100.0% 100.0% 100.0% 100.0% 91.3% 100.0%
VK_KHR_16bit_storage 2022-01-25
VK_KHR_bind_memory2
VK_KHR_dedicated_allocation
VK_KHR_descriptor_update_template
VK_KHR_device_group
VK_KHR_device_group_creation
VK_KHR_external_fence
VK_KHR_external_fence_capabilities
VK_KHR_external_memory
VK_KHR_external_memory_capabilities
VK_KHR_external_semaphore
VK_KHR_external_semaphore_capabilities
VK_KHR_get_memory_requirements2
VK_KHR_get_physical_device_properties2
VK_KHR_maintenance1
VK_KHR_maintenance2
VK_KHR_maintenance3
VK_KHR_multiview 2021-08-10
VK_KHR_relaxed_block_layout
VK_KHR_sampler_ycbcr_conversion
VK_KHR_shader_draw_parameters
VK_KHR_storage_buffer_storage_class
VK_KHR_variable_pointers

Vulkan 1.0

Intel Software AMD Qualcomm Broadcom Emulation
Extension mesa anv lvp radv tu v3dv vn
100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0%
All extensions

Extensions that are not part of any Vulkan version

Intel Software AMD Qualcomm Broadcom Emulation
Extension mesa anv lvp radv tu v3dv vn
93.0% 63.2% 38.6% 86.8% 44.7% 22.8% 27.2%
VK_KHR_acceleration_structure 2022-08-15 2022-08-15
VK_KHR_android_surface
VK_KHR_deferred_host_operations
VK_KHR_display
VK_KHR_display_swapchain
VK_KHR_external_fence_fd 2021-09-22
VK_KHR_external_fence_win32
VK_KHR_external_memory_fd 2021-10-06 2021-09-22
VK_KHR_external_memory_win32
VK_KHR_external_semaphore_fd 2021-09-22
VK_KHR_external_semaphore_win32
VK_KHR_fragment_shading_rate 2021-11-02 2022-08-15 2021-11-02
VK_KHR_get_display_properties2
VK_KHR_get_surface_capabilities2
VK_KHR_global_priority 2022-08-16 2022-08-16
VK_KHR_incremental_present 2021-09-22
VK_KHR_performance_query 2022-08-15 2022-06-27
VK_KHR_pipeline_executable_properties 2022-05-09
VK_KHR_pipeline_library 2022-03-29 2022-03-29 2022-04-06
VK_KHR_push_descriptor
VK_KHR_ray_query 2022-08-15 2022-08-15
VK_KHR_ray_tracing_maintenance1 2022-08-15 2022-08-15
VK_KHR_ray_tracing_pipeline 2022-02-02
VK_KHR_shader_clock 2022-08-04
VK_KHR_shader_integer_dot_product 2021-09-03 2022-01-10 2022-08-15 2021-09-03 2022-01-10
VK_KHR_shader_subgroup_uniform_control_flow
VK_KHR_shared_presentable_image
VK_KHR_surface
VK_KHR_surface_protected_capabilities 2021-10-12
VK_KHR_swapchain 2021-09-22
VK_KHR_swapchain_mutable_format 2022-04-07 2022-06-13 2021-10-15 2021-09-22
VK_KHR_wayland_surface
VK_KHR_workgroup_memory_explicit_layout
VK_KHR_win32_keyed_mutex
VK_KHR_win32_surface
VK_KHR_xcb_surface
VK_KHR_xlib_surface
VK_EXT_border_color_swizzle 2022-06-14 2022-06-14 2022-06-14 2022-06-16 2022-06-15
VK_EXT_buffer_device_address 2021-11-02 2022-08-15 2021-11-02
VK_EXT_calibrated_timestamps 2022-08-15
VK_EXT_color_write_enable 2021-11-02 2022-06-14 2021-08-13
VK_EXT_conditional_rendering 2022-08-15
VK_EXT_conservative_rasterization 2022-08-15
VK_EXT_custom_border_color 2021-08-02 2022-08-15
VK_EXT_debug_marker
VK_EXT_depth_clip_enable 2021-10-06 2022-08-15
VK_EXT_depth_clip_control 2022-02-25 2022-08-15 2022-02-25 2022-03-28 2022-03-10
VK_EXT_depth_range_unrestricted 2022-08-15
VK_EXT_discard_rectangles
VK_EXT_display_control 2022-08-15
VK_EXT_external_memory_dma_buf 2021-09-22
VK_EXT_external_memory_host 2021-08-11
VK_EXT_filter_cubic
VK_EXT_fragment_shader_interlock
VK_EXT_global_priority
VK_EXT_global_priority_query 2021-11-02 2022-08-15 2021-11-02
VK_EXT_graphics_pipeline_library 2022-03-29 2022-03-29
VK_EXT_image_2d_view_of_3d 2022-04-05 2022-04-05 2022-04-05 2022-08-15 2022-06-01
VK_EXT_image_drm_format_modifier 2022-03-18 2021-09-22
VK_EXT_image_view_min_lod 2021-11-18 2022-08-15 2021-11-18 2022-05-09 2022-08-15
VK_EXT_index_type_uint8 2022-08-15
VK_EXT_line_rasterization 2021-10-13 2022-03-18 2022-08-15
VK_EXT_memory_budget
VK_EXT_memory_priority
VK_EXT_multi_draw
VK_EXT_multisampled_render_to_single_sampled 2022-07-26 2022-07-26
VK_EXT_non_seamless_cube_map 2022-06-09 2022-06-10 2022-07-25 2022-06-09 2022-08-17
VK_EXT_pci_bus_info
VK_EXT_physical_device_drm 2022-03-01 2022-08-15
VK_EXT_post_depth_coverage 2021-11-02
VK_EXT_primitive_topology_list_restart 2021-11-02 2022-01-17 2022-01-17 2021-11-02 2022-01-17
VK_EXT_primitives_generated_query 2022-03-29 2022-08-15 2022-03-29 2022-06-09 2022-04-07
VK_EXT_provoking_vertex 2021-08-17 2022-08-15
VK_EXT_queue_family_foreign 2022-08-15 2021-09-22
VK_EXT_robustness2 2022-05-10 2022-08-15
VK_EXT_sample_locations
VK_EXT_shader_atomic_float
VK_EXT_shader_atomic_float2 2021-07-21 2021-07-21 2021-07-27
VK_EXT_shader_image_atomic_int64
VK_EXT_shader_stencil_export 2022-08-15
VK_EXT_shader_subgroup_ballot 2022-07-27
VK_EXT_shader_subgroup_vote 2022-07-27
VK_EXT_shader_module_identifier 2022-07-19 2022-07-19 2022-07-19 2022-07-19
VK_EXT_transform_feedback
VK_EXT_vertex_attribute_divisor 2021-09-12 2022-08-15
VK_EXT_vertex_input_dynamic_state 2021-10-13 2022-08-05
VK_EXT_ycbcr_image_arrays
VK_ANDROID_external_memory_android_hardware_buffer 2021-09-22
VK_ANDROID_native_buffer 2022-07-28 2022-07-28 2021-09-22
VK_GOOGLE_decorate_string
VK_GOOGLE_hlsl_functionality1
VK_GOOGLE_user_type
VK_IMG_filter_cubic
VK_NV_compute_shader_derivatives
VK_EXT_acquire_drm_display 2022-07-29
VK_VALVE_mutable_descriptor_type 2021-07-27 2022-01-24 2021-07-27 2021-07-27
VK_AMD_buffer_marker 2021-11-02 2021-11-02 2022-02-07
VK_AMD_device_coherent_memory 2021-11-02 2021-11-02
VK_AMD_draw_indirect_count 2021-11-02 2021-11-02
VK_AMD_gcn_shader 2021-11-02 2021-11-02
VK_AMD_gpu_shader_half_float 2021-11-02 2021-11-02
VK_AMD_gpu_shader_int16 2021-11-02 2021-11-02
VK_AMD_memory_overallocation_behavior 2021-11-02 2021-11-02
VK_AMD_mixed_attachment_samples 2021-11-02 2021-11-02
VK_AMD_rasterization_order 2021-11-02 2021-11-02
VK_AMD_shader_ballot 2021-11-02 2021-11-02
VK_AMD_shader_core_properties 2021-11-02 2021-11-02
VK_AMD_shader_core_properties2 2021-11-02 2021-11-02
VK_AMD_shader_explicit_vertex_parameter 2021-11-02 2021-11-02
VK_AMD_shader_fragment_mask 2021-11-02 2022-05-26
VK_AMD_shader_image_load_store_lod 2021-11-02 2021-11-02
VK_AMD_shader_trinary_minmax 2021-11-02 2021-11-02
VK_AMD_texture_gather_bias_lod 2021-11-02 2021-11-02
VK_ARM_rasterization_order_attachment_access 2022-02-23 2022-02-23

OpenGL

There is a total of 160 extensions to implement. The ranking is based on the number of extensions done by driver.

# Driver Extensions Version
1 zink (100.0%) 160 4.6
1 mesa (100.0%) 160 4.6
1 radeonsi (100.0%) 160 4.6
1 llvmpipe (100.0%) 160 4.6
1 i965 (100.0%) 160 4.6
6 nvc0 (98.8%) 158 4.5
7 r600 (96.2%) 154 4.5
7 virgl (96.2%) 154 4.3
9 softpipe (88.8%) 142 3.3
10 d3d12 (87.5%) 140 4.2
11 freedreno (81.2%) 130 3.3
12 nv50 (74.4%) 119 3.3
13 panfrost (66.9%) 107 3.1
14 v3d (64.4%) 103 N/A
15 vc4 (38.1%) 61 N/A
16 lima (37.5%) 60 N/A
17 etnaviv (26.2%) 42 N/A
Drivers details

OpenGL 4.6 - GLSL 4.60

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 45.5% 100.0% 27.3% 81.8% 45.5% 100.0% 36.4% 18.2% 9.1% 36.4% 9.1% 9.1% 36.4% 54.5% 100.0%
GL_ARB_gl_spirv
GL_ARB_indirect_parameters 2022-01-14
GL_ARB_pipeline_statistics_query
GL_ARB_polygon_offset_clamp 2022-06-09
GL_ARB_shader_atomic_counter_ops
GL_ARB_shader_draw_parameters 2022-01-14
GL_ARB_shader_group_vote
GL_ARB_spirv_extensions
GL_ARB_texture_filter_anisotropic 2022-05-18
GL_ARB_transform_feedback_overflow_query
GL_KHR_no_error

OpenGL 4.5 - GLSL 4.50

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 75.0% 100.0% 83.3% 100.0% 100.0% 100.0% 75.0% 33.3% 41.7% 33.3% 50.0% 41.7% 50.0% 100.0% 100.0%
GL_ARB_ES3_1_compatibility
GL_ARB_clip_control 2021-09-21 2022-07-22
GL_ARB_conditional_render_inverted 2022-01-14
GL_ARB_cull_distance
GL_ARB_derivative_control
GL_ARB_direct_state_access
GL_ARB_get_texture_sub_image
GL_ARB_shader_texture_image_samples
GL_ARB_texture_barrier 2022-05-18 2022-05-23
GL_KHR_context_flush_control
GL_KHR_robustness
GL_EXT_shader_integer_mix

OpenGL 4.4 - GLSL 4.40

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 86.7% 100.0% 93.3% 100.0% 100.0% 100.0% 73.3% 53.3% 60.0% 73.3% 60.0% 73.3% 66.7% 93.3% 100.0%
GL_MAX_VERTEX_ATTRIB_STRIDE
GL_ARB_buffer_storage 2022-05-23
GL_ARB_clear_texture
GL_ARB_enhanced_layouts
- compile-time constant expressions
- explicit byte offsets for blocks
- forced alignment within blocks
- specified vec4-slot component numbers
- specified transform/feedback layout
- input/output block locations
GL_ARB_multi_bind
GL_ARB_query_buffer_object
GL_ARB_texture_mirror_clamp_to_edge 2021-09-07
GL_ARB_texture_stencil8
GL_ARB_vertex_type_10f_11f_11f_rev

OpenGL 4.3 - GLSL 4.30

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 95.5% 100.0% 72.7% 100.0% 100.0% 100.0% 90.9% 45.5% 50.0% 90.9% 45.5% 68.2% 90.9% 100.0% 100.0%
GL_ARB_arrays_of_arrays
GL_ARB_ES3_compatibility
GL_ARB_clear_buffer_object
GL_ARB_compute_shader 2022-01-11
GL_ARB_copy_image 2022-04-19
GL_KHR_debug
GL_ARB_explicit_uniform_location
GL_ARB_fragment_layer_viewport 2022-02-04
GL_ARB_framebuffer_no_attachments 2022-01-14
GL_ARB_internalformat_query2
GL_ARB_invalidate_subdata
GL_ARB_multi_draw_indirect 2022-01-14
GL_ARB_program_interface_query
GL_ARB_robust_buffer_access_behavior 2022-04-28
GL_ARB_shader_image_size 2022-01-11
GL_ARB_shader_storage_buffer_object 2022-01-11
GL_ARB_stencil_texturing
GL_ARB_texture_buffer_range 2021-12-03
GL_ARB_texture_query_levels
GL_ARB_texture_storage_multisample
GL_ARB_texture_view 2021-12-03
GL_ARB_vertex_attrib_binding

OpenGL 4.2 - GLSL 4.20

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 100.0% 100.0% 75.0% 100.0% 100.0% 100.0% 100.0% 50.0% 58.3% 83.3% 58.3% 83.3% 100.0% 100.0% 100.0%
GL_ARB_texture_compression_bptc 2022-02-04
GL_ARB_compressed_texture_pixel_storage
GL_ARB_shader_atomic_counters 2022-01-21
GL_ARB_texture_storage
GL_ARB_transform_feedback_instanced 2022-02-04
GL_ARB_base_instance 2022-01-14
GL_ARB_shader_image_load_store 2022-01-11
GL_ARB_conservative_depth
GL_ARB_shading_language_420pack
GL_ARB_shading_language_packing
GL_ARB_internalformat_query
GL_ARB_map_buffer_alignment

OpenGL 4.1 - GLSL 4.10

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 66.7% 100.0% 50.0% 100.0% 100.0% 100.0% 50.0% 16.7% 33.3% 50.0% 33.3% 33.3% 100.0% 100.0% 100.0%
GL_ARB_ES2_compatibility
GL_ARB_get_program_binary 2022-05-13 2022-02-04
GL_ARB_separate_shader_objects
GL_ARB_shader_precision 2022-02-04
GL_ARB_vertex_attrib_64bit 2022-02-04
GL_ARB_viewport_array 2022-02-04

OpenGL 4.0 - GLSL 4.00

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 84.0% 100.0% 28.0% 100.0% 100.0% 100.0% 56.0% 0.0% 0.0% 20.0% 0.0% 32.0% 100.0% 100.0% 100.0%
GL_ARB_draw_buffers_blend 2022-05-31
GL_ARB_draw_indirect 2022-01-14
GL_ARB_gpu_shader5 2022-01-21
- 'precise' qualifier 2022-01-21
- Dynamically uniform sampler array indices 2022-01-21
- Dynamically uniform UBO array indices 2022-01-21
- Implicit signed -> unsigned conversions 2022-01-21
- Fused multiply-add 2022-01-21
- Packing/bitfield/conversion functions 2022-01-21
- Enhanced textureGather 2022-01-21
- Geometry shader instancing 2022-01-21
- Geometry shader multiple streams 2022-01-21
- Enhanced per-sample shading 2022-01-21
- Interpolation functions 2022-01-21
- New overload resolution rules 2022-01-21
GL_ARB_gpu_shader_fp64 2022-02-04
GL_ARB_sample_shading 2022-01-21
GL_ARB_shader_subroutine
GL_ARB_tessellation_shader 2022-02-04
GL_ARB_texture_buffer_object_rgb32
GL_ARB_texture_cube_map_array 2022-01-11
GL_ARB_texture_gather 2022-01-11
GL_ARB_texture_query_lod
GL_ARB_transform_feedback2 2022-02-04
GL_ARB_transform_feedback3 2022-02-04

OpenGL 3.3 - GLSL 3.30

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 20.0% 30.0% 80.0% 40.0% 90.0% 100.0% 100.0% 100.0%
GL_ARB_blend_func_extended 2021-11-29
GL_ARB_explicit_attrib_location
GL_ARB_occlusion_query2
GL_ARB_sampler_objects
GL_ARB_shader_bit_encoding
GL_ARB_texture_rgb10_a2ui 2022-05-18
GL_ARB_texture_swizzle
GL_ARB_timer_query
GL_ARB_instanced_arrays
GL_ARB_vertex_type_2_10_10_10_rev

OpenGL 3.2 - GLSL 1.50

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 18.2% 63.6% 72.7% 54.5% 90.9% 100.0% 100.0% 100.0%
Core/compatibility profiles
Geometry shaders
GL_ARB_vertex_array_bgra (BGRA vertex order) 2021-12-06
GL_ARB_draw_elements_base_vertex (Base vertex offset) 2021-12-06 2022-05-18
GL_ARB_fragment_coord_conventions (Frag shader coord) 2021-12-06
GL_ARB_provoking_vertex (Provoking vertex) 2021-12-06
GL_ARB_seamless_cube_map (Seamless cubemaps) 2021-12-06
GL_ARB_texture_multisample (Multisample textures)
GL_ARB_depth_clamp (Frag depth clamp) 2021-12-06
GL_ARB_sync (Fence objects) 2021-12-06
GLX_ARB_create_context_profile

OpenGL 3.1 - GLSL 1.40

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 11.1% 33.3% 88.9% 33.3% 100.0% 100.0% 100.0% 100.0%
Forward compatible context support/deprecations
GL_ARB_draw_instanced (Instanced drawing) 2021-12-06
GL_ARB_copy_buffer (Buffer copying) 2021-12-06
GL_NV_primitive_restart (Primitive restart) 2021-12-06 2021-09-03
16 vertex texture image units 2021-12-06
GL_ARB_texture_buffer_object (Texture buffer objs) 2021-12-06 2021-12-03
GL_ARB_texture_rectangle (Rectangular textures) 2021-12-06
GL_ARB_uniform_buffer_object (Uniform buffer objs) 2021-12-06
GL_EXT_texture_snorm (Signed normalized textures) 2021-12-06

OpenGL 3.0 - GLSL 1.30

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 22.2% 48.1% 81.5% 44.4% 100.0% 100.0% 100.0% 100.0%
glBindFragDataLocation, glGetFragDataLocation
GL_NV_conditional_render (Conditional rendering) 2021-12-06
GL_ARB_map_buffer_range (Map buffer subranges) 2021-12-06
GL_ARB_color_buffer_float (Clamping controls) 2021-12-06 2022-05-18 2021-09-08
GL_ARB_texture_float (Float textures, renderbuffers) 2021-12-06
GL_EXT_packed_float 2021-12-06
GL_EXT_texture_shared_exponent 2021-12-06
GL_ARB_depth_buffer_float (Float depth buffers) 2021-12-06
GL_ARB_framebuffer_object (Framebuffer objects) 2021-12-06
GL_ARB_half_float_pixel
GL_ARB_half_float_vertex 2021-12-06
GL_EXT_texture_integer 2021-12-06
GL_EXT_texture_array 2021-12-06
GL_EXT_draw_buffers2 (Per-buffer blend and masks) 2021-12-06
GL_EXT_texture_compression_rgtc 2021-12-06
GL_ARB_texture_rg 2021-12-06
GL_EXT_transform_feedback (Transform feedback) 2021-12-06
GL_ARB_vertex_array_object (Vertex array objects) 2021-12-06
GL_EXT_framebuffer_sRGB (sRGB framebuffer format) 2021-12-06
glClearBuffer commands
glGetStringi command
glTexParameterI, glGetTexParameterI commands
glVertexAttribI commands
Depth format cube textures 2021-12-06
GLX_ARB_create_context (GLX 1.4 is required) 2021-12-06
Multisample anti-aliasing 2021-12-06 2021-12-06 2021-12-06
8 draw buffers 2021-12-06

OpenGL ES

There is a total of 41 extensions to implement. The ranking is based on the number of extensions done by driver.

# Driver Extensions Version
1 freedreno (100.0%) 41 3.2
1 zink (100.0%) 41 3.2
1 virgl (100.0%) 41 3.2
1 mesa (100.0%) 41 3.2
1 radeonsi (100.0%) 41 3.2
1 llvmpipe (100.0%) 41 3.2
1 i965 (100.0%) 41 3.2
8 r600 (97.6%) 40 3.1
8 nvc0 (97.6%) 40 3.1
10 panfrost (82.9%) 34 3.1
10 softpipe (82.9%) 34 3.1
12 d3d12 (78.0%) 32 3.1
12 v3d (78.0%) 32 3.1
14 nv50 (43.9%) 18 N/A
15 vc4 (36.6%) 15 N/A
16 lima (31.7%) 13 N/A
17 etnaviv (29.3%) 12 N/A
Drivers details

OpenGL ES 3.2 - GLSL ES 3.2

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 68.2% 100.0% 36.4% 95.5% 95.5% 100.0% 100.0% 22.7% 31.8% 59.1% 27.3% 68.2% 59.1% 100.0% 100.0%
GL_EXT_color_buffer_float
GL_KHR_blend_equation_advanced 2021-08-31
GL_KHR_debug
GL_KHR_robustness
GL_KHR_texture_compression_astc_ldr
GL_OES_copy_image
GL_OES_draw_buffers_indexed 2022-05-31
GL_OES_draw_elements_base_vertex
GL_OES_geometry_shader
GL_OES_gpu_shader5 2022-01-21
GL_OES_primitive_bounding_box
GL_OES_sample_shading 2022-01-21
GL_OES_sample_variables
GL_OES_shader_image_atomic 2022-05-18 2022-01-11
GL_OES_shader_io_blocks 2022-01-21 2021-08-31
GL_OES_shader_multisample_interpolation
GL_OES_tessellation_shader 2022-02-04
GL_OES_texture_border_clamp
GL_OES_texture_buffer
GL_OES_texture_cube_map_array
GL_OES_texture_stencil8
GL_OES_texture_storage_multisample_2d_array

OpenGL ES 3.1 - GLSL ES 3.1

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
100.0% 100.0% 100.0% 100.0% 52.6% 100.0% 100.0% 100.0% 100.0% 36.8% 42.1% 100.0% 36.8% 100.0% 100.0% 100.0% 100.0%
GL_ARB_arrays_of_arrays
GL_ARB_compute_shader 2022-08-17 2022-01-11
GL_ARB_draw_indirect 2022-08-17 2022-01-14
GL_ARB_explicit_uniform_location
GL_ARB_framebuffer_no_attachments 2022-08-17 2022-08-17 2022-01-14
GL_ARB_program_interface_query
GL_ARB_shader_atomic_counters 2022-08-17 2022-01-21
GL_ARB_shader_image_load_store 2022-08-17 2022-08-17 2022-01-11
GL_ARB_shader_image_size 2022-08-17 2022-01-11
GL_ARB_shader_storage_buffer_object 2022-08-17 2022-01-11
GL_ARB_shading_language_packing
GL_ARB_separate_shader_objects
GL_ARB_stencil_texturing
GL_ARB_texture_multisample (Multisample textures) 2022-08-17
GL_ARB_texture_storage_multisample 2022-08-17
GL_ARB_vertex_attrib_binding
GS5 Enhanced textureGather 2022-01-21
GS5 Packing/bitfield/conversion functions 2022-01-21
GL_EXT_shader_integer_mix

Extensions that are not part of any OpenGL or OpenGL ES version

There is a total of 55 extensions to implement. The ranking is based on the number of extensions done by driver.

# Driver Extensions
1 mesa (92.7%) 51
2 zink (80.0%) 44
3 radeonsi (70.9%) 39
4 i965 (63.6%) 35
5 nvc0 (50.9%) 28
6 llvmpipe (40.0%) 22
7 softpipe (38.2%) 21
8 r600 (36.4%) 20
9 freedreno (32.7%) 18
10 nv50 (29.1%) 16
10 panfrost (29.1%) 16
12 v3d (23.6%) 13
12 d3d12 (23.6%) 13
14 lima (21.8%) 12
14 virgl (21.8%) 12
16 etnaviv (18.2%) 10
17 vc4 (14.5%) 8
Drivers details

Extensions that are not part of any OpenGL or OpenGL ES version

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Arm Emulation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d lima panfrost d3d12 virgl zink
92.7% 40.0% 38.2% 63.6% 29.1% 50.9% 36.4% 70.9% 32.7% 18.2% 14.5% 23.6% 21.8% 29.1% 23.6% 21.8% 80.0%
GL_ARB_bindless_texture 2021-09-27
GL_ARB_cl_event
GL_ARB_compute_variable_group_size
GL_ARB_ES3_2_compatibility
GL_ARB_fragment_shader_interlock
GL_ARB_gpu_shader_int64 2022-02-04
GL_ARB_parallel_shader_compile 2022-07-01
GL_ARB_post_depth_coverage
GL_ARB_robustness_isolation
GL_ARB_sample_locations
GL_ARB_seamless_cubemap_per_texture 2022-04-12
GL_ARB_shader_ballot 2021-07-27
GL_ARB_shader_clock 2022-08-04
GL_ARB_shader_stencil_export
GL_ARB_shader_viewport_layer_array
GL_ARB_shading_language_include
GL_ARB_sparse_buffer 2021-12-30
GL_ARB_sparse_texture 2021-12-30 2021-12-30 2022-01-20
GL_ARB_sparse_texture2 2022-01-18 2022-01-18 2022-01-20
GL_ARB_sparse_texture_clamp 2022-02-01 2022-02-01 2022-02-01
GL_ARB_texture_filter_minmax
GL_ARM_shader_framebuffer_fetch_depth_stencil 2022-06-22 2022-06-22
GL_EXT_color_buffer_half_float 2021-10-07 2021-10-07 2021-10-07 2021-10-07 2021-10-07 2021-10-07 2021-10-07
GL_EXT_depth_bounds_test
GL_EXT_memory_object 2021-10-06 2022-07-14 2022-01-18
GL_EXT_memory_object_fd 2021-10-06 2022-01-18
GL_EXT_memory_object_win32 2022-05-15 2022-07-14 2022-05-15
GL_EXT_multisampled_render_to_texture 2022-06-28 2021-09-24
GL_EXT_render_snorm
GL_EXT_semaphore 2022-07-14 2022-01-18
GL_EXT_semaphore_fd 2022-01-18
GL_EXT_semaphore_win32 2022-05-15 2022-07-14 2022-05-15
GL_EXT_shader_group_vote
GL_EXT_sRGB_write_control
GL_EXT_texture_norm16
GL_EXT_texture_sRGB_R8
GL_KHR_blend_equation_advanced_coherent
GL_KHR_texture_compression_astc_hdr
GL_KHR_texture_compression_astc_sliced_3d 2022-05-18
GL_OES_depth_texture_cube_map
GL_OES_EGL_image
GL_OES_EGL_image_external
GL_OES_EGL_image_external_essl3
GL_OES_required_internalformat
GL_OES_surfaceless_context
GL_OES_texture_compression_astc
GL_OES_texture_float 2022-05-18
GL_OES_texture_float_linear
GL_OES_texture_half_float 2022-05-18
GL_OES_texture_half_float_linear 2022-05-18
GL_OES_texture_view 2021-12-03
GL_OES_viewport_array
GLX_ARB_context_flush_control 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01 2022-08-01
GLX_ARB_robustness_application_isolation
GLX_ARB_robustness_share_group_isolation

OpenCL

There is a total of 102 extensions to implement. The ranking is based on the number of extensions done by driver.

# Driver Extensions Version
1 mesa (45.1%) 46 N/A
2 nvc0 (39.2%) 40 N/A
3 r600 (35.3%) 36 N/A
3 radeonsi (35.3%) 36 N/A
Drivers details

OpenCL 3.0

Nvidia AMD
Extension mesa nvc0 r600 radeonsi
55.6% 55.6% 55.6% 55.6%
Optional device capabilities queries
cl_khr_extended_versioning
clSetContextDestructorCallback
clCreateBufferWithProperties
clCreateImageWithProperties
Query properties arrays
Supported OpenCL C versions and features queries
CL_COMMAND_SVM_MIGRATE_MEM for clGetEventInfo
Latest conformance version passed for devices

OpenCL 2.2

Nvidia AMD
Extension mesa nvc0 r600 radeonsi
0.0% 0.0% 0.0% 0.0%
clSetProgramSpecializationConstant
clSetProgramReleaseCallback
Initialization and clean-up kernels
CL_MAX_SIZE_RESTRICTION_EXCEEDED for clSetKernelArg
Support SPIR-V 1.1 and 1.2

OpenCL 2.1

Nvidia AMD
Extension mesa nvc0 r600 radeonsi
12.5% 12.5% 0.0% 0.0%
Sub groups
- cl_khr_subgroups
- Additional queries for clGetDeviceInfo
cl_khr_il_program
Device and host timer synchronization
clEnqueueSVMMigrateMem
clCloneKernel
Default device command queue

OpenCL 2.0

Nvidia AMD
Extension mesa nvc0 r600 radeonsi
9.1% 9.1% 0.0% 0.0%
Shared virtual memory
Device queues
- cl_khr_create_command_queue
- Additional queries for clGetDeviceInfo
Pipes
Extended 2D images creation
- cl_khr_image2d_from_buffer
- cl_khr_depth_images
- from sRGB images
clCreateSamplerWithProperties
cl_khr_3d_image_writes

OpenCL 1.2

Nvidia AMD
Extension mesa nvc0 r600 radeonsi
94.4% 83.3% 77.8% 77.8%
Custom devices
Built-in kernels
Device partitioning
Separate compilation and linking of programs
Extend cl_mem_flags
clEnqueueFillBuffer, clEnqueueFillImage
Add CL_MAP_WRITE_INVALIDATE_REGION to cl_map_flags
New image types
clCreateImage
clEnqueueMigrateMemObjects
Retrieve kernels information from a program
clGetKernelArgInfo
clEnqueueMarkerWithWaitList
clEnqueueBarrierWithWaitList
clUnloadPlatformCompiler
cl_khr_fp64
printf
CL_KERNEL_ATTRIBUTES for clGetKernelInfo

OpenCL 1.1

Nvidia AMD
Extension mesa nvc0 r600 radeonsi
94.4% 88.9% 88.9% 88.9%
Additional queries for clGetDeviceInfo
CL_CONTEXT_NUM_DEVICES for clGetContextInfo
Optional image formats
clCreateSubBuffer
Read from, write to, copy rectangular regions
clSetMemObjectDestructorCallback
Control OpenCL C version when building
Query for preferred work-group size multiple
Support user events
clSetEventCallback
Minimum requirement changes for clGetDeviceInfo
Arg prerequisite change for clEnqueueNDRangeKernel
3-component vector data types
cl_khr_byte_addressable_store
cl_khr_global_int32_base_atomics
cl_khr_global_int32_extended_atomics
cl_khr_local_int32_base_atomics
cl_khr_local_int32_extended_atomics

OpenCL 1.0

Nvidia AMD
Extension mesa nvc0 r600 radeonsi
0.0% 0.0% 0.0% 0.0%
Image support

Vendor-specific extensions that are not part of any OpenCL version

Nvidia AMD
Extension mesa nvc0 r600 radeonsi
100.0% 100.0% 0.0% 0.0%
cl_arm_shared_virtual_memory

Extensions that are not part of any OpenCL version

Nvidia AMD
Extension mesa nvc0 r600 radeonsi
12.9% 3.2% 3.2% 3.2%
cl_ext_atomic_counters_32
cl_ext_atomic_counters_64
cl_ext_device_fission
cl_ext_migrate_memobject
cl_khr_async_work_group_copy_fence
cl_khr_d3d10_sharing
cl_khr_d3d11_sharing
cl_khr_device_enqueue_local_arg_types
cl_khr_dx9_media_sharing
cl_khr_egl_event
cl_khr_egl_image
cl_khr_extended_async_copies
cl_khr_fp16
cl_khr_gl_depth_images
cl_khr_gl_event
cl_khr_gl_msaa_sharing
cl_khr_gl_sharing
cl_khr_icd
cl_khr_initialize_memory
cl_khr_int64_base_atomics
cl_khr_int64_extended_atomics
cl_khr_mipmap_image
cl_khr_mipmap_image_writes
cl_khr_priority_hints
cl_khr_select_fprounding_mode
cl_khr_spir
cl_khr_srgb_image_writes
cl_khr_subgroup_named_barrier
cl_khr_subgroups
cl_khr_terminate_context
cl_khr_throttle_hints