Hello. Curios over here and wanted to ask a certain question. I'm currently doing some research on Metal API and came across some real good demos that uses Metal. However, I stumbled upon A product called MoltenVK. What I heard about this it uses Metal 2 and 3 for portability for vulkan to translate vulkan code to metal code(if this is even true). I wanted your guys opinion about this moltenvk that actually uses metal. Is apple ok with this even though it uses metal api? Let me know. any opinion is fine here
MoltenVK is interesting. I've looked at it but never tried to deploy it.
A few years ago, we could write code using C++ and OpenGL ES and it would run on iOS, Android, on the web (using Emscripten and WebGL), and even on desktop Linux and likely Windows. I have a largish demo that does most of that. But since then there has been some unhappy divergence: iOS has deprecated OpenGL ES and invented Metal, and the replacement of ObjC with Swift has made C++ more difficult to use; Android now has Vulkan. So it is tempting to look for tools like MoltenVK that might help to re-unify the platforms.
Right now, my feeling is that the more promising technology medium-term is webgpu.h. WebGPU is a replacement for WebGL that is more "modern" like Metal and Vulkan (but is different from both), and webgpu.h is a native API for it. So you can use it, with C++, on the web (where webgpu.h is a thin wrapper over JS WebGPU), and on native platforms with a library that translates webgpu.h calls to Metal or Vulkan (e.g. Dawn). This doesn't seem to be ready to use quite yet but it's coming soon enough that it's worth considering if you're about to start on a new project.
I would be interested to know if anyone here has any experience with any of these things.