imageStore 是原子的吗?

Is imageStore atomic?

在OpenGL中使用imageStore时,是原子的吗?

或者换句话说,假设我有一个计算着色器调用将“82”写入一个位置,另一个调用将“42”写入同一位置。

当我第三次调用从同一位置读取时:我能保证得到初始值还是 42 或 82?或者我可以得到一个未定义的值,因为它们可以同时写入吗?(我不知道我会得到哪个)。

如果他们都写相同的值而不是不同的值,上述问题的答案会改变吗?

规范对此有点不清楚。

该规范详细讨论了调用顺序以及存储操作的可见性。但它绝不会说明如果您有两个调用竞相写入同一内​​存位置会发生什么。它并没有说该值将是未定义的,或者它将是几种可能性之一。

规范在这方面似乎有漏洞。因此,我不会做任何假设此类写入在这方面确实 "atomic" 的事情。