e is read and the time the new value is written.
        </p>
        <p>
            Atomic memory functions are supported only for a limited set of variables.  A shader will fail to compile
            if the value passed to the mem argument of  an atomic memory function does not correspond to a buffer or
            shared variable.  It is acceptable to pass an element of an array or a single component of a vector to the
            mem argument of an atomic memory function, as long as the underlying arr