Wouldn't they have been better off just supporting Vulkan?
Wouldn't they have been better off just supporting Vulkan?
An obvious example would be OpenGL, which nobody has called a well-designed API.
But there's other misfires as well. OpenCL hasn't exactly set the world on fire compared to CUDA. OpenVG was a standard for accelerating 2D Graphics that was a little too late to matter. OpenXR? Well, at least Oculus is actually using it. WebGL? The W3C is working on replacing it with the (far superior) WebGPU. WebCL? Well, that was a JavaScript system for OpenCL, and that was as bad of an idea as it sounds.
And of course, most recent example: Vulkan. Almost everyone who has actually used Metal has commented on how it is much, much easier to hit the ground running than Vulkan, because Vulkan requires mountains of boilerplate. (It's also worth remembering that every iOS Developer builds for Metal, so it isn't like there isn't knowledge out there about how to use it - it's just among mobile game developers instead of the AAA developers).
Yes, Vulkan comes with more boilerplate. But who cares? Vulkan was meant to write your engine in, not something you call directly from client game code. It works extremely well and Khronos deeply cares about Vulkan and continuously improves it. Part of the verbosity also comes from the fact that Vulkan scales from small embedded SoCs to big gaming GPUs and everything inbetween, so the API has to cover a lot of potential hardware quirks. Viewing Vulkan as a kinda low level HAL helps explain a lot of the verbosity.
Anyways, long story short, I absolutely love working with Vulkan and after having been Vulkan programmer since basically day 1 of its existence, you can take it from my cold dead hands.
OpenGL wasn't designed by Khronos, rather it was designed by SGI and called GL. It was then given to Khronos and then maintained it.
OpenCL wasn't designed by Khronos either, rather it was designed by Apple and then given to Khronos to maintain. It was orphaned when Apple gave up on it, and not because of Kronos's leadership but rather Apple decided to go all in on Metal, their proprietary solution that did graphics and compute shaders.
Vulkan also wasn't fully designed by Khronos, rather it was based heavily on Molten from AMD, which was gifted to Khronos. It is much more widely used than Metal.
That said, benevolent dictators who are competent can out do committee decision making, but committee decision making is often better for an industry as a whole because it aligns different interest groups.
[0] https://www.khronos.org/news/permalink/apple_dell_google_and...
By default, pretty much every gaming platform has it's own proprietary graphics tech.
we've got Metal on Macs and iOS, DirectX on Windows and XBox, and Gnmx on Playstation.
The D3D APIs are by far the most popular for PC games, so it makes a lot more sense to support D3D. Also, Vulkan on Mac is already supported "well enough" via MoltenVk.
I think they are keeping an evil eye on asahi linux. As soon as that becomes viable, they'll act to keep people on OSX. Their worst nightmare would be steam actively moving to support proton on mac and doing things outside the apple store. Asahi linux would be the pre-cursor to that happening.
Linux on the Desktop - Apple Silicon edition.
They clearly see the Mac a bit differently than they do the other iDevices.
That's a scenario Apple would want to avoid. Hence the announcement of a porting kit.
If you think that (even with a fully parity with say Ubuntu on Intel Asahi) people would move to Linux on their Mac on any number enough to even raise an eyebrow (much less worry) Apple, you are delluding yourself.
People buy Macs to run macOS. A very tiny minority buys Macs to run Linux on. A slightly larger (but still insignificant) minority will convert an old Mac laying around to Linux.
It's enough to get a project like Asahi support, not enough to make even a 1% dent on Apple's software/services ecosystem bottom line (the hardware side is the same, as those people are still buying a Mac anyway).