Structures
VkPhysicalDeviceVulkan14Features
Structure describing the Vulkan 1.4 features that can be supported by an implementation
The VkPhysicalDeviceVulkan14Features
structure is defined as:
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;
This structure describes the following features:
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.globalPriorityQuery
indicates whether the implementation supports the ability to query global queue priorities.shaderSubgroupRotate
specifies whether shader modules can declare theGroupNonUniformRotateKHR
capability.shaderSubgroupRotateClustered
specifies whether shader modules can use theClusterSize
operand toOpGroupNonUniformRotateKHR
.shaderFloatControls2
specifies whether shader modules can declare theFloatControls2
capability.-
shaderExpectAssume
specifies whether shader modules can declare theExpectAssumeKHR
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 withVK_LINE_RASTERIZATION_MODE_RECTANGULAR
lines.stippledBresenhamLines
indicates whether the implementation supports stippled line rasterization withVK_LINE_RASTERIZATION_MODE_BRESENHAM
lines.stippledSmoothLines
indicates whether the implementation supports stippled line rasterization withVK_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 thatVK_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 associatedVkBuffer
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 thepSizes
parameter. - If
PointSize
is not written, a default value of1.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 thelayerCount
member of VkImageSubresourceLayers.- 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 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
.
- The ability to expose support for the optional format
-
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 withVK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT
where thelayerCount
member ofsubresourceRange
is greater than1
. - 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