// Copyright 2018-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_shader_atomic_float.txt[]

=== Other Extension Metadata

*Last Modified Date*::
    2020-07-15
*IP Status*::
    No known IP claims.
*Interactions and External Dependencies*::
  - This extension requires
    {spirv}/EXT/SPV_EXT_shader_atomic_float_add.html[`SPV_EXT_shader_atomic_float_add`]
  - This extension provides API support for
    https://github.com/KhronosGroup/GLSL/tree/master/extensions/ext/GLSL_EXT_shader_atomic_float.txt[`GL_EXT_shader_atomic_float`]
*Contributors*::
  - Vikram Kushwaha, NVIDIA
  - Jeff Bolz, NVIDIA

=== Description

This extension allows a shader to contain floating-point atomic operations
on buffer, workgroup, and image memory.
It also advertises the SPIR-V code:AtomicFloat32AddEXT and
code:AtomicFloat64AddEXT capabilities that allows atomic addition on
floating-points numbers.
The supported operations include code:OpAtomicFAddEXT,
code:OpAtomicExchange, code:OpAtomicLoad and code:OpAtomicStore.

include::{generated}/interfaces/VK_EXT_shader_atomic_float.txt[]

=== New SPIR-V Capabilities

  * <<spirvenv-capabilities-table-AtomicFloat32AddEXT,
    code:AtomicFloat32AddEXT>>
  * <<spirvenv-capabilities-table-AtomicFloat64AddEXT,
    code:AtomicFloat64AddEXT>>

=== Version History

  * Revision 1, 2020-07-15 (Vikram Kushwaha)
    - Internal revisions
