首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Vulkan是否支持着色器中的原子浮点操作?

Vulkan是否支持着色器中的原子浮点操作?
EN

Stack Overflow用户
提问于 2018-12-06 00:11:20
回答 2查看 1.8K关注 0票数 5

对于OpenGL,存在Nvidia扩展NV_shader_atomic_float 1,它允许对GLSL着色器中具有浮点组件的缓冲区或纹理内存执行原子读取-修改-写入操作。

这个功能在Vulkan中也存在吗?我找不到任何支持这一功能的扩展的相关信息。该功能不是通过Vulkan扩展提供的吗?

1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-24 20:04:33

这就是:VK_EXT_shader_atomic_float

该扩展已于2020年7月由NVIDIA添加,并与所有Vulkan版本兼容。

引用说明书。描述:

此扩展允许着色器包含对缓冲区、工作组和图像内存的浮点原子操作。它还宣传SPIR-V AtomicFloat32AddEXT和AtomicFloat64AddEXT功能,允许对浮点数进行原子加法。支持的操作包括OpAtomicFAddEXT、OpAtomicExchange、OpAtomicLoad和OpAtomicStore。

gpuinfo.org上已经有一些条目表示支持该扩展。需要NVIDIA驱动程序451.79.0.0或更高版本之类的应用程序。

票数 3
EN

Stack Overflow用户

发布于 2018-12-06 02:10:12

不,没有提供原子浮点操作的Vulkan扩展(还没有?)。假设Nvidia可以创建这样的扩展,如果他们看到足够多的开发人员对它的需求。

SPIR-V支持浮点类型的原子指令,但包含浮点类型的SPIR-V模块目前被Vulkan's SPIR-V environment spec禁止

对于指针指向的值,

原子指令必须声明标量32位整数类型,或者如果启用了Int64Atomics功能,则声明标量64位整数类型。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53636376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档