opencl - 将 OpenCL SPIR-V 转换为 Vulkan SPIR-V
问题描述
是否可以将 OpenCL 风格的 SPIR-V 转换为 Vulkan 风格的 SPIR-V?
我知道可以使用 clspv 将 OpenCL C 编译为 Vulkan 风格的 SPIR-V,但我没有看到任何迹象表明它也支持摄取 OpenCL 风格的 SPIR-V。
如果您知道如何实现这一点,谢谢您的任何建议:)
解决方案
我知道可以使用 clspv 将 OpenCL C 编译为 Vulkan 风格的 SPIR-V,但我没有看到任何迹象表明它也支持摄取 OpenCL 风格的 SPIR-V。
clspv 编译为“Opencl 风格的 SPIR-V”。IOW,它使用 OpenCL 执行模型和 OpenCL 内存模型。您的问题的答案是否定的(一般而言)。问题在于,例如 GLSL 使用逻辑内存模型,这意味着指针是抽象的,因此您不能拥有指向指针的指针。而 OpenCL 允许这样做,因为它使用物理内存模型。另外,OpenCL 中还有其他一些东西不能用 GLSL 来表达。您可以尝试编写一些翻译器,它可能适用于一些非常简单的代码,但仅此而已。
推荐阅读
- javascript - 在angularjs中将选项值绑定到ng-model
- ios - 多次暂停和恢复 CAEmitterLayer
- php - XML DigestValue 重新计算
- ios - 如何在 SwiftyStorekit 中恢复老用户的订阅?
- artifactory - Artifactory 6.4 virtual helm repo 真的不行吗?
- javascript - Vue 和 Vanilla UI-Kit 的集成
- javascript - [c3.js]如何onclick/onmouseover到图例然后显示工具提示?
- regex - 查找/替换数字旁边的字符而不替换实际数字
- ms-access - 访问 2013 计数
- scala - Spark - 如何获取 S3 路径中的最新时间?