Contact
- 
Jean-Noe Morissette [GitHub]MagicPoncho 
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 Netsch, 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 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
 
- 
Version History
- 
Revision 1, 2023-02-27 (Jean-Noe Morissette) - 
Initial draft 
- 
Add properties and clarify mesh and task support (Daniel Koch) 
 
- 
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.