VK_KHR_compute_shader_derivatives
Other Extension Metadata
Last Modified Date
2024-06-26
IP Status
No known IP claims.
Interactions and External Dependencies
- This extension requires
SPV_KHR_compute_shader_derivatives
- This extension provides API support for
GL_KHR_compute_shader_derivatives
Contributors
- Jean-Noe Morissette, Epic Games
- Daniel Koch, NVIDIA
- Pat Brown, NVIDIA
- Stu Smith, AMD
- Jan-Harald Fredriksen, Arm
- Tobias Hector, AMD
- Ralph Potter, Samsung
- Pan Gao, Huawei
- Samuel (Sheng-Wen) Huang, MediaTek
- Graeme Leese, Broadcom
- Hans-Kristian Arntzen, Valve
- Matthew Netsh, Qualcomm
Description
This extension adds Vulkan support for the
SPV_KHR_compute_shader_derivatives
SPIR-V extension.
The SPIR-V extension provides two new execution modes, both of which allow
execution models with defined workgroups to use built-ins that evaluate
derivatives explicitly or implicitly.
Derivatives will be computed via differencing over a 2x2 group of shader
invocations.
The DerivativeGroupQuadsKHR
execution mode assembles shader invocations
into 2x2 groups, where each group has x and y coordinates of the local
invocation ID of the form (2m+{0,1}, 2n+{0,1}).
The DerivativeGroupLinearKHR
execution mode assembles shader
invocations into 2x2 groups, where each group has local invocation index
values of the form 4m+{0,1,2,3}.
The new execution modes are supported in compute shaders and optionally (see meshAndTaskShaderDerivatives) in mesh and task shaders.
New Structures
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
- Extending VkPhysicalDeviceProperties2:
New Enum Constants
VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION
- Extending VkStructureType:
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR
New SPIR-V Capability
Examples
None.
Version History
- Revision 1, 2023-02-27 (Jean-Noe Morissette)
- Initial draft
- Add properties and clarify mesh and task support (Daniel Koch)