【发布时间】:2019-05-07 06:18:45
【问题描述】:
对于 OpenGL,存在 Nvidia 扩展 NV_shader_atomic_float [1],它支持原子读取-修改-写入操作,以在 GLSL 着色器中使用浮点组件缓冲或纹理内存。
Vulkan 是否也存在此功能?我找不到任何可以启用它的扩展的信息。该功能不是通过 Vulkan 扩展提供的吗?
[1]https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_atomic_float.txt
【问题讨论】:
-
原子作为核心规范的一部分被支持。请参阅khronos.org/registry/vulkan/specs/1.1/html/vkspec.html(搜索“原子”)并参阅github.com/KhronosGroup/GLSL/blob/master/extensions/khr/…(搜索“原子映射”)以了解 GLSL 着色器语言中的 Vulkan 细节。
-
感谢您的链接。但是,我不清楚是否也支持原子 floats。如果我没记错的话,OpenGL 中有原生 atomic int 支持。但是 Vulkan 呢 - 原生支持是否也仅限于 atomic int 还是原生支持 atomic float?如果是这样,那是否也意味着所有支持 Vulkan 的设备都必须支持原子浮点数?我找不到任何明确的说法。