我尝试使用glsl的64位整数类型的原子函数,例如atomicCompSwap。
我找到了一些相关的扩展
ERROR Compilation error: 0(16) : error C0202: extension EXT_shader_atomic_int64 not supported
#extension GL_ARB_gpu_shader_int64 : require
#extension GL_NV_shader_atomic_int64 : require
layout(std430, binding = 0) coherent buffer Test{ uint64_t test; };
void main() {
uint64_t origin_key = 0u;
uint64_t key = 1u;
atomicCompSwap(test, origin_key, key);
}
编译错误是
error C1115: unable to find compatible overloaded function "atomicCompSwap(uint64_t, u64vec2)"
请参阅NV_shader_atomic_int64。在此扩展中,
atomicCompSwap
仅针对int64_t
实现,并具有以下接口:
int64_t atomicCompSwap(inout int64_t mem, int64_t data);