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
2023-03-23 16:59 freedreno, nir, ir3: implement GL_EXT_shader_framebuffer_fetch
2023-03-21 12:31 v3d: implement NV_conditional_render extension
2023-03-14 02:08 docs: update Anv features support
2023-03-11 02:26 asahi,agx: Implement buffer textures with gnarly NIR
2023-03-05 19:40 asahi: Rework system value lowering
2023-03-05 07:38 asahi: Advertise dual-source blending
2023-03-03 20:47 docs/feature: Mark ARB_sync as done on Asahi
2023-02-27 17:00 docs: add pipeline library support for tu
2023-02-24 14:12 radv: advertise VK_EXT_image_sliced_view_of_3d on GFX10+
2023-02-23 22:17 radv: Implement & expose VK_EXT_pipeline_library_group_handles.
More...

Vulkan

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

# Driver Extensions Version
1 mesa (96.4%) 190 1.3
2 radv (91.4%) 180 1.3
3 anv (79.2%) 156 1.3
4 tu (68.5%) 135 1.3
5 lvp (60.4%) 119 1.1
6 vn (55.8%) 110 1.3
7 v3dv (45.2%) 89 1.0
8 dzn (7.6%) 15 N/A
9 panvk (6.1%) 12 N/A
10 pvr (4.6%) 9 N/A
Drivers details

Vulkan 1.3

Software Intel AMD Qualcomm Broadcom Arm PowerVR Translation
Extension mesa lvp anv radv tu v3dv panvk pvr dzn vn
100.0% 100.0% 100.0% 100.0% 100.0% 65.2% 8.7% 4.3% 4.3% 100.0%
VK_KHR_copy_commands2 2022-08-15 2022-08-15
VK_KHR_dynamic_rendering 2022-07-27 2022-08-15 2022-08-15
VK_KHR_format_feature_flags2 2022-03-21 2022-04-02 2022-05-26 2022-08-30
VK_KHR_maintenance4 2022-03-21 2022-04-05 2022-08-30 2022-08-15
VK_KHR_shader_integer_dot_product 2022-08-15 2023-01-11 2022-08-30
VK_KHR_shader_non_semantic_info 2022-03-21 2022-08-30
VK_KHR_shader_terminate_invocation 2022-03-21 2022-08-30
VK_KHR_synchronization2 2022-03-21 2022-06-01 2022-08-31 2022-08-15 2022-10-27
VK_KHR_zero_initialize_workgroup_memory 2022-03-21 2022-08-31 2022-08-30
VK_EXT_4444_formats 2022-08-15
VK_EXT_extended_dynamic_state 2022-08-15
VK_EXT_extended_dynamic_state2 2022-08-15
VK_EXT_inline_uniform_block 2022-03-21 2022-09-14 2022-03-28 2022-08-15
VK_EXT_pipeline_creation_cache_control 2022-03-21 2022-05-18 2022-08-24
VK_EXT_pipeline_creation_feedback 2022-03-21 2022-05-18 2022-09-08
VK_EXT_private_data 2022-08-15 2022-08-30
VK_EXT_image_robustness 2022-03-21 2022-09-27 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-08-30
VK_EXT_texel_buffer_alignment 2022-03-21 2022-03-17 2022-08-29 2022-08-30
VK_EXT_texture_compression_astc_hdr 2022-08-30 2022-08-30 2022-08-30 2022-08-30 2022-09-21 2022-08-30
VK_EXT_tooling_info 2022-08-30 2022-08-30 2022-08-30 2022-08-30 2022-09-08 2022-09-06 2022-08-30
VK_EXT_ycbcr_2plane_444_formats 2022-08-30 2022-08-30 2022-08-30 2022-08-30 2022-09-21 2022-08-30

Vulkan 1.2

