Registered Extension Number

274

Revision

1

Extension and Version Dependencies

Contact

Other Extension Metadata

Last Modified Date

2020-08-14

IP Status

No known IP claims.

Interactions and External Dependencies
Contributors
  • Jason Ekstrand, Intel

Description

This extension allows a shader to perform 16-bit floating-point atomic operations on buffer and workgroup memory as well as floating-point atomic minimum and maximum operations on buffer, workgroup, and image memory. It advertises the SPIR-V AtomicFloat16AddEXT capability which allows atomic add operations on 16-bit floating-point numbers and the SPIR-V AtomicFloat16MinMaxEXT, AtomicFloat32MinMaxEXT and AtomicFloat64MinMaxEXT capabilities which allow atomic minimum and maximum operations on floating-point numbers. The supported operations include OpAtomicFAddEXT, OpAtomicFMinEXT and OpAtomicFMaxEXT.

New Structures

New Enum Constants

  • VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME

  • VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION

  • Extending VkStructureType:

    • VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT

Issues

1) Should this extension add support for 16-bit image atomics?

RESOLVED: No. While Vulkan supports creating storage images with VK_FORMAT_R16_SFLOAT and doing load and store on them, the data in the shader has a 32-bit representation. Vulkan currently has no facility for even basic reading or writing such images using 16-bit float values in the shader. Adding such functionality would be required before 16-bit image atomics would make sense and is outside the scope of this extension.

New SPIR-V Capabilities

Version History

  • Revision 1, 2020-08-14 (Jason Ekstrand)

    • Internal revisions

See Also

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 2014-2021 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0