14 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_debug_markerVK_EXT_debug_reportVK_EXT_debug_utilsVK_EXT_depth_clamp_zero_oneVK_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_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_query_resetVK_EXT_image_2d_view_of_3dVK_EXT_image_compression_controlVK_EXT_image_compression_control_swapchainVK_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_pipeline_creation_cache_controlVK_EXT_pipeline_creation_feedbackVK_EXT_post_depth_coverageVK_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_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_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_multiviewVK_KHR_performance_queryVK_KHR_pipeline_executable_propertiesVK_KHR_pipeline_libraryVK_KHR_present_idVK_KHR_present_waitVK_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_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_swapchain_mutable_formatVK_KHR_swapchainVK_KHR_synchronization2VK_KHR_timeline_semaphoreVK_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_external_memory_capabilitiesVK_NV_external_memory_win32VK_NV_external_memoryVK_NV_fragment_shader_barycentricVK_NV_geometry_shader_passthroughVK_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_render_pass_shader_resolveVK_QCOM_render_pass_store_opsVK_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_maintenance6VK_KHR_maintenance7VK_KHR_maintenance8VK_KHR_map_memory2VK_KHR_pipeline_binaryVK_KHR_shader_bfloat16
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_bias_controlVK_EXT_depth_clamp_controlVK_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_fragment_density_map_offsetVK_EXT_host_image_copyVK_EXT_image_drm_format_modifierVK_EXT_image_sliced_view_of_3dVK_EXT_layer_settingsVK_EXT_legacy_ditheringVK_EXT_legacy_vertex_attributesVK_EXT_map_memory_placedVK_EXT_metal_objectsVK_EXT_multi_drawVK_EXT_opacity_micromapVK_EXT_physical_device_drmVK_EXT_pipeline_library_group_handlesVK_EXT_pipeline_protected_accessVK_EXT_pipeline_robustnessVK_EXT_present_mode_fifo_latest_readyVK_EXT_shader_module_identifierVK_EXT_shader_replicated_compositesVK_EXT_shader_tile_imageVK_EXT_subpass_merge_feedbackVK_EXT_vertex_attribute_robustnessVK_EXT_zero_initialize_device_memory
Platform/IHV Extensions
Android
VK_ANDROID_external_format_resolve
ARM
VK_ARM_pipeline_opacity_micromapVK_ARM_rasterization_order_attachment_accessVK_ARM_render_pass_stripedVK_ARM_scheduling_controlsVK_ARM_shader_core_builtinsVK_ARM_shader_core_properties
AMD
VK_AMD_anti_lagVK_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_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_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_diagnostic_checkpointsVK_NV_device_diagnostics_configVK_NV_device_generated_commands_computeVK_NV_device_generated_commandsVK_NV_displacement_micromapVK_NV_display_stereoVK_NV_extended_sparse_address_spaceVK_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_present_barrierVK_NV_present_meteringVK_NV_raw_access_chainsVK_NV_ray_tracing_invocation_reorderVK_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_filter_cubic_clampVK_QCOM_filter_cubic_weightsVK_QCOM_image_processingVK_QCOM_image_processing2VK_QCOM_multiview_per_view_render_areasVK_QCOM_multiview_per_view_viewportsVK_QCOM_render_pass_transformVK_QCOM_rotated_copy_commandsVK_QCOM_tile_memory_heapVK_QCOM_tile_propertiesVK_QCOM_tile_shadingVK_QCOM_ycbcr_degamma
Samsung
VK_SEC_amigo_profiling
Valve
VK_VALVE_descriptor_set_host_mapping
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_encode_av1VK_KHR_video_encode_h264VK_KHR_video_encode_h265VK_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_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_handle