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 usingVK_WHOLE_SIZE
in thepSizes
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 thelayerCount
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 isVK_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
- vkCmdBindIndexBuffer2KHR
- vkGetDeviceImageSubresourceLayoutKHR
- vkGetImageSubresourceLayout2KHR
- vkGetRenderingAreaGranularityKHR
New Structures
- VkDeviceImageSubresourceInfoKHR
- VkImageSubresource2KHR
- VkRenderingAreaInfoKHR
- VkSubresourceLayout2KHR
- Extending VkBufferViewCreateInfo, VkBufferCreateInfo, VkPhysicalDeviceExternalBufferInfo, VkDescriptorBufferBindingInfoEXT:
- Extending VkComputePipelineCreateInfo, VkGraphicsPipelineCreateInfo, VkRayTracingPipelineCreateInfoNV, VkRayTracingPipelineCreateInfoKHR:
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
- Extending VkPhysicalDeviceProperties2:
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:
- Extending VkPipelineCreateFlagBits2KHR:
VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
If VK_KHR_dynamic_rendering or Vulkan Version 1.3 and VK_KHR_fragment_shading_rate is supported:
- Extending VkPipelineCreateFlagBits2KHR:
VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
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:
- Extending VkBufferUsageFlagBits2KHR:
VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT
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:
- Extending VkBufferUsageFlagBits2KHR:
VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT
VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT
- Extending VkPipelineCreateFlagBits2KHR:
VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
If VK_EXT_pipeline_protected_access 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
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:
- Extending VkPipelineCreateFlagBits2KHR:
VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR
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:
- Extending VkBufferUsageFlagBits2KHR:
VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR
VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR
If VK_KHR_video_encode_queue is supported:
- Extending VkBufferUsageFlagBits2KHR:
VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR
VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR
If VK_NV_device_generated_commands is supported:
- Extending VkPipelineCreateFlagBits2KHR:
VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV
If VK_NV_displacement_micromap is supported:
- Extending VkPipelineCreateFlagBits2KHR:
VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
If VK_NV_ray_tracing is supported:
- Extending VkBufferUsageFlagBits2KHR:
VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV
- Extending VkPipelineCreateFlagBits2KHR:
VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV
If VK_NV_ray_tracing_motion_blur is supported:
- Extending VkPipelineCreateFlagBits2KHR:
VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV
If Vulkan 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
If Vulkan Version 1.2 or VK_KHR_buffer_device_address or VK_EXT_buffer_device_address is supported:
- Extending VkBufferUsageFlagBits2KHR:
VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR
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