imageStore 是原子的吗?
Is imageStore atomic?
在OpenGL中使用imageStore时,是原子的吗?
或者换句话说,假设我有一个计算着色器调用将“82”写入一个位置,另一个调用将“42”写入同一位置。
当我第三次调用从同一位置读取时:我能保证得到初始值还是 42 或 82?或者我可以得到一个未定义的值,因为它们可以同时写入吗?(我不知道我会得到哪个)。
如果他们都写相同的值而不是不同的值,上述问题的答案会改变吗?
规范对此有点不清楚。
该规范详细讨论了调用顺序以及存储操作的可见性。但它绝不会说明如果您有两个调用竞相写入同一内存位置会发生什么。它并没有说该值将是未定义的,或者它将是几种可能性之一。
规范在这方面似乎有漏洞。因此,我不会做任何假设此类写入在这方面确实 "atomic" 的事情。
在OpenGL中使用imageStore时,是原子的吗?
或者换句话说,假设我有一个计算着色器调用将“82”写入一个位置,另一个调用将“42”写入同一位置。
当我第三次调用从同一位置读取时:我能保证得到初始值还是 42 或 82?或者我可以得到一个未定义的值,因为它们可以同时写入吗?(我不知道我会得到哪个)。
如果他们都写相同的值而不是不同的值,上述问题的答案会改变吗?
规范对此有点不清楚。
该规范详细讨论了调用顺序以及存储操作的可见性。但它绝不会说明如果您有两个调用竞相写入同一内存位置会发生什么。它并没有说该值将是未定义的,或者它将是几种可能性之一。
规范在这方面似乎有漏洞。因此,我不会做任何假设此类写入在这方面确实 "atomic" 的事情。