Software Intel AMD Qualcomm Broadcom Arm PowerVR Translation
Extension mesa lvp anv radv tu v3dv panvk pvr dzn vn
100.0% 95.8% 100.0% 100.0% 100.0% 66.7% 0.0% 0.0% 16.7% 100.0%
VK_KHR_8bit_storage 2022-09-21
VK_KHR_buffer_device_address 2022-07-19
VK_KHR_create_renderpass2 2022-08-15
VK_KHR_depth_stencil_resolve 2022-08-15
VK_KHR_draw_indirect_count 2022-08-15
VK_KHR_driver_properties 2022-08-15 2022-08-15
VK_KHR_image_format_list
VK_KHR_imageless_framebuffer
VK_KHR_sampler_mirror_clamp_to_edge
VK_KHR_separate_depth_stencil_layouts 2022-05-05
VK_KHR_shader_atomic_int64 2022-09-21
VK_KHR_shader_float16_int8
VK_KHR_shader_float_controls 2022-05-11
VK_KHR_shader_subgroup_extended_types
VK_KHR_spirv_1_4 2022-05-11
VK_KHR_timeline_semaphore 2022-05-05
VK_KHR_uniform_buffer_standard_layout
VK_KHR_vulkan_memory_model 2022-03-21 2022-05-20
VK_EXT_descriptor_indexing
VK_EXT_host_query_reset
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

Software Intel AMD Qualcomm Broadcom Arm PowerVR Translation
Extension mesa lvp anv radv tu v3dv panvk pvr dzn vn
100.0% 100.0% 100.0% 100.0% 100.0% 95.7% 17.4% 13.0% 13.0% 100.0%
VK_KHR_16bit_storage
VK_KHR_bind_memory2
VK_KHR_dedicated_allocation
VK_KHR_descriptor_update_template 2023-01-19 2022-08-15
VK_KHR_device_group
VK_KHR_device_group_creation
VK_KHR_external_fence
VK_KHR_external_fence_capabilities
VK_KHR_external_memory 2022-08-15
VK_KHR_external_memory_capabilities 2022-08-15
VK_KHR_external_semaphore
VK_KHR_external_semaphore_capabilities
VK_KHR_get_memory_requirements2
VK_KHR_get_physical_device_properties2 2022-08-15 2022-09-13 2022-08-15
VK_KHR_maintenance1
VK_KHR_maintenance2
VK_KHR_maintenance3
VK_KHR_multiview
VK_KHR_relaxed_block_layout
VK_KHR_sampler_ycbcr_conversion 2023-01-16
VK_KHR_shader_draw_parameters 2022-08-15
VK_KHR_storage_buffer_storage_class 2022-08-15
VK_KHR_variable_pointers 2022-08-15

Vulkan 1.0

Software Intel AMD Qualcomm Broadcom Arm PowerVR Translation
Extension mesa lvp anv radv tu v3dv panvk pvr dzn vn
100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 0.0% 0.0% 0.0% 100.0%
All extensions

Extensions that are not part of any Vulkan version

