// Copyright 2014-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_shader_atomic_int64.adoc[]

=== Other Extension Metadata

*Last Modified Date*::
    2018-07-05
*Interactions and External Dependencies*::
  - This extension provides API support for
    {GLregistry}/ARB/ARB_gpu_shader_int64.txt[`GL_ARB_gpu_shader_int64`] and
    {GLSLregistry}/ext/GL_EXT_shader_atomic_int64.txt[`GL_EXT_shader_atomic_int64`]
*Contributors*::
  - Aaron Hagan, AMD
  - Daniel Rakos, AMD
  - Jeff Bolz, NVIDIA
  - Neil Henning, Codeplay

=== Description

This extension advertises the SPIR-V *Int64Atomics* capability for Vulkan,
which allows a shader to contain 64-bit atomic operations on signed and
unsigned integers.
The supported operations include OpAtomicMin, OpAtomicMax, OpAtomicAnd,
OpAtomicOr, OpAtomicXor, OpAtomicAdd, OpAtomicExchange, and
OpAtomicCompareExchange.

=== Promotion to Vulkan 1.2

All functionality in this extension is included in core Vulkan 1.2, with the
KHR suffix omitted.
However, if Vulkan 1.2 is supported and this extension is not, the
code:shaderBufferInt64Atomics capability is optional.
The original type, enum and command names are still available as aliases of
the core functionality.

include::{generated}/interfaces/VK_KHR_shader_atomic_int64.adoc[]

=== New SPIR-V Capabilities

  * <<spirvenv-capabilities-table-Int64Atomics, code:Int64Atomics>>

=== Version History

  * Revision 1, 2018-07-05 (Aaron Hagan)
  ** Internal revisions
