Class VK14


public class VK14 extends VK13
The core Vulkan 1.4 functionality.

Vulkan Version 1.4 promoted a number of key extensions into the core API:

All differences in behavior between these extensions and the corresponding Vulkan 1.4 functionality are summarized below.

Differences Relative to VK_KHR_dynamic_rendering_local_read

If the VK_KHR_dynamic_rendering_local_read extension is not supported, Vulkan 1.4 implementations must support local read only for storage resources and single sampled color attachments.

Support for reading depth/stencil attachments and multi-sampled attachments are respectively gated behind the new boolean dynamicRenderingLocalReadDepthStencilAttachments and dynamicRenderingLocalReadMultisampledAttachments properties.

If dynamicRenderingLocalReadDepthStencilAttachments is FALSE, implementations do not support depth/stencil attachment access within dynamic rendering.

If dynamicRenderingLocalReadMultisampledAttachments is FALSE, implementations do not support multisampled attachment access within dynamic rendering.

If both properties are TRUE, the full functionality of the extension is supported.

Differences Relative to VK_EXT_host_image_copy

If the VK_EXT_host_image_copy extension is not supported, support for it is optional in Vulkan 1.4.

An implementation that has a QUEUE_GRAPHICS_BIT queue must support either:

Differences Relative to VK_KHR_push_descriptor

VK_KHR_push_descriptor did not include a feature bit, so a new feature bit has been added to VkPhysicalDeviceVulkan14Features to gate its functionality: pushDescriptor. Enabling this new feature has the same effect as enabling the extension.

Differences Relative to VK_EXT_pipeline_protected_access

VK_EXT_pipeline_protected_access is only useful when the protectedMemory feature is supported. As protectedMemory is optional in core Vulkan, pipelineProtectedAccess is only required when protectedMemory is supported.

Differences Relative to VK_KHR_line_rasterization

The bresenhamLines feature is required, rather than just any one of the line style features.

Differences Relative to VK_KHR_shader_subgroup_rotate

The shaderSubgroupRotateClustered feature is required in addition to shaderSubgroupRotate.

Additional Vulkan 1.4 Feature Support

In addition to the promoted extensions described above, Vulkan 1.4 added required support for:

  • All queues supporting QUEUE_GRAPHICS_BIT or QUEUE_COMPUTE_BIT must also advertise QUEUE_TRANSFER_BIT.
  • Clustered subgroup operations must be advertised in Vulkan 1.4 via setting both SUBGROUP_FEATURE_CLUSTERED_BIT and SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT (as an interaction with the promoted VK_KHR_shader_subgroup_rotate functionality) in supportedOperations.
  • The following features that were optional in earlier versions:
    • fullDrawIndexUint32
    • imageCubeArray
    • independentBlend
    • sampleRateShading
    • drawIndirectFirstInstance
    • depthClamp
    • depthBiasClamp
    • samplerAnisotropy
    • fragmentStoresAndAtomics
    • shaderStorageImageExtendedFormats
    • shaderUniformBufferArrayDynamicIndexing
    • shaderSampledImageArrayDynamicIndexing
    • shaderStorageBufferArrayDynamicIndexing
    • shaderStorageImageArrayDynamicIndexing
    • shaderImageGatherExtended
    • shaderInt16
    • largePoints
    • samplerYcbcrConversion
    • storageBuffer16BitAccess
    • variablePointers
    • variablePointersStorageBuffer
    • samplerMirrorClampToEdge
    • scalarBlockLayout
    • shaderUniformTexelBufferArrayDynamicIndexing
    • shaderStorageTexelBufferArrayDynamicIndexing
    • shaderInt8
    • storageBuffer8BitAccess