Software Intel AMD Qualcomm Broadcom Arm PowerVR Translation
Extension mesa lvp anv radv tu v3dv panvk pvr dzn vn
94.4% 38.9% 67.5% 86.5% 50.8% 27.8% 4.8% 4.0% 5.6% 31.0%
VK_KHR_acceleration_structure 2022-08-15 2023-03-14 2022-08-15
VK_KHR_android_surface
VK_KHR_deferred_host_operations
VK_KHR_display 2022-08-15
VK_KHR_display_swapchain
VK_KHR_external_fence_fd
VK_KHR_external_fence_win32
VK_KHR_external_memory_fd 2022-08-15
VK_KHR_external_memory_win32
VK_KHR_external_semaphore_fd
VK_KHR_external_semaphore_win32
VK_KHR_fragment_shading_rate 2022-08-15
VK_KHR_get_display_properties2
VK_KHR_get_surface_capabilities2
VK_KHR_global_priority 2022-08-16 2022-08-16 2022-09-14
VK_KHR_incremental_present
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 2023-03-14 2022-04-06 2023-02-27
VK_KHR_present_wait 2022-11-23 2022-11-23 2022-11-23 2022-11-23
VK_KHR_push_descriptor 2022-12-18
VK_KHR_ray_query 2022-08-15 2023-03-14 2022-08-15
VK_KHR_ray_tracing_maintenance1 2022-08-15 2023-03-14 2022-08-15
VK_KHR_ray_tracing_pipeline 2023-03-14 2023-03-14
VK_KHR_shader_clock 2022-08-04
VK_KHR_shader_subgroup_uniform_control_flow
VK_KHR_shared_presentable_image
VK_KHR_surface 2022-08-15 2022-08-15 2022-08-15
VK_KHR_surface_protected_capabilities
VK_KHR_swapchain 2022-08-15 2022-08-15 2022-08-15
VK_KHR_swapchain_mutable_format 2022-04-07 2022-06-13
VK_KHR_wayland_surface 2022-08-15 2022-08-15
VK_KHR_workgroup_memory_explicit_layout 2022-09-01
VK_KHR_win32_keyed_mutex
VK_KHR_win32_surface 2022-08-15
VK_KHR_xcb_surface 2022-08-15
VK_KHR_xlib_surface 2022-08-15
VK_EXT_attachment_feedback_loop_layout 2022-08-26 2022-09-14 2022-08-26 2022-08-26 2022-09-09
VK_EXT_border_color_swizzle 2022-06-14 2022-06-14 2022-06-14 2022-06-16 2022-06-15 2022-09-06
VK_EXT_buffer_device_address 2022-08-15
VK_EXT_calibrated_timestamps 2022-08-15
VK_EXT_color_write_enable 2022-06-14
VK_EXT_conditional_rendering 2022-08-15
VK_EXT_conservative_rasterization 2022-08-15
VK_EXT_custom_border_color 2022-08-15 2022-08-15
VK_EXT_debug_marker
VK_EXT_depth_clip_control 2022-02-25 2022-02-25 2022-08-15 2022-03-28 2022-03-10 2022-09-09 2022-10-27
VK_EXT_depth_clip_enable 2022-08-15
VK_EXT_depth_range_unrestricted 2022-08-15
VK_EXT_descriptor_buffer 2022-11-21 2022-11-21 2022-12-12
VK_EXT_discard_rectangles
VK_EXT_display_control 2022-08-15
VK_EXT_extended_dynamic_state3 2022-09-29 2022-09-29 2023-01-31 2022-10-21 2022-11-03
VK_EXT_external_memory_dma_buf 2022-08-15
VK_EXT_external_memory_host
VK_EXT_filter_cubic
VK_EXT_fragment_shader_interlock
VK_EXT_global_priority 2022-09-14
VK_EXT_global_priority_query 2022-08-15 2022-09-14
VK_EXT_graphics_pipeline_library 2022-03-29 2022-03-29 2023-02-27
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
VK_EXT_image_sliced_view_of_3d 2023-02-24 2023-03-14 2023-02-24
VK_EXT_image_view_min_lod 2022-08-15 2022-05-09 2022-08-15
VK_EXT_index_type_uint8 2022-08-15 2022-08-15
VK_EXT_line_rasterization 2022-03-18 2022-08-15
VK_EXT_load_store_op_none 2022-09-13 2023-02-01 2022-09-13 2022-09-13 2022-09-14
VK_EXT_memory_budget 2022-09-09
VK_EXT_memory_priority
VK_EXT_mesh_shader 2023-03-14 2023-03-14 2023-03-14
VK_EXT_multi_draw 2022-09-14 2022-10-03
VK_EXT_multisampled_render_to_single_sampled 2022-07-26 2022-07-26
VK_EXT_non_seamless_cube_map 2022-06-09 2022-07-25 2022-06-10 2022-06-09 2022-08-17
VK_EXT_pci_bus_info 2022-12-18
VK_EXT_physical_device_drm 2022-03-01 2022-08-15
VK_EXT_pipeline_library_group_handles 2023-02-23 2023-03-14 2023-02-23
VK_EXT_pipeline_robustness 2022-10-27 2022-10-27
VK_EXT_post_depth_coverage
VK_EXT_primitive_topology_list_restart 2022-09-12 2022-10-03
VK_EXT_primitives_generated_query 2022-03-29 2022-03-29 2022-08-15 2022-06-09 2022-04-07 2022-10-27
VK_EXT_provoking_vertex 2022-08-15
VK_EXT_queue_family_foreign 2022-08-15
VK_EXT_rasterization_order_attachment_access 2022-09-06 2022-09-14 2022-09-06
VK_EXT_robustness2 2022-05-10 2022-08-15
VK_EXT_sample_locations
VK_EXT_shader_atomic_float 2022-09-20
VK_EXT_shader_atomic_float2 2022-09-20
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 2022-09-07
VK_EXT_transform_feedback
VK_EXT_vertex_attribute_divisor 2022-08-15 2022-08-15 2022-08-15
VK_EXT_vertex_input_dynamic_state 2023-02-14 2022-08-05
VK_EXT_ycbcr_image_arrays
VK_ANDROID_external_memory_android_hardware_buffer
VK_ANDROID_native_buffer 2022-07-28 2022-07-28
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 2022-10-03
VK_AMD_buffer_marker
VK_AMD_device_coherent_memory
VK_AMD_draw_indirect_count
VK_AMD_gcn_shader
VK_AMD_gpu_shader_half_float
VK_AMD_gpu_shader_int16
VK_AMD_memory_overallocation_behavior
VK_AMD_mixed_attachment_samples
VK_AMD_rasterization_order
VK_AMD_shader_ballot
VK_AMD_shader_core_properties
VK_AMD_shader_core_properties2
VK_AMD_shader_early_and_late_fragment_tests 2022-12-14 2022-12-14
VK_AMD_shader_explicit_vertex_parameter
VK_AMD_shader_fragment_mask 2022-05-26
VK_AMD_shader_image_load_store_lod
VK_AMD_shader_trinary_minmax
VK_AMD_texture_gather_bias_lod
VK_ARM_rasterization_order_attachment_access 2022-02-23 2022-09-14 2022-02-23
VK_EXT_mutable_descriptor_type 2022-09-15 2022-09-21 2022-09-15 2022-09-21 2022-10-03
VK_EXT_swapchain_colorspace 2022-11-16 2022-11-16 2022-11-16 2022-11-16

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 llvmpipe (100.0%) 160 4.6
1 radeonsi (100.0%) 160 4.6
1 i965 (100.0%) 160 4.6
6 nvc0 (98.8%) 158 4.5
7 freedreno (97.5%) 156 4.5
8 r600 (96.2%) 154 4.5
8 virgl (96.2%) 154 4.3
10 softpipe (88.8%) 142 3.3
11 d3d12 (88.1%) 141 4.2
12 nv50 (74.4%) 119 3.3
13 panfrost (68.1%) 109 3.1
14 asahi (66.2%) 106 N/A
15 v3d (65.6%) 105 N/A
16 vc4 (38.1%) 61 N/A
17 lima (37.5%) 60 N/A
18 etnaviv (28.1%) 45 N/A
Drivers details

