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:
-
sTypeis a VkStructureType value identifying this structure. -
pNextisNULLor a pointer to a structure extending this structure.
Description
-
globalPriorityQueryindicates whether the implementation supports the ability to query global queue priorities. -
shaderSubgroupRotatespecifies whether shader modules can declare theGroupNonUniformRotateKHRcapability. -
shaderSubgroupRotateClusteredspecifies whether shader modules can use theClusterSizeoperand toOpGroupNonUniformRotateKHR. -
shaderFloatControls2specifies whether shader modules can declare theFloatControls2capability. -
shaderExpectAssumespecifies whether shader modules can declare theExpectAssumeKHRcapability. -
rectangularLinesindicates whether the implementation supports rectangular line rasterization. -
bresenhamLinesindicates whether the implementation supports Bresenham-style line rasterization. -
smoothLinesindicates whether the implementation supports smooth line rasterization. -
stippledRectangularLinesindicates whether the implementation supports stippled line rasterization withVK_LINE_RASTERIZATION_MODE_RECTANGULARlines. -
stippledBresenhamLinesindicates whether the implementation supports stippled line rasterization withVK_LINE_RASTERIZATION_MODE_BRESENHAMlines. -
stippledSmoothLinesindicates whether the implementation supports stippled line rasterization withVK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTHlines. -
vertexAttributeInstanceRateDivisorspecifies whether vertex attribute fetching may be repeated in the case of instanced rendering. -
vertexAttributeInstanceRateZeroDivisorspecifies whether a zero value for VkVertexInputBindingDivisorDescriptionEXT::divisoris supported. -
indexTypeUint8indicates thatVK_INDEX_TYPE_UINT8can be used with vkCmdBindIndexBuffer2 and vkCmdBindIndexBuffer. -
dynamicRenderingLocalReadspecifies that the implementation supports local reads inside dynamic render pass instances using the vkCmdBeginRendering command. -
maintenance5indicates 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
VkBufferViewwith a subset of the associatedVkBufferusage using VkBufferUsageFlags2CreateInfo. -
A new function vkCmdBindIndexBuffer2, allowing a range of memory to be bound as an index buffer.
-
vkGetDeviceProcAddr will return
NULLfor function pointers of core functions for versions higher than the version requested by the application. -
vkCmdBindVertexBuffers2 supports using
VK_WHOLE_SIZEin thepSizesparameter. -
If
PointSizeis not written, a default value of1.0is 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_ONEhave defined behavior. -
vkGetDeviceImageSubresourceLayout allows an application to perform a vkGetImageSubresourceLayout query without having to create an image.
-
VK_REMAINING_ARRAY_LAYERSas thelayerCountmember of VkImageSubresourceLayers. -
A property to indicate whether
PointSizecontrols 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.
-
-
maintenance6indicates that the implementation supports the following:-
VK_NULL_HANDLE can be used when binding an index buffer
-
VkBindMemoryStatus can be included in the
pNextchain of the VkBindBufferMemoryInfo and VkBindImageMemoryInfo structures, enabling applications to retrieve VkResult values for individual memory binding operations. -
VkPhysicalDeviceMaintenance6Properties::
blockTexelViewCompatibleMultipleLayersproperty to indicate that the implementation supports creating image views withVK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BITwhere thelayerCountmember ofsubresourceRangeis greater than1. -
VkPhysicalDeviceMaintenance6Properties::
maxCombinedImageSamplerDescriptorCountproperty which indicates the maximum descriptor size required for any format that requires a sampler Y′CBCR conversion supported by the implementation. -
A VkPhysicalDeviceMaintenance6Properties::
fragmentShadingRateClampCombinerInputsproperty which indicates whether the implementation clamps the inputs to fragment shading rate combiner operations.
-
-
pipelineProtectedAccessindicates whether the implementation supports specifying protected access on individual pipelines. -
pipelineRobustnessindicates that robustness can be requested on a per-pipeline-stage granularity. -
hostImageCopyindicates 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. -
pushDescriptorindicates 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.
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.