原子操作
本章旨在帮助用户了解 Vulkan 中原子操作的各种功能。
原子操作的变体
为了更好地理解不同的扩展,首先重要的是要了解各种公开的原子类型。
- 类型
float
int
- 宽度
16 bit
32 bit
64 bit
- 操作
- loads
- stores
- exchange
- add
- min
- min
- 存储类
StorageBuffer
或UniformBuffer
Workgroup
(共享内存)Image
(图像或稀疏图像)
基线支持情况
在 Vulkan 1.0 且没有扩展的情况下,应用程序可以使用原子的32-bit int
操作,这可用于所有的 SPIR-V 操作(load、 store、 exchange等)。SPIR-V 包含一些原子操作,这些操作由Kernel
能力支持,目前在 Vulkan 中不允许使用。