OpenGL 4.6 - GLSL 4.60

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

OpenGL 4.5 - GLSL 4.50

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Apple Arm Translation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d asahi lima panfrost d3d12 virgl zink
100.0% 100.0% 75.0% 100.0% 83.3% 100.0% 100.0% 100.0% 100.0% 33.3% 41.7% 33.3% 58.3% 50.0% 50.0% 50.0% 100.0% 100.0%
GL_ARB_ES3_1_compatibility 2022-10-19
GL_ARB_clip_control 2022-12-10 2022-07-22
GL_ARB_conditional_render_inverted 2023-02-20
GL_ARB_cull_distance
GL_ARB_derivative_control 2022-11-02 2023-02-20
GL_ARB_direct_state_access
GL_ARB_get_texture_sub_image
GL_ARB_shader_texture_image_samples 2022-11-02
GL_ARB_texture_barrier 2022-05-18 2023-02-20 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 Apple Arm Translation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d asahi lima panfrost d3d12 virgl zink
100.0% 100.0% 93.3% 100.0% 93.3% 100.0% 100.0% 100.0% 100.0% 60.0% 60.0% 73.3% 80.0% 60.0% 80.0% 73.3% 93.3% 100.0%
GL_MAX_VERTEX_ATTRIB_STRIDE
GL_ARB_buffer_storage 2022-11-01 2022-11-01 2022-10-29 2022-05-23 2022-10-29 2022-10-31
GL_ARB_clear_texture 2022-11-02
GL_ARB_enhanced_layouts 2022-10-28
- 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 2022-11-02
GL_ARB_texture_mirror_clamp_to_edge 2022-10-28 2023-01-09
GL_ARB_texture_stencil8 2022-11-23
GL_ARB_vertex_type_10f_11f_11f_rev 2022-12-02

