16 KiB
Vulkan extension support
This is a list of the currently supported vulkan extensions, in a bit more readable format than the code.
Maintainers can update this file by updating vk.xml in this folder and running ./check_extensions.sh which will output any new extensions that haven't been filed in a category below. This will also update all_exts.txt which needs to be committed too when this file is updated to keep things in sync.
Supported
VK_AMD_buffer_markerVK_AMD_device_coherent_memoryVK_AMD_display_native_hdrVK_AMD_gcn_shaderVK_AMD_gpu_shader_half_floatVK_AMD_gpu_shader_int16VK_AMD_memory_overallocation_behaviorVK_AMD_mixed_attachment_samplesVK_AMD_negative_viewport_heightVK_AMD_shader_ballotVK_AMD_shader_core_propertiesVK_AMD_shader_explicit_vertex_parameterVK_AMD_shader_fragment_maskVK_AMD_shader_image_load_store_lodVK_AMD_shader_trinary_minmaxVK_AMD_texture_gather_bias_lodVK_ANDROID_external_memory_android_hardware_bufferVK_EXT_4444_formatsVK_EXT_acquire_drm_displayVK_EXT_acquire_xlib_displayVK_EXT_astc_decode_modeVK_EXT_attachment_feedback_loop_dynamic_stateVK_EXT_attachment_feedback_loop_layoutVK_EXT_border_color_swizzleVK_EXT_buffer_device_addressVK_EXT_calibrated_timestampsVK_EXT_color_write_enableVK_EXT_conditional_renderingVK_EXT_conservative_rasterizationVK_EXT_custom_border_colorVK_EXT_custom_resolveVK_EXT_debug_markerVK_EXT_debug_reportVK_EXT_debug_utilsVK_EXT_depth_clamp_zero_oneVK_EXT_depth_bias_controlVK_EXT_depth_clip_controlVK_EXT_depth_clip_enableVK_EXT_depth_range_unrestrictedVK_EXT_descriptor_bufferVK_EXT_descriptor_indexingVK_EXT_direct_mode_displayVK_EXT_discard_rectanglesVK_EXT_display_controlVK_EXT_display_surface_counterVK_EXT_dynamic_rendering_unused_attachmentsVK_EXT_extended_dynamic_stateVK_EXT_extended_dynamic_state2VK_EXT_extended_dynamic_state3VK_EXT_external_memory_dma_bufVK_EXT_filter_cubicVK_EXT_fragment_density_mapVK_EXT_fragment_density_map2VK_EXT_fragment_density_map_offsetVK_EXT_fragment_shader_interlockVK_EXT_full_screen_exclusiveVK_EXT_global_priority_queryVK_EXT_global_priorityVK_EXT_graphics_pipeline_libraryVK_EXT_hdr_metadataVK_EXT_headless_surfaceVK_EXT_host_image_copyVK_EXT_host_query_resetVK_EXT_image_2d_view_of_3dVK_EXT_image_compression_controlVK_EXT_image_compression_control_swapchainVK_EXT_image_drm_format_modifierVK_EXT_image_robustnessVK_EXT_image_view_min_lodVK_EXT_index_type_uint8VK_EXT_inline_uniform_blockVK_EXT_line_rasterizationVK_EXT_load_store_op_noneVK_EXT_memory_budgetVK_EXT_memory_priorityVK_EXT_mesh_shaderVK_EXT_metal_surfaceVK_EXT_multisampled_render_to_single_sampledVK_EXT_mutable_descriptor_typeVK_EXT_nested_command_bufferVK_EXT_non_seamless_cube_mapVK_EXT_pageable_device_local_memoryVK_EXT_pci_bus_infoVK_EXT_physical_device_drmVK_EXT_pipeline_creation_cache_controlVK_EXT_pipeline_creation_feedbackVK_EXT_pipeline_protected_accessVK_EXT_pipeline_robustnessVK_EXT_post_depth_coverageVK_EXT_present_mode_fifo_latest_readyVK_EXT_primitive_topology_list_restartVK_EXT_primitives_generated_queryVK_EXT_private_dataVK_EXT_provoking_vertexVK_EXT_queue_family_foreignVK_EXT_rasterization_order_attachment_accessVK_EXT_ray_tracing_invocation_reorderVK_EXT_rgba10x6_formatsVK_EXT_robustness2VK_EXT_sample_locationsVK_EXT_sampler_filter_minmaxVK_EXT_scalar_block_layoutVK_EXT_separate_stencil_usageVK_EXT_shader_atomic_floatVK_EXT_shader_atomic_float2VK_EXT_shader_demote_to_helper_invocationVK_EXT_shader_image_atomic_int64VK_EXT_shader_objectVK_EXT_shader_stencil_exportVK_EXT_shader_subgroup_ballotVK_EXT_shader_subgroup_voteVK_EXT_shader_viewport_index_layerVK_EXT_subgroup_size_controlVK_EXT_surface_maintenance1VK_EXT_swapchain_colorspaceVK_EXT_swapchain_maintenance1VK_EXT_texel_buffer_alignmentVK_EXT_texture_compression_astc_hdrVK_EXT_tooling_infoVK_EXT_transform_feedbackVK_EXT_validation_cacheVK_EXT_validation_featuresVK_EXT_validation_flagsVK_EXT_vertex_attribute_divisorVK_EXT_vertex_attribute_robustnessVK_EXT_vertex_input_dynamic_stateVK_EXT_ycbcr_2plane_444_formatsVK_EXT_ycbcr_image_arraysVK_GOOGLE_decorate_stringVK_GOOGLE_display_timingVK_GOOGLE_hlsl_functionality1VK_GOOGLE_surfaceless_queryVK_GOOGLE_user_typeVK_IMG_filter_cubicVK_IMG_format_pvrtcVK_KHR_16bit_storageVK_KHR_8bit_storageVK_KHR_acceleration_structureVK_KHR_android_surfaceVK_KHR_bind_memory2VK_KHR_buffer_device_addressVK_KHR_calibrated_timestampsVK_KHR_compute_shader_derivativesVK_KHR_copy_commands2VK_KHR_create_renderpass2VK_KHR_dedicated_allocationVK_KHR_deferred_host_operationsVK_KHR_depth_clamp_zero_oneVK_KHR_depth_stencil_resolveVK_KHR_descriptor_update_templateVK_KHR_device_group_creationVK_KHR_device_groupVK_KHR_display_swapchainVK_KHR_displayVK_KHR_draw_indirect_countVK_KHR_driver_propertiesVK_KHR_dynamic_rendering_local_readVK_KHR_dynamic_renderingVK_KHR_external_fence_capabilitiesVK_KHR_external_fence_fdVK_KHR_external_fence_win32VK_KHR_external_fenceVK_KHR_external_memory_capabilitiesVK_KHR_external_memory_fdVK_KHR_external_memory_win32VK_KHR_external_memoryVK_KHR_external_semaphore_capabilitiesVK_KHR_external_semaphore_fdVK_KHR_external_semaphore_win32VK_KHR_external_semaphoreVK_KHR_format_feature_flags2VK_KHR_fragment_shader_barycentricVK_KHR_fragment_shading_rateVK_KHR_get_display_properties2VK_KHR_get_memory_requirements2VK_KHR_get_physical_device_properties2VK_KHR_get_surface_capabilities2VK_KHR_global_priorityVK_KHR_image_format_listVK_KHR_imageless_framebufferVK_KHR_incremental_presentVK_KHR_index_type_uint8VK_KHR_line_rasterizationVK_KHR_load_store_op_noneVK_KHR_maintenance1VK_KHR_maintenance2VK_KHR_maintenance3VK_KHR_maintenance4VK_KHR_maintenance5VK_KHR_maintenance6VK_KHR_maintenance7VK_KHR_maintenance8VK_KHR_maintenance9VK_KHR_map_memory2VK_KHR_multiviewVK_KHR_performance_queryVK_KHR_pipeline_executable_propertiesVK_KHR_pipeline_libraryVK_KHR_present_idVK_KHR_present_id2VK_KHR_present_mode_fifo_latest_readyVK_KHR_present_waitVK_KHR_present_wait2VK_KHR_push_descriptorVK_KHR_ray_queryVK_KHR_ray_tracing_maintenance1VK_KHR_ray_tracing_pipelineVK_KHR_ray_tracing_position_fetchVK_KHR_relaxed_block_layoutVK_KHR_robustness2VK_KHR_sampler_mirror_clamp_to_edgeVK_KHR_sampler_ycbcr_conversionVK_KHR_separate_depth_stencil_layoutsVK_KHR_shader_atomic_int64VK_KHR_shader_bfloat16VK_KHR_shader_clockVK_KHR_shader_draw_parametersVK_KHR_shader_expect_assumeVK_KHR_shader_float_controlsVK_KHR_shader_float_controls2VK_KHR_shader_float16_int8VK_KHR_shader_integer_dot_productVK_KHR_shader_maximal_reconvergenceVK_KHR_shader_non_semantic_infoVK_KHR_shader_quad_controlVK_KHR_shader_relaxed_extended_instructionVK_KHR_shader_subgroup_extended_typesVK_KHR_shader_subgroup_rotateVK_KHR_shader_subgroup_uniform_control_flowVK_KHR_shader_terminate_invocationVK_KHR_shared_presentable_imageVK_KHR_spirv_1_4VK_KHR_storage_buffer_storage_classVK_KHR_surface_protected_capabilitiesVK_KHR_surfaceVK_KHR_surface_maintenance1VK_KHR_swapchain_mutable_formatVK_KHR_swapchainVK_KHR_swapchain_maintenance1VK_KHR_synchronization2VK_KHR_timeline_semaphoreVK_KHR_unified_image_layoutsVK_KHR_uniform_buffer_standard_layoutVK_KHR_variable_pointersVK_KHR_vertex_attribute_divisorVK_KHR_vulkan_memory_modelVK_KHR_wayland_surfaceVK_KHR_win32_keyed_mutexVK_KHR_win32_surfaceVK_KHR_workgroup_memory_explicit_layoutVK_KHR_xcb_surfaceVK_KHR_xlib_surfaceVK_KHR_zero_initialize_workgroup_memoryVK_MVK_macos_surfaceVK_NV_compute_shader_derivativesVK_NV_dedicated_allocationVK_NV_device_diagnostic_checkpointsVK_NV_device_diagnostics_configVK_NV_external_memory_capabilitiesVK_NV_external_memory_win32VK_NV_external_memoryVK_NV_fragment_shader_barycentricVK_NV_geometry_shader_passthroughVK_NV_ray_tracing_invocation_reorderVK_NV_sample_mask_override_coverageVK_NV_shader_image_footprintVK_NV_shader_subgroup_partitionedVK_NV_viewport_array2VK_NV_win32_keyed_mutexVK_QCOM_fragment_density_map_offsetVK_QCOM_multiview_per_view_render_areasVK_QCOM_render_pass_shader_resolveVK_QCOM_render_pass_store_opsVK_VALVE_fragment_density_map_layeredVK_VALVE_mutable_descriptor_type
Unsupported
KHR extensions will definitely be implemented at some point, though KHR extensions that entail a large amount of work may be deferred. EXT extensions are likely to be implemented in future but current plans or priorities may vary. Vendor extensions likely won't be supported but could be upon request given how much demand there is and ease of implementation.
KHR Extensions
VK_KHR_cooperative_matrixVK_KHR_copy_memory_indirectVK_KHR_device_address_commandsVK_KHR_device_faultVK_KHR_extended_flagsVK_KHR_internally_synchronized_queuesVK_KHR_maintenance10VK_KHR_maintenance11VK_KHR_opacity_micromapVK_KHR_pipeline_binaryVK_KHR_shader_abortVK_KHR_shader_constant_dataVK_KHR_shader_fmaVK_KHR_shader_untyped_pointers
KHR Portability
The portability subset is only relevant on mac, which is not a supported platform.
VK_KHR_portability_subsetVK_KHR_portability_enumeration
EXT Extensions
VK_EXT_blend_operation_advancedVK_EXT_depth_clamp_controlVK_EXT_descriptor_heapVK_EXT_device_address_binding_reportVK_EXT_device_faultVK_EXT_device_generated_commandsVK_EXT_device_memory_reportVK_EXT_external_memory_acquire_unmodifiedVK_EXT_external_memory_hostVK_EXT_external_memory_metalVK_EXT_image_sliced_view_of_3dVK_EXT_layer_settingsVK_EXT_legacy_ditheringVK_EXT_legacy_vertex_attributesVK_EXT_map_memory_placedVK_EXT_memory_decompressionVK_EXT_metal_objectsVK_EXT_multi_drawVK_EXT_multisampled_render_to_swapchainVK_EXT_opacity_micromapVK_EXT_pipeline_library_group_handlesVK_EXT_present_timingVK_EXT_primitive_restart_indexVK_EXT_shader_64bit_indexingVK_EXT_shader_float8VK_EXT_shader_long_vectorVK_EXT_shader_module_identifierVK_EXT_shader_ocp_microscaling_typesVK_EXT_shader_replicated_compositesVK_EXT_shader_split_barrierVK_EXT_shader_subgroup_partitionedVK_EXT_shader_tile_imageVK_EXT_shader_uniform_buffer_unsized_arrayVK_EXT_subpass_merge_feedbackVK_EXT_texture_compression_astc_3dVK_EXT_zero_initialize_device_memory
Platform/IHV Extensions
Android
VK_ANDROID_external_format_resolve
ARM
VK_ARM_data_graph_instruction_set_tosaVK_ARM_data_graph_neural_accelerator_statisticsVK_ARM_data_graph_optical_flowVK_ARM_data_graphVK_ARM_format_packVK_ARM_performance_counters_by_regionVK_ARM_pipeline_opacity_micromapVK_ARM_rasterization_order_attachment_accessVK_ARM_render_pass_stripedVK_ARM_scheduling_controlsVK_ARM_shader_core_builtinsVK_ARM_shader_core_propertiesVK_ARM_shader_instrumentationVK_ARM_tensor_controlsVK_ARM_tensors
AMD
VK_AMD_anti_lagVK_AMD_gpa_interfaceVK_AMD_pipeline_compiler_controlVK_AMD_rasterization_orderVK_AMD_shader_infoVK_AMD_shader_core_properties2VK_AMD_shader_early_and_late_fragment_tests
Fuschia
VK_FUCHSIA_external_memoryVK_FUCHSIA_external_semaphoreVK_FUCHSIA_buffer_collection
Huawei
VK_HUAWEI_cluster_culling_shaderVK_HUAWEI_subpass_shadingVK_HUAWEI_invocation_maskVK_HUAWEI_hdr_vivid
Imagination
VK_IMG_filter_linear_2dVK_IMG_relaxed_line_rasterization
Intel
VK_INTEL_shader_integer_functions2VK_INTEL_performance_query
MESA
VK_MESA_image_alignment_control
Microsoft
VK_MSFT_layered_driver
NV
VK_NV_clip_space_w_scalingVK_NV_cluster_acceleration_structureVK_NV_command_buffer_inheritanceVK_NV_compute_occupancy_priorityVK_NV_cooperative_matrix_decode_vectorVK_NV_cooperative_matrixVK_NV_cooperative_matrix2VK_NV_cooperative_vectorVK_NV_copy_memory_indirectVK_NV_corner_sampled_imageVK_NV_coverage_reduction_modeVK_NV_cuda_kernel_launchVK_NV_dedicated_allocation_image_aliasingVK_NV_descriptor_pool_overallocationVK_NV_device_generated_commands_computeVK_NV_device_generated_commandsVK_NV_displacement_micromapVK_NV_display_stereoVK_NV_extended_sparse_address_spaceVK_NV_external_compute_queueVK_NV_external_memory_rdmaVK_NV_fill_rectangleVK_NV_fragment_coverage_to_colorVK_NV_fragment_shading_rate_enumsVK_NV_framebuffer_mixed_samplesVK_NV_inherited_viewport_scissorVK_NV_linear_color_attachmentVK_NV_low_latencyVK_NV_low_latency2VK_NV_memory_decompressionVK_NV_mesh_shaderVK_NV_optical_flowVK_NV_partitioned_acceleration_structureVK_NV_per_stage_descriptor_setVK_NV_push_constant_bankVK_NV_present_barrierVK_NV_present_meteringVK_NV_raw_access_chainsVK_NV_ray_tracing_linear_swept_spheresVK_NV_ray_tracing_motion_blurVK_NV_ray_tracing_validationVK_NV_representative_fragment_testVK_NV_scissor_exclusiveVK_NV_shader_atomic_float16_vectorVK_NV_shader_sm_builtinsVK_NV_shading_rate_imageVK_NV_viewport_swizzle
Qualcomm
VK_QCOM_cooperative_matrix_conversionVK_QCOM_data_graph_modelVK_QCOM_elapsed_timer_queryVK_QCOM_filter_cubic_clampVK_QCOM_filter_cubic_weightsVK_QCOM_image_processingVK_QCOM_image_processing2VK_QCOM_image_processing3VK_QCOM_multiview_per_view_viewportsVK_QCOM_queue_perf_hintVK_QCOM_render_pass_transformVK_QCOM_rotated_copy_commandsVK_QCOM_shader_multiple_wait_queuesVK_QCOM_tile_memory_heapVK_QCOM_tile_propertiesVK_QCOM_tile_shadingVK_QCOM_ycbcr_degamma
Samsung
VK_SEC_amigo_profilingVK_SEC_pipeline_cache_incremental_modeVK_SEC_throttle_hintVK_SEC_ubm_surface
Valve
VK_VALVE_descriptor_set_host_mappingVK_VALVE_shader_mixed_float_dot_productVK_VALVE_video_encode_rgb_conversion
WSI for other platforms
These only make sense to implement if the platform as a whole is supported.
VK_EXT_directfb_surfaceVK_FUCHSIA_imagepipe_surfaceVK_NN_vi_surfaceVK_NV_acquire_winrt_displayVK_QNX_screen_surfaceVK_QNX_external_memory_screen_buffer
Deliberately unsupported extensions
These are expected to never be implemented in their current form.
Vulkan Video extensions
VK_KHR_video_decode_av1VK_KHR_video_decode_h264VK_KHR_video_decode_h265VK_KHR_video_decode_queueVK_KHR_video_decode_vp9VK_KHR_video_encode_av1VK_KHR_video_encode_feedback2VK_KHR_video_encode_h264VK_KHR_video_encode_h265VK_KHR_video_encode_intra_refreshVK_KHR_video_encode_quantization_mapVK_KHR_video_encode_queueVK_KHR_video_maintenance1VK_KHR_video_maintenance2VK_KHR_video_queue
System/Other tool extensions
VK_EXT_frame_boundaryVK_LUNARG_direct_driver_loading
Deprecated / experimental / IHV / non-Vulkan
VK_AMD_draw_indirect_countVK_AMDX_dense_geometry_formatVK_AMDX_shader_enqueueVK_GGP_frame_tokenVK_GGP_stream_descriptor_surfaceVK_EXT_pipeline_propertiesVK_EXT_video_encode_h264VK_EXT_video_encode_h265VK_EXT_video_decode_h264VK_EXT_video_decode_h265VK_MVK_ios_surfaceVK_NV_glsl_shaderVK_NV_ray_tracingVK_NVX_binary_importVK_NVX_multiview_per_view_attributesVK_NVX_image_view_handleVK_OHOS_surfaceVK_OHOS_external_memory