Khronos releases Vulkan 1.4.351 with six extensions

Khronos has released Vulkan 1.4.351, adding six extensions to the graphics and compute API. The update includes VK_KHR_opacity_micromap, VK_EXT_shader_split_barrier, VK_AMD_gpa_interface, VK_QCOM_elapsed_timer_query, VK_QCOM_image_processing3 and VK_QCOM_shader_multiple_wait_queues.
The main graphics-related change is VK_KHR_opacity_micromap. This extension is aimed at Vulkan ray tracing workloads that use transparent geometry . Instead of adding more geometry detail or running an any-hit shader during ray traversal, an application can attach an opacity micromap to geometry when building an acceleration structure.
Opacity micromaps store opacity data in a compressed format. Vulkan implementations can use this data to mark parts of triangles as opaque, transparent or a possible hit. Khronos says the format subdivides triangles into subtriangles, with each assigned either two or four opacity values.
Khronos Vulkan 1.4.351 new exentsions
- VK_KHR_opacity_micromap – The VK_KHR_opacity_micromap extension was worked on by many engineers from a number of different organizations, including Valve’s Hans-Kristian Arntzen and all the major hardware vendors. This extension is for improving Vulkan ray-traced scenes in adding the ability to add an opacity micromap to geometry when building an acceleration structure. The extension text explains
- VK_EXT_shader_split_barrier – Qualcomm, Intel, and NVIDIA engineers devised VK_EXT_shader_split_barrier as a new extension for splitting the OpControlBarrier by two new barrier operations with SPIR-V: OpControlBarrierArriveEXT and OpControlBarrierWaitEXT. This functionality can be used to allow apps to synchronize their subgroup execution flow within a workgroup without making all subgroups wait at the arrival condition before proceeding to execute their work independently.
- VK_AMD_gpa_interface – This AMD vendor extension adds the GPU Performance API “GPA” interface for GPU global performance counters, streaming performance monitors, and SQTT thread traces on AMD Radeon GPUs.
- VK_QCOM_elapsed_timer_query – This new Qualcomm vendor extension provides functionality similar to OpenGL’ ARB_timery_query for being able to have a new query type to write out the elapsed time between a set of commands.
- VK_QCOM_image_processing3 – For a new SPIR-V built-in function to support pre-defined image gather operations used in various image processing algorithms such as for super resolution upscaling and contrast-adaptive sharpening.
- VK_QCOM_shader_multiple_wait_queues – The third and final new Qualcomm extension this round is VK_QCOM_shader_multiple_wait_queues as a new loop control hint for the SPIR-V execution environment. This hint can be used for the compiler that it should use multiple wait queues to optimize a loop.
VK_EXT_shader_split_barrier is another cross-vendor extension. It splits OpControlBarrier into OpControlBarrierArriveEXT and OpControlBarrierWaitEXT. This allows applications to synchronize subgroup execution inside a workgroup without forcing all subgroups to wait before continuing independent work.
The update also adds one AMD extension and three Qualcomm extensions. VK_AMD_gpa_interface exposes AMD’s GPU Performance API interface for global performance counters, streaming performance monitors and SQTT thread traces on Radeon GPUs. The Qualcomm extensions cover elapsed timer queries, image processing operations for tasks such as upscaling and sharpening, and a compiler hint for using multiple wait queues in loops.
NVIDIA has already listed VK_KHR_opacity_micromap and VK_EXT_shader_split_barrier in its Vulkan developer beta driver notes for Windows 596.50 and Linux 595.44.07.
Source: Vulkan Docs (Github) , Phoronix