OpenGL 4.3 - GLSL 4.30

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Apple Arm Translation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d asahi lima panfrost d3d12 virgl zink
100.0% 100.0% 95.5% 100.0% 72.7% 100.0% 100.0% 100.0% 100.0% 45.5% 50.0% 90.9% 59.1% 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
GL_ARB_copy_image 2022-10-19 2022-04-19
GL_KHR_debug
GL_ARB_explicit_uniform_location
GL_ARB_fragment_layer_viewport 2022-10-28
GL_ARB_framebuffer_no_attachments 2023-02-20
GL_ARB_internalformat_query2
GL_ARB_invalidate_subdata
GL_ARB_multi_draw_indirect
GL_ARB_program_interface_query
GL_ARB_robust_buffer_access_behavior 2022-04-28
GL_ARB_shader_image_size
GL_ARB_shader_storage_buffer_object
GL_ARB_stencil_texturing 2022-11-23 2022-11-23 2022-11-23
GL_ARB_texture_buffer_range
GL_ARB_texture_query_levels
GL_ARB_texture_storage_multisample 2022-10-29
GL_ARB_texture_view 2022-11-23
GL_ARB_vertex_attrib_binding

OpenGL 4.2 - GLSL 4.20

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Apple Arm Translation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d asahi lima panfrost d3d12 virgl zink
100.0% 100.0% 91.7% 100.0% 75.0% 100.0% 100.0% 100.0% 100.0% 50.0% 58.3% 83.3% 58.3% 58.3% 75.0% 100.0% 100.0% 100.0%
GL_ARB_texture_compression_bptc 2022-09-17 2022-10-29
GL_ARB_compressed_texture_pixel_storage
GL_ARB_shader_atomic_counters
GL_ARB_texture_storage
GL_ARB_transform_feedback_instanced
GL_ARB_base_instance
GL_ARB_shader_image_load_store
GL_ARB_conservative_depth
GL_ARB_shading_language_420pack
GL_ARB_shading_language_packing
GL_ARB_internalformat_query 2022-11-23
GL_ARB_map_buffer_alignment

OpenGL 4.1 - GLSL 4.10

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

OpenGL 4.0 - GLSL 4.00

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

OpenGL 3.3 - GLSL 3.30

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Apple Arm Translation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d asahi lima panfrost d3d12 virgl zink
100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 100.0% 30.0% 30.0% 80.0% 90.0% 40.0% 90.0% 100.0% 100.0% 100.0%
GL_ARB_blend_func_extended 2023-03-05
GL_ARB_explicit_attrib_location
GL_ARB_occlusion_query2 2022-12-17
GL_ARB_sampler_objects
GL_ARB_shader_bit_encoding 2022-11-23
GL_ARB_texture_rgb10_a2ui 2022-05-18 2022-11-23
GL_ARB_texture_swizzle 2022-11-23
GL_ARB_timer_query
GL_ARB_instanced_arrays 2022-08-24 2022-12-17
GL_ARB_vertex_type_2_10_10_10_rev 2022-12-02

OpenGL 3.2 - GLSL 1.50

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Apple Arm Translation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d asahi 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% 81.8% 54.5% 90.9% 100.0% 100.0% 100.0%
Core/compatibility profiles
Geometry shaders
GL_ARB_vertex_array_bgra (BGRA vertex order) 2022-11-23
GL_ARB_draw_elements_base_vertex (Base vertex offset) 2022-05-18 2022-11-23
GL_ARB_fragment_coord_conventions (Frag shader coord) 2022-11-23
GL_ARB_provoking_vertex (Provoking vertex) 2022-11-23
GL_ARB_seamless_cube_map (Seamless cubemaps) 2022-12-17
GL_ARB_texture_multisample (Multisample textures)
GL_ARB_depth_clamp (Frag depth clamp) 2023-02-20
GL_ARB_sync (Fence objects) 2023-03-03
GLX_ARB_create_context_profile

OpenGL 3.1 - GLSL 1.40

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Apple Arm Translation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d asahi 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% 33.3% 88.9% 100.0% 33.3% 100.0% 100.0% 100.0% 100.0%
Forward compatible context support/deprecations
GL_ARB_draw_instanced (Instanced drawing) 2022-08-24 2022-12-17
GL_ARB_copy_buffer (Buffer copying) 2022-11-23
GL_NV_primitive_restart (Primitive restart) 2022-11-23
16 vertex texture image units 2023-02-20
GL_ARB_texture_buffer_object (Texture buffer objs) 2023-03-11
GL_ARB_texture_rectangle (Rectangular textures) 2022-11-23
GL_ARB_uniform_buffer_object (Uniform buffer objs) 2022-11-23
GL_EXT_texture_snorm (Signed normalized textures) 2022-11-23

