VK_KHR_maintenance5

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 command 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

If VK_KHR_dynamic_rendering or Vulkan Version 1.3 and VK_EXT_fragment_density_map is supported:

If VK_KHR_dynamic_rendering or Vulkan Version 1.3 and VK_KHR_fragment_shading_rate is supported:

If VK_EXT_attachment_feedback_loop_layout is supported:

  • 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

If VK_EXT_graphics_pipeline_library is supported:

  • 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:

If VK_EXT_pipeline_protected_access is supported:

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

If VK_KHR_acceleration_structure is supported:

  • Extending VkBufferUsageFlagBits2KHR:
    • VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
    • VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR

If VK_KHR_pipeline_executable_properties is supported:

  • 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_device_generated_commands is supported:

If VK_NV_displacement_micromap is supported:

If VK_NV_ray_tracing is supported:

If VK_NV_ray_tracing_motion_blur is supported:

If Vulkan Version 1.1 or VK_KHR_device_group is supported:

If Vulkan Version 1.2 or VK_KHR_buffer_device_address or VK_EXT_buffer_device_address is supported:

If Vulkan Version 1.3 or VK_EXT_pipeline_creation_cache_control is supported:

  • 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