VK_KHR_compute_shader_derivatives(3)

# VK_KHR_compute_shader_derivatives(3) Manual Page

## Name

VK_KHR_compute_shader_derivatives - device extension

## Registered Extension Number

512

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_get_physical_device_properties2
or
Vulkan Version 1.1

## SPIR-V Dependencies

- SPV_KHR_compute_shader_derivatives

## Contact

- Jean-Noe Morissette [GitHub]MagicPoncho

## Extension Proposal

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 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 Structures

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR

- Extending VkPhysicalDeviceProperties2:

  - VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR

## 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

- `ComputeDerivativeGroupQuadsKHR`

- `ComputeDerivativeGroupLinearKHR`

## Examples

None.

## Version History

- Revision 1, 2023-02-27 (Jean-Noe Morissette)

  - Initial draft

  - Add properties and clarify mesh and task support (Daniel Koch)

## See Also

No cross-references are available

## 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.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0