Registered Extension Number

471

Revision

1

Ratification Status

Ratified

Extension and Version Dependencies

     Version 1.1
     and
     VK_KHR_dynamic_rendering
or
Version 1.3

API Interactions

  • Interacts with VK_VERSION_1_1

  • Interacts with VK_VERSION_1_2

  • Interacts with VK_VERSION_1_3

  • Interacts with VK_EXT_attachment_feedback_loop_layout

  • Interacts with VK_EXT_buffer_device_address

  • Interacts with VK_EXT_conditional_rendering

  • Interacts with VK_EXT_descriptor_buffer

  • Interacts with VK_EXT_fragment_density_map

  • Interacts with VK_EXT_graphics_pipeline_library

  • Interacts with VK_EXT_opacity_micromap

  • Interacts with VK_EXT_pipeline_creation_cache_control

  • Interacts with VK_EXT_pipeline_protected_access

  • Interacts with VK_EXT_transform_feedback

  • Interacts with VK_KHR_acceleration_structure

  • Interacts with VK_KHR_buffer_device_address

  • Interacts with VK_KHR_device_group

  • Interacts with VK_KHR_dynamic_rendering

  • Interacts with VK_KHR_fragment_shading_rate

  • Interacts with VK_KHR_pipeline_executable_properties

  • Interacts with VK_KHR_pipeline_library

  • Interacts with VK_KHR_ray_tracing_pipeline

  • Interacts with VK_KHR_video_decode_queue

  • Interacts with VK_KHR_video_encode_queue

  • Interacts with VK_NV_device_generated_commands

  • Interacts with VK_NV_displacement_micromap

  • Interacts with VK_NV_ray_tracing

  • Interacts with VK_NV_ray_tracing_motion_blur

Contact

Extension Proposal

Other Extension Metadata

Last Modified Date

2023-05-02

Interactions and External Dependencies
Contributors
  • Stu Smith, AMD

  • Tobias Hector, AMD

  • Shahbaz Youssefi, Google

  • Slawomir Cygan, Intel

  • Lionel Landwerlin, Intel

  • James Fitzpatrick, Imagination Technologies

  • Andrew Garrard, Imagination Technologies

  • Ralph Potter, Samsung

  • Pan Gao, Huawei

  • Jan-Harald Fredriksen, ARM

  • Jon Leech, Khronos

  • Mike Blumenkrantz, Valve

Description

VK_KHR_maintenance5 adds a collection of minor features, none of which would warrant an entire extension of their own.

The new features are as follows:

  • A new VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR format

  • A new VK_FORMAT_A8_UNORM_KHR format

  • A property to indicate that multisample coverage operations are performed after sample counting in EarlyFragmentTests mode

  • Relax VkBufferView creation requirements by allowing subsets of the associated VkBuffer usage using VkBufferUsageFlags2CreateInfoKHR

  • A new entry point vkCmdBindIndexBuffer2KHR, allowing a range of memory to be bound as an index buffer

  • vkGetDeviceProcAddr must return NULL for supported core functions beyond the version requested by the application.

  • A property to indicate that the sample mask test is performed after sample counting in EarlyFragmentTests mode

  • vkCmdBindVertexBuffers2 now supports using VK_WHOLE_SIZE in the pSizes parameter.

  • A default size of 1.0 is used if PointSize is not written

  • Shader modules are deprecated - applications can now pass VkShaderModuleCreateInfo as a chained struct to pipeline creation via VkPipelineShaderStageCreateInfo

  • A function vkGetRenderingAreaGranularityKHR to query the optimal render area for a dynamic rendering instance.

  • A property to indicate that depth/stencil texturing operations with VK_COMPONENT_SWIZZLE_ONE have defined behavior

  • Add vkGetImageSubresourceLayout2KHR and a new function vkGetDeviceImageSubresourceLayoutKHR to allow the application to query the image memory layout without having to create an image object and query it.

  • Allow VK_REMAINING_ARRAY_LAYERS as the layerCount member of VkImageSubresourceLayers

  • Adds stronger guarantees for propagation of VK_ERROR_DEVICE_LOST return values

  • A property to indicate whether PointSize controls the final rasterization of polygons if polygon mode is VK_POLYGON_MODE_POINT

  • Two properties to indicate the non-strict line rasterization algorithm used

  • Two new flags words VkPipelineCreateFlagBits2KHR and VkBufferUsageFlagBits2KHR

  • Physical-device-level functions can now be called with any value in the valid range for a type beyond the defined enumerants, such that applications can avoid checking individual features, extensions, or versions before querying supported properties of a particular enumerant.

  • Clarification that copies between images of any type are allowed, treating 1D images as 2D images with a height of 1.

New Commands

New Structures

New Enums

New Bitmasks

New Enum Constants

  • VK_KHR_MAINTENANCE_5_EXTENSION_NAME

  • VK_KHR_MAINTENANCE_5_SPEC_VERSION

  • Extending VkFormat:

    • VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR

    • VK_FORMAT_A8_UNORM_KHR

  • Extending VkStructureType:

    • VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR

    • VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR

    • VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR

    • VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR

    • VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR

    • VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR

    • VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR

    • VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR

  • Extending VkPipelineCreateFlagBits2KHR:

    • VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT

    • VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT

If VK_EXT_conditional_rendering is supported:

If VK_EXT_descriptor_buffer is supported:

  • Extending VkBufferUsageFlagBits2KHR:

    • VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT

    • VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT

    • VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT

  • Extending VkPipelineCreateFlagBits2KHR:

    • VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT

  • Extending VkPipelineCreateFlagBits2KHR:

    • VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT

    • VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT

If VK_EXT_opacity_micromap is supported:

  • Extending VkPipelineCreateFlagBits2KHR:

    • VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT

    • VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT

If VK_EXT_transform_feedback is supported:

  • Extending VkBufferUsageFlagBits2KHR:

    • VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT

    • VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT

  • Extending VkBufferUsageFlagBits2KHR:

    • VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR

    • VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR

  • Extending VkPipelineCreateFlagBits2KHR:

    • VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR

    • VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR

If VK_KHR_pipeline_library is supported:

If VK_KHR_ray_tracing_pipeline is supported:

  • Extending VkBufferUsageFlagBits2KHR:

    • VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR

  • Extending VkPipelineCreateFlagBits2KHR:

    • VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR

    • VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR

    • VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR

    • VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR

    • VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR

    • VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR

    • VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR

If VK_KHR_video_decode_queue is supported:

If VK_KHR_video_encode_queue is supported:

If VK_NV_displacement_micromap is supported:

If VK_NV_ray_tracing is supported:

If Version 1.1 or VK_KHR_device_group is supported:

  • Extending VkPipelineCreateFlagBits2KHR:

    • VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR

    • VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR

  • Extending VkPipelineCreateFlagBits2KHR:

    • VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR

    • VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR

Issues

None.

Version History

  • Revision 1, 2022-12-12 (Stu Smith)

    • Initial revision

See Also

No cross-references are available

Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Copyright 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0