## Name

imageAtomicMin — atomically compute the minimum of a value with an existing value in memory, store that value and return the original value

## Declaration

`uint imageAtomicMin(` | gimage1D image,
| int P,
| uint data`)`;

`uint imageAtomicMin(` | gimage2D image,
| ivec2 P,
| uint data`)`;

`uint imageAtomicMin(` | gimage3D image,
| ivec3 P,
| uint data`)`;

`uint imageAtomicMin(` | gimage2DRect image,
| ivec2 P,
| uint data`)`;

`uint imageAtomicMin(` | gimageCube image,
| ivec3 P,
| uint data`)`;

`uint imageAtomicMin(` | gbufferImage image,
| int P,
| uint data`)`;

`uint imageAtomicMin(` | gimage1DArray image,
| ivec2 P,
| uint data`)`;

`uint imageAtomicMin(` | gimage2DArray image,
| ivec3 P,
| uint data`)`;

`uint imageAtomicMin(` | gimageCubeArray image,
| ivec3 P,
| uint data`)`;

`uint imageAtomicMin(` | gimage2DMS image,
| ivec2 P,
| int sample,
| uint data`)`;

`uint imageAtomicMin(` | gimage2DMSArray image,
| ivec3 P,
| int sample,
| uint data`)`;

`int imageAtomicMin(` | gimage1D image,
| int P,
| int data`)`;

`int imageAtomicMin(` | gimage2D image,
| ivec2 P,
| int data`)`;

`int imageAtomicMin(` | gimage3D image,
| ivec3 P,
| int data`)`;

`int imageAtomicMin(` | gimage2DRect image,
| ivec2 P,
| int data`)`;

`int imageAtomicMin(` | gimageCube image,
| ivec3 P,
| int data`)`;

`int imageAtomicMin(` | gbufferImage image,
| int P,
| int data`)`;

`int imageAtomicMin(` | gimage1DArray image,
| ivec2 P,
| int data`)`;

`int imageAtomicMin(` | gimage2DArray image,
| ivec3 P,
| int data`)`;

`int imageAtomicMin(` | gimageCubeArray image,
| ivec3 P,
| int data`)`;

`int imageAtomicMin(` | gimage2DMS image,
| ivec2 P,
| int sample,
| int data`)`;

`int imageAtomicMin(` | gimage2DMSArray image,
| ivec3 P,
| int sample,
| int data`)`;

## Parameters

`image`

  Specify the image unit into which to store `data`.

`P`

  Specify the coordinate at which to store the data.

`sample`

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

`data`

  Specifies the data of which to take the minimum with that stored in the image.

## Description

`imageAtomicMin` atomically computes a new value by finding the minimum of the value of `data` and the contents of the texel at coordinate `P` and `sample` in the image bound to uint `image`, stores that value into the image and returns the original value.

## Version Support

| OpenGL Shading Language Version
--- | ---
Function Name | 1.10 | 1.20 | 1.30 | 1.40 | 1.50 | 3.30 | 4.00 | 4.10 | 4.20 | 4.30 | 4.40 | 4.50
imageAtomicMin | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔

## See Also

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

## Copyright

Copyright © 2011-2014 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/.