IMAGEATOMICMAX(3G)

πŸ“¦
version 1.0~svn33624 Β· 4 versions
, in ubuntu jammy, ubuntu noble

πŸ’– 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 storing data into. 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 Β© 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 Β© 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