VK_KHR_shader_fma(3)

# VK_KHR_shader_fma(3) Manual Page

## Name

VK_KHR_shader_fma - device extension

## Registered Extension Number

580

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

## Contact

- Graeme Leese [GitHub]gnl21

## Extension Proposal

VK_KHR_shader_fma

## Other Extension Metadata

Last Modified Date

  2025-06-10

Contributors

  - Graeme Leese, Broadcom

## Description

This extension allows applications to use the SPV_KHR_fma extension to obtain correctly-rounded results for fused-multiply add (fma) operations.

Fused-multiply add is a building block of many high-precision numerical functions. It provides better accuracy than separate operations, because of the removal of the intermediate rounding step, and often costs less than the pair of separate operations.

Vulkan currently exposes an fma primitive that can give the reduced cost, but it is not guaranteed to be a fused operation, so the accuracy cannot be relied on. For applications which require the high accuracy, therefore, the operation must be emulated or the algorithm changed so as not to require fma. This is often vastly more costly, even though fma is supported in much of the underlying hardware.

## New Structures

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceShaderFmaFeaturesKHR

## New Enum Constants

- `VK_KHR_SHADER_FMA_EXTENSION_NAME`

- `VK_KHR_SHADER_FMA_SPEC_VERSION`

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR

## Version History

- Revision 1, 2025-06-10 (Graeme Leese)

  - Initial draft

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