HACKER Q&A
📣 sergiotapia

Why did Apple create their half-baked Metal insead of using Vulkan?


Why did they decide to create something that only works on Apple instead of using an open standard like Vulkan?


  👤 Jasper_ Accepted Answer ✓
Metal is not half-baked, it's actually quite good! It was started as a project before Vulkan as a whole, and it released a year before Vulkan.

Strategically, why would Apple do their own thing and not pay attention to Khronoscor contribute to the standard? Quite a few reasons, most of it having to do with Khronos politics. The details are not public and might never be. I can imagine Apple was tired of Khronos after the mess that was OpenGL. And in many ways, Vulkan isn't a whole lot better...


👤 fathyb
It's easier for them to only have one API, they still have to write and maintain drivers, and Metal predates Vulkan. Microsoft also requires all graphics drivers to support DirectX, and it's up to the GPU maker to support OpenGL or Vulkan.

Metal is far from half-baked. After working with OpenGL for years, the stability of Metal is a breath of fresh air. No GPU-specific workarounds, great performance with unified memory, and easy interop between compute and graphics.


👤 db48x
You mean aside from the fact that Vulkan was announced a year after Metal was first released? Probably just because Apple never cooperates with anybody.

👤 grahamlee
There's a lot of "Apple business model" answers in other threads, but I think that's at best a partial answer if it's an answer at all. To the extent that you can draw a line to "move the revenue numbers by tens of billions of dollars per quarter" from "choose whether to support this open standard API or create our own", which I think is a large extent, I think that line goes through performance. Apple now sell 120fps as a marketing feature. OpenGL ES was holding back performance of the graphics stack by not really being what people wanted to do with the GPUs and also not really what the GPUs were good at. Apple design the GPUs and the image/video frameworks, they know what APIs they can provide to get high-performance access to the types of task they need to be able to do.

👤 bitwize
Metal is a fantastic API for the Apple ecosystem. Apple likes to call their own shots and not depend on anybody else when it comes to implementing cutting edge functionality in their devices and exposing it to developers.

As an Apple developer, this means you have to suck it up and do things the Apple way, or gtfo. The MoltenVK library, however, wraps Metal calls in a Vulkan API, so you still have options.


👤 Tagbert
Do you have any basis or specifics about what makes Metal “half-baked” or was that just an assumption?

👤 sto_hristo
/rant The disparity between platforms and platforms within the same family is pretty (ipados and ios) much at its most extreme. I really hate the state of things we're at. I compare it to having different html and css for different screen sizes and browsers. And the wrappers that attempt to bridge that gap simply don't cut it.

The first company that delivers a truly open (i.e. users own their own devices) and unified experience across all form factors is going to conquer the whole market and current companies and their tech will find themselves in the junkyard.


👤 Shadonototra
Metal is preferred over Vulkan by game developers, it says a lot about how Vulkan is the one that is half baked

Apple was once a supporter of Vulkan, then they abandoned the bloated ship and they made their own tech

Roblox: https://blog.roblox.com/2020/05/3-years-metal/