通过 Vulkan 包装器在 iOS 上支持 Opengl ES 3.1+

Opengl ES 3.1+ support on iOS through Vulkan wrapper

现在 Vulkan to Metal wrapper is officially supported by Khronos (MoltenVK), and that OpenGL to Vulkan wrappers began to appear (glo),在现代 iOS versions/HW 上使用 OpenGL ES 3.1 甚至 3.2(即使支持 OpenGL 计算着色器)在技术上是否可行通过链接这两种技术?有人试过这个组合吗?

我对性能下降不太感兴趣(由于两个额外的抽象层显然会出现这种情况),但我只对解决方案的支持因素和跨平台方面感兴趣。

理论上是的:).

MoltenVK 并不支持 Vulkan 的所有功能(请参阅 Vulkan Portable Subset 部分),其中一些功能可能是 OpenGL ES 3.1 所必需的。三角形扇子是一个明显的,全纹理调酒是另一个。 MoltenVK 专注于可以直接翻译的东西;如果 ES-on-Vulkan 翻译者愿意接受额外的开销,它可以伪造部分或全部这些功能。

ANGLE 核心团队正在致力于 OpenGL ES 3.1 支持和 Vulkan 后端,according to their README 和最近的提交。他们有模拟 ES 所需但在 D3D 中不可用的功能(如三角扇)的历史。