VkPhysicalDeviceMaintenance5Features(3)

# VkPhysicalDeviceMaintenance5Features(3) Manual Page

## Name

VkPhysicalDeviceMaintenance5Features - Structure describing whether the implementation supports maintenance5 functionality

## C Specification

The `VkPhysicalDeviceMaintenance5Features` structure is defined as:

    // Provided by VK_VERSION_1_4
    typedef struct VkPhysicalDeviceMaintenance5Features {
        VkStructureType    sType;
        void*              pNext;
        VkBool32           maintenance5;
    } VkPhysicalDeviceMaintenance5Features;

    // Provided by VK_KHR_maintenance5
    // Equivalent to VkPhysicalDeviceMaintenance5Features
    typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR;

## Members

This structure describes the following feature:

- `sType` is a VkStructureType value identifying this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure.

## Description

- `maintenance5` indicates that the implementation supports the following:

  - The ability to expose support for the optional format VK_FORMAT_A1B5G5R5_UNORM_PACK16.

  - The ability to expose support for the optional format VK_FORMAT_A8_UNORM.

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

  - Creating a `VkBufferView` with a subset of the associated `VkBuffer` usage using VkBufferUsageFlags2CreateInfo.

  - A new function vkCmdBindIndexBuffer2, allowing a range of memory to be bound as an index buffer.

  - vkGetDeviceProcAddr will return `NULL` for function pointers of core functions for versions higher than the version requested by the application.

  - vkCmdBindVertexBuffers2 supports using VK_WHOLE_SIZE in the `pSizes` parameter.

  - If `PointSize` is not written, a default value of `1.0` is used for the size of points.

  - VkShaderModuleCreateInfo can be added as a chained structure to pipeline creation via VkPipelineShaderStageCreateInfo, rather than having to create a shader module.

  - A function vkGetRenderingAreaGranularity 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.

  - vkGetDeviceImageSubresourceLayout allows an application to perform a vkGetImageSubresourceLayout query without having to create an image.

  - VK_REMAINING_ARRAY_LAYERS as the `layerCount` member of VkImageSubresourceLayers.

  - 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 VkPipelineCreateFlagBits2 and VkBufferUsageFlagBits2.

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

  - Copies between images of any type are allowed, with 1D images treated as 2D images with a height of `1`.

If the `VkPhysicalDeviceMaintenance5Features` structure is included in the `pNext` chain of the VkPhysicalDeviceFeatures2 structure passed to vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. If the application wishes to use a VkDevice with any features described by `VkPhysicalDeviceMaintenance5Features`, it must add an instance of the structure, with the desired feature members set to VK_TRUE, to the `pNext` chain of VkDeviceCreateInfo when creating the VkDevice.

Valid Usage (Implicit)

- VUID-VkPhysicalDeviceMaintenance5Features-sType-sType
  `sType` must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES

Structure Chaining

Extends the structures

  - VkDeviceCreateInfo

  - VkPhysicalDeviceFeatures2

## See Also

VK_KHR_maintenance5, VK_VERSION_1_4, VkBool32, VkStructureType

## Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0