Vulkan 1.4.305 has been published as the newest version of the Vulkan API specification for high performance graphics and compute.
Beyond the usual assortment of maintenance fixes/clarifications throughout, this routine update to the Vulkan API specification brings three new extensions. These new extensions are VK_ARM_pipeline_opacity_micromap, VK_KHR_depth_clamp_zero_one, and VK_KHR_maintenance8.
VK_ARM_pipeline_opacity_micromap was added by Arm engineers as an extension to VK_EXT_opacity_micromap with a new flag for indicating that a pipeline will not be used with an acceleration structure referencing an opacity micromap. In turn this allows for possible pipeline optimizations for those making use of the opacity micromap extension.
VK_KHR_depth_clamp_zero_one was added by a Broadcom engineer and based on VK_EXT_depth_clamp_zero_one for providing defined behavior to fagment depth values defined outside of the conventional 0 to 1 range. VK_EXT_depth_clamp_zero_one can help with portability to match OpenGL behavior to help in porting/emulation.
Lastly is VK_KHR_maintenance8 with a collection of new features worked on by Valve, LunarG, ARM, NVIDIA, Qualcomm, Igalia, Intel, and Nintendo engineers. The minor new features of VK_KHR_maintenance8 include:
– Allow copies between depth/stencil and “matching” color attachments
– Allow dstCache in vkMergePipelineCaches to be implicitly synchronized.
– Require src/dst sync scopes to work when doing queue family ownership transfers
– Support Offset (as an alternative to ConstOffset) image operand in texture sampling and fetch operations
– Use the SPIR-V definition of code:OpSRem and code:OpSMod, making these operations produce well-defined results for negative operands
– Loosen layer restrictions when blitting from 3D images to other image types
– Add space for an additional 64 access flags for use with VkMemoryBarrier2, VkBufferMemoryBarrier2, and VkImageMemoryBarrier2
More details on the Vulkan 1.4.305 changes via this Vulkan-Docs commit.