Structures

VkPhysicalDeviceMaintenance5Features

Structure describing whether the implementation supports maintenance5 functionality

The VkPhysicalDeviceMaintenance5Features structure is defined as:

typedef struct VkPhysicalDeviceMaintenance5Features {
    VkStructureType sType;
    void* pNext;
    VkBool32 maintenance5;
} VkPhysicalDeviceMaintenance5Features;

or the equivalent

typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR;

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