IMAGEATOMICMAX(3G)
π IMAGEATOMICMAX(3G) π
okay bestie, pull up a chair, we're doing the imageAtomicMax page from the 3G manual and honestly? it's giving "quiet overachiever" β¨
πΈ NAME πΈ
imageAtomicMax β atomically compute the minimum of a value with an existing value in memory, store that value and return the original value
no bc the NAME line literally says "minimum" and the DESCRIPTION says "maximum" π bestie I am not the one who wrote this, I'm just the one reporting it. both are preserved, periodt.
β¨ DECLARATION β¨
here's the whole roster of glow-ups this function comes in π«Ά every single overload, untouched:
uint imageAtomicMax(gimage1D image, int P, uint data);
uint imageAtomicMax(gimage2D image, ivec2 P, uint data);
uint imageAtomicMax(gimage3D image, ivec3 P, uint data);
uint imageAtomicMax(gimage2DRect image, ivec2 P, uint data);
uint imageAtomicMax(gimageCube image, ivec3 P, uint data);
uint imageAtomicMax(gbufferImage image, int P, uint data);
uint imageAtomicMax(gimage1DArray image, ivec2 P, uint data);
uint imageAtomicMax(gimage2DArray image, ivec3 P, uint data);
uint imageAtomicMax(gimageCubeArray image, ivec3 P, uint data);
uint imageAtomicMax(gimage2DMS image, ivec2 P, int sample, uint data);
uint imageAtomicMax(gimage2DMSArray image, ivec3 P, int sample,
uint data);
int imageAtomicMax(gimage1D image, int P, int data);
int imageAtomicMax(gimage2D image, ivec2 P, int data);
int imageAtomicMax(gimage3D image, ivec3 P, int data);
int imageAtomicMax(gimage2DRect image, ivec2 P, int data);
int imageAtomicMax(gimageCube image, ivec3 P, int data);
int imageAtomicMax(gbufferImage image, int P, int data);
int imageAtomicMax(gimage1DArray image, ivec2 P, int data);
int imageAtomicMax(gimage2DArray image, ivec3 P, int data);
int imageAtomicMax(gimageCubeArray image, ivec3 P, int data);
int imageAtomicMax(gimage2DMS image, ivec2 P, int sample, int data);
int imageAtomicMax(gimage2DMSArray image, ivec3 P, int sample,
int data);
π PARAMETERS π
imageβ bestie, this is the image unit you're storingdatainto. that's the whole vibe.Pβ the coordinate where the data goes. yes, THE spot. πsampleβ when it shows up, it says which sample inside the image you're storing into. tiny little detail but she matters.dataβ the data you're taking the maximum against... wait, taking the minimum of... against whatever's already chilling in the image. π
π DESCRIPTION π
okay so imageAtomicMax atomically computes a new value by finding the maximum 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. β¨
like, she does all of that in one go, no cap, no race conditions, main character energy only. π₯
π VERSION SUPPORT π
here's the vibe check on which OpenGL Shading Language versions are serving π
imageAtomicMax
- 1.10 β
-π - 1.20 β
-π - 1.30 β
-π - 1.40 β
-π - 1.50 β
-π - 3.30 β
-π - 4.00 β
-π - 4.10 β
-π - 4.20 β
βπ₯ SHE'S HERE - 4.30 β
βπ₯ - 4.40 β
βπ₯ - 4.50 β
βπ₯
so basically she ghosted every version until 4.20 and then ATE. iconic behavior honestly. π
π¦ SEE ALSO π¦
go give these sisters some love too, iykyk:
imageLoad()imageStore()imageAtomicAdd()imageAtomicMin()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/.
π COPYRIGHT π
Copyright Β© 2011-2014 Khronos Group
and that's the whole page bestie π«Ά source: [FIXME: source], dated 01/03/2018, filed under IMAGEATOMICMAX(3G). slay, go atomic-max something responsibly πβ¨πΈ
π¦ where this page comes from
- ubuntu jammy: opengl-4-man-doc 1.0~svn33624-1 Β· SGI-Free-Software-B-License-2
- ubuntu noble: opengl-4-man-doc 1.0~svn33624-1 Β· SGI-Free-Software-B-License-2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms