VK_KHR_compute_shader_derivatives

Other Extension Metadata

Last Modified Date

2024-06-26

IP Status

No known IP claims.

Interactions and External Dependencies
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

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)