2011 Khronos Group
imageAtomicCompSwap 3G
imageAtomicCompSwap atomically compares supplied data with that in memory and conditionally stores it to memory

## Declaration

uint `imageAtomicCompSwap` gimage1D image int P uint compare uint data uint `imageAtomicCompSwap` gimage2D image ivec2 P uint compare uint data uint `imageAtomicCompSwap` gimage3D image ivec3 P uint compare uint data uint `imageAtomicCompSwap` gimage2DRect image ivec2 P uint compare uint data uint `imageAtomicCompSwap` gimageCube image ivec3 P uint compare uint data uint `imageAtomicCompSwap` gbufferImage image int P uint compare uint data uint `imageAtomicCompSwap` gimage1DArray image ivec2 P uint compare uint data uint `imageAtomicCompSwap` gimage2DArray image ivec3 P uint compare uint data uint `imageAtomicCompSwap` gimageCubeArray image ivec3 P uint compare uint data uint `imageAtomicCompSwap` gimage2DMS image ivec2 P int sample uint compare uint data uint `imageAtomicCompSwap` gimage2DMSArray image ivec3 P int sample uint compare uint data int `imageAtomicCompSwap` gimage1D image int P int compare int data int `imageAtomicCompSwap` gimage2D image ivec2 P int compare int data int `imageAtomicCompSwap` gimage3D image ivec3 P int compare int data int `imageAtomicCompSwap` gimage2DRect image ivec2 P int compare int data int `imageAtomicCompSwap` gimageCube image ivec3 P int compare int data int `imageAtomicCompSwap` gbufferImage image int P int compare int data int `imageAtomicCompSwap` gimage1DArray image ivec2 P int compare int data int `imageAtomicCompSwap` gimage2DArray image ivec3 P int compare int data int `imageAtomicCompSwap` gimageCubeArray image ivec3 P int compare int data int `imageAtomicCompSwap` gimage2DMS image ivec2 P int sample int compare int data int `imageAtomicCompSwap` gimage2DMSArray image ivec3 P int sample int compare int data

## Parameters

image

  Specify the image unit into which to compare and conditionally store data.

P

  Specify the coordinate at which to compare and conditionally store the data.

sample

  When present, specifies the sample within the image to compare and conditionally store into.

compare

  Specifies the value to compare with the content of the image.

data

  Specifies the value to store in the image if compare is equal to the existing image content.

## Description

`imageAtomicCompSwap` atomically compares the value of compare with that of the texel at coordinate P and sample (for multisampled forms) in the image bound to uint image. If the values are equal, data is stored into the texel, otherwise it is discarded. It returns the original value of the texel regardless of the result of the comparison operation.

## Version Support

#VARTABLECOLS#
#FUNCTABLEHEADER#
imageAtomicCompSwap#newin42#

## See Also

imageLoad, imageStore, imageAtomicAdd, imageAtomicMin, imageAtomicMax, imageAtomicXor, imageAtomicOr, imageAtomicAnd, imageAtomicCompSwap

## Copyright

Copyright 2011-2012 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.