OpenGL 3.0 - GLSL 1.30

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Apple Arm Translation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d asahi 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% 88.9% 92.6% 44.4% 100.0% 100.0% 100.0% 100.0%
glBindFragDataLocation, glGetFragDataLocation
GL_NV_conditional_render (Conditional rendering) 2023-03-21 2023-01-05
GL_ARB_map_buffer_range (Map buffer subranges) 2022-11-23
GL_ARB_color_buffer_float (Clamping controls) 2022-05-18 2022-11-23
GL_ARB_texture_float (Float textures, renderbuffers) 2022-11-23
GL_EXT_packed_float 2022-11-23
GL_EXT_texture_shared_exponent 2023-01-05
GL_ARB_depth_buffer_float (Float depth buffers) 2022-11-23
GL_ARB_framebuffer_object (Framebuffer objects) 2022-11-23
GL_ARB_half_float_pixel
GL_ARB_half_float_vertex 2022-11-23
GL_EXT_texture_integer 2022-11-23
GL_EXT_texture_array 2022-11-23
GL_EXT_draw_buffers2 (Per-buffer blend and masks) 2022-11-23
GL_EXT_texture_compression_rgtc 2022-09-15 2022-09-15 2022-11-23
GL_ARB_texture_rg 2022-11-23
GL_EXT_transform_feedback (Transform feedback)
GL_ARB_vertex_array_object (Vertex array objects) 2022-11-23
GL_EXT_framebuffer_sRGB (sRGB framebuffer format) 2022-11-23
glClearBuffer commands
glGetStringi command
glTexParameterI, glGetTexParameterI commands
glVertexAttribI commands
Depth format cube textures 2023-01-05
GLX_ARB_create_context (GLX 1.4 is required) 2022-11-23
Multisample anti-aliasing
8 draw buffers 2023-01-05

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 zink (100.0%) 41 3.2
1 mesa (100.0%) 41 3.2
1 llvmpipe (100.0%) 41 3.2
1 virgl (100.0%) 41 3.2
1 radeonsi (100.0%) 41 3.2
1 freedreno (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 asahi (53.7%) 22 N/A
15 nv50 (43.9%) 18 N/A
16 vc4 (36.6%) 15 N/A
17 lima (31.7%) 13 N/A
18 etnaviv (29.3%) 12 N/A
Drivers details

OpenGL ES 3.2 - GLSL ES 3.2

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Apple Arm Translation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d asahi 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% 45.5% 27.3% 68.2% 59.1% 100.0% 100.0%
GL_EXT_color_buffer_float
GL_KHR_blend_equation_advanced 2023-02-20
GL_KHR_debug
GL_KHR_robustness
GL_KHR_texture_compression_astc_ldr 2023-02-20
GL_OES_copy_image
GL_OES_draw_buffers_indexed 2022-10-29 2022-05-31 2022-11-23
GL_OES_draw_elements_base_vertex
GL_OES_geometry_shader
GL_OES_gpu_shader5
GL_OES_primitive_bounding_box
GL_OES_sample_shading
GL_OES_sample_variables
GL_OES_shader_image_atomic 2022-10-29 2022-05-18
GL_OES_shader_io_blocks 2022-10-29
GL_OES_shader_multisample_interpolation
GL_OES_tessellation_shader
GL_OES_texture_border_clamp
GL_OES_texture_buffer 2023-03-11
GL_OES_texture_cube_map_array
GL_OES_texture_stencil8 2022-10-29 2022-11-23
GL_OES_texture_storage_multisample_2d_array 2022-10-29

OpenGL ES 3.1 - GLSL ES 3.1

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Apple Arm Translation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d asahi 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% 63.2% 36.8% 100.0% 100.0% 100.0% 100.0%
GL_ARB_arrays_of_arrays
GL_ARB_compute_shader 2023-03-23
GL_ARB_draw_indirect 2023-02-13 2023-03-23
GL_ARB_explicit_uniform_location
GL_ARB_framebuffer_no_attachments 2023-03-23 2023-02-20 2023-03-23
GL_ARB_program_interface_query
GL_ARB_shader_atomic_counters 2023-03-23
GL_ARB_shader_image_load_store 2023-03-23 2023-03-23
GL_ARB_shader_image_size 2023-03-23
GL_ARB_shader_storage_buffer_object 2023-03-23
GL_ARB_shading_language_packing
GL_ARB_separate_shader_objects
GL_ARB_stencil_texturing 2023-03-23 2023-03-23 2022-11-23
GL_ARB_texture_multisample (Multisample textures) 2023-03-23
GL_ARB_texture_storage_multisample 2023-03-23 2023-03-23
GL_ARB_vertex_attrib_binding
GS5 Enhanced textureGather 2023-02-20
GS5 Packing/bitfield/conversion functions 2022-11-23
GL_EXT_shader_integer_mix

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

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

# Driver Extensions
1 mesa (93.0%) 53
2 zink (84.2%) 48
3 radeonsi (68.4%) 39
4 i965 (61.4%) 35
5 freedreno (52.6%) 30
6 nvc0 (49.1%) 28
7 llvmpipe (42.1%) 24
8 softpipe (36.8%) 21
9 r600 (35.1%) 20
10 panfrost (33.3%) 19
11 asahi (31.6%) 18
12 nv50 (28.1%) 16
13 virgl (24.6%) 14
14 v3d (22.8%) 13
14 d3d12 (22.8%) 13
16 lima (21.1%) 12
17 etnaviv (17.5%) 10
18 vc4 (14.0%) 8
Drivers details

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

Software Intel Nvidia AMD Qualcomm Vivante Broadcom Apple Arm Translation
Extension mesa llvmpipe softpipe i965 nv50 nvc0 r600 radeonsi freedreno etnaviv vc4 v3d asahi lima panfrost d3d12 virgl zink
93.0% 42.1% 36.8% 61.4% 28.1% 49.1% 35.1% 68.4% 52.6% 17.5% 14.0% 22.8% 31.6% 21.1% 33.3% 22.8% 24.6% 84.2%
GL_ARB_bindless_texture
GL_ARB_cl_event
GL_ARB_compute_variable_group_size 2022-10-19
GL_ARB_ES3_2_compatibility 2022-10-19
GL_ARB_fragment_shader_interlock
GL_ARB_gpu_shader_int64 2022-10-19
GL_ARB_parallel_shader_compile 2022-07-01 2022-08-30
GL_ARB_post_depth_coverage
GL_ARB_robustness_isolation
GL_ARB_sample_locations
GL_ARB_seamless_cubemap_per_texture 2023-02-20 2022-04-12
GL_ARB_shader_ballot
GL_ARB_shader_clock 2022-08-04
GL_ARB_shader_stencil_export 2022-12-17
GL_ARB_shader_viewport_layer_array
GL_ARB_shading_language_include
GL_ARB_sparse_buffer
GL_ARB_sparse_texture
GL_ARB_sparse_texture2
GL_ARB_sparse_texture_clamp
GL_ARB_texture_filter_minmax
GL_ARM_shader_framebuffer_fetch_depth_stencil 2022-06-22 2022-06-22
GL_EXT_shader_framebuffer_fetch 2023-03-23 2023-03-23 2023-03-23 2023-03-23 2023-03-23 2023-03-23 2023-03-23
GL_EXT_shader_framebuffer_fetch_non_coherent 2023-03-23 2023-03-23 2023-03-23 2023-03-23 2023-03-23 2023-03-23 2023-03-23
GL_EXT_color_buffer_half_float
GL_EXT_depth_bounds_test
GL_EXT_memory_object 2022-10-19 2022-07-14
GL_EXT_memory_object_fd 2022-10-19
GL_EXT_memory_object_win32 2022-05-15 2022-07-14 2022-05-15
GL_EXT_multisampled_render_to_texture 2022-06-28
GL_EXT_render_snorm 2022-10-19 2023-02-03
GL_EXT_semaphore 2022-07-14
GL_EXT_semaphore_fd
GL_EXT_semaphore_win32 2022-05-15 2022-07-14 2022-05-15
GL_EXT_shader_group_vote 2022-11-03
GL_EXT_sRGB_write_control
GL_EXT_texture_norm16
GL_EXT_texture_sRGB_R8
GL_KHR_blend_equation_advanced_coherent 2023-02-10 2023-02-20 2022-08-24
GL_KHR_texture_compression_astc_hdr
GL_KHR_texture_compression_astc_sliced_3d 2022-10-19 2022-05-18 2023-02-20
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 2022-11-23
GL_OES_texture_float_linear 2022-11-23
GL_OES_texture_half_float 2022-05-18 2022-11-23
GL_OES_texture_half_float_linear 2022-05-18 2022-11-23
GL_OES_texture_view
GL_OES_viewport_array 2022-10-28
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 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