# VkPhysicalDeviceVulkan14Features(3) Manual Page

## Name

VkPhysicalDeviceVulkan14Features - Structure describing the Vulkan 1.4 features that can be supported by an implementation

Loading… please wait.

## C Specification

The `VkPhysicalDeviceVulkan14Features` structure is defined as:

    // Provided by VK_VERSION_1_4
    typedef struct VkPhysicalDeviceVulkan14Features {
        VkStructureType    sType;
        void*              pNext;
        VkBool32           globalPriorityQuery;
        VkBool32           shaderSubgroupRotate;
        VkBool32           shaderSubgroupRotateClustered;
        VkBool32           shaderFloatControls2;
        VkBool32           shaderExpectAssume;
        VkBool32           rectangularLines;
        VkBool32           bresenhamLines;
        VkBool32           smoothLines;
        VkBool32           stippledRectangularLines;
        VkBool32           stippledBresenhamLines;
        VkBool32           stippledSmoothLines;
        VkBool32           vertexAttributeInstanceRateDivisor;
        VkBool32           vertexAttributeInstanceRateZeroDivisor;
        VkBool32           indexTypeUint8;
        VkBool32           dynamicRenderingLocalRead;
        VkBool32           maintenance5;
        VkBool32           maintenance6;
        VkBool32           pipelineProtectedAccess;
        VkBool32           pipelineRobustness;
        VkBool32           hostImageCopy;
        VkBool32           pushDescriptor;
    } VkPhysicalDeviceVulkan14Features;

## Members

This structure describes the following features:

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

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

## Description

- `globalPriorityQuery` indicates whether the implementation supports the ability to query global queue priorities.

- `shaderSubgroupRotate` specifies whether shader modules can declare the `GroupNonUniformRotateKHR` capability.

- `shaderSubgroupRotateClustered` specifies whether shader modules can use the `ClusterSize` operand to `OpGroupNonUniformRotateKHR`.

- `shaderFloatControls2` specifies whether shader modules can declare the `FloatControls2` capability.

- `shaderExpectAssume` specifies whether shader modules can declare the `ExpectAssumeKHR` capability.

- `rectangularLines` indicates whether the implementation supports rectangular line rasterization.

- `bresenhamLines` indicates whether the implementation supports Bresenham-style line rasterization.

- `smoothLines` indicates whether the implementation supports smooth line rasterization.

- `stippledRectangularLines` indicates whether the implementation supports stippled line rasterization with `VK_LINE_RASTERIZATION_MODE_RECTANGULAR` lines.

- `stippledBresenhamLines` indicates whether the implementation supports stippled line rasterization with `VK_LINE_RASTERIZATION_MODE_BRESENHAM` lines.

- `stippledSmoothLines` indicates whether the implementation supports stippled line rasterization with `VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH` lines.

- `vertexAttributeInstanceRateDivisor` specifies whether vertex attribute fetching may be repeated in the case of instanced rendering.

- `vertexAttributeInstanceRateZeroDivisor` specifies whether a zero value for VkVertexInputBindingDivisorDescriptionEXT::`divisor` is supported.

- `indexTypeUint8` indicates that `VK_INDEX_TYPE_UINT8` can be used with vkCmdBindIndexBuffer2 and vkCmdBindIndexBuffer.

- `dynamicRenderingLocalRead` specifies that the implementation supports local reads inside dynamic render pass instances using the vkCmdBeginRendering command.

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

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

  - VK_NULL_HANDLE can be used when binding an index buffer

  - VkBindMemoryStatus can be included in the `pNext` chain of the VkBindBufferMemoryInfo and VkBindImageMemoryInfo structures, enabling applications to retrieve VkResult values for individual memory binding operations.

  - VkPhysicalDeviceMaintenance6Properties::`blockTexelViewCompatibleMultipleLayers` property to indicate that the implementation supports creating image views with `VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT` where the `layerCount` member of `subresourceRange` is greater than `1`.

  - VkPhysicalDeviceMaintenance6Properties::`maxCombinedImageSamplerDescriptorCount` property which indicates the maximum descriptor size required for any format that requires a sampler Y′CBCR conversion supported by the implementation.

  - A VkPhysicalDeviceMaintenance6Properties::`fragmentShadingRateClampCombinerInputs` property which indicates whether the implementation clamps the inputs to fragment shading rate combiner operations.

- `pipelineProtectedAccess` indicates whether the implementation supports specifying protected access on individual pipelines.

- `pipelineRobustness` indicates that robustness can be requested on a per-pipeline-stage granularity.

- `hostImageCopy` indicates that the implementation supports copying from host memory to images using the vkCopyMemoryToImage command, copying from images to host memory using the vkCopyImageToMemory command, and copying between images using the vkCopyImageToImage command.

- `pushDescriptor` indicates that the implementation supports push descriptors.

If the `VkPhysicalDeviceVulkan14Features` 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 `VkPhysicalDeviceVulkan14Features`, 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-VkPhysicalDeviceVulkan14Features-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES`

## See Also

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-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0