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

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

=== Other Extension Metadata

*Last Modified Date*::
    2020-07-14
*IP Status*::
    No known IP claims.
*Contributors*::
  - Matthaeus Chajdas, AMD
  - Graham Wihlidal, Epic Games
  - Tobias Hector, AMD
  - Jeff Bolz, Nvidia
  - Jason Ekstrand, Intel
*Interactions and External Dependencies*::
  - This extension requires the
    {spirv}/EXT/SPV_EXT_shader_image_int64.html[`SPV_EXT_shader_image_int64`]
    SPIR-V extension.
  - This extension requires the
    https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_shader_image_int64.txt[`GLSL_EXT_shader_image_int64`]
    extension for GLSL source languages.

=== Description

This extension extends existing 64-bit integer atomic support to enable
these operations on images as well.

When working with large 2- or 3-dimensional data sets (e.g. rasterization or
screen-space effects), image accesses are generally more efficient than
equivalent buffer accesses.
This extension allows applications relying on 64-bit integer atomics in this
manner to quickly improve performance with only relatively minor code
changes.

64-bit integer atomic support is guaranteed for optimally tiled images with
the ename:VK_FORMAT_R64_UINT and ename:VK_FORMAT_R64_SINT formats.

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

=== Version History

 * Revision 1, 2020-07-14 (Tobias Hector)
   - Initial draft
