I do agree that this time it might be different. There's no great cross-platform open-spec solution for, say, EventKit, so when Apple offers up their own API, we've just gone with it. Game Developers are a huge existing community, in a way that Calendar Developers are not. Metal and Vulkan are an unstoppable force meeting an immovable object.
As someone who learned to program in the 1980's, it's pretty amazing that it's getting feasible to target high-performance graphics on every major platform from a single code base. Targeting every user in the world using only 2 graphics libraries doesn't seem so terrible to me. Consider how different the "Lemmings" source code must have been for Commodore Amiga versus the Commodore C=64, for example, not to mention the other 25 platforms it was ported to.
Maybe in absolute terms, but relatively speaking these things could not exist and nothing would change. They are /exceptionally niche/ libraries at best .. non-existent if honest
Metal has no such argument, to the best of my knowledge.
Vulkan is the typical Khronos API, pure C, has the extension dance to find out what is available, just knows about pixels and for everything else everyone needs to go fishing for libraries.
>At the time that DirectX was created Microsoft also largely controlled the OpenGL standard, the success of DirectX in gaming caused Microsoft to largely lose interest in OpenGL leaving it in the hands of the 3D chip OEM’s to advance as an open standard that they could use to pressure Microsoft to implement features they wanted in DirectX. Apple’s adoption of OpenGL and subsequent active participation on the ARB breathed life into OpenGL in mobile gaming because Apple’s iPhone implementation of OpenGL became the “standard” that other mobile phone and chip vendors had to emulate if they wanted to get IOS games ported to their devices. Without some form of “standard” hardware definition, OpenGL drivers and media drivers in general are often just a grab bag of broken inconsistent functionality. Of course in the absence of a “DirectX” like media API of their own design, Apple had little choice but to jump on the OpenGL bandwagon and ride it for gaming, but clearly it is not to Apple’s competitive advantage to be propping up OpenGL support in mobile for all of their competitors. Just as it did for Microsoft, creating their own proprietary gaming API’s is entirely in Apple’s strategic interest…. Why help Android siphon off their game developers by propping up OpenGL?
https://web.archive.org/web/20140606055700/http://www.alexst...
And such studios prefer APIs that fully expose the hardware, and then build their own abstractions, than something that hides that extra performance features.
All major AAA game engines already support Metal.
https://web.archive.org/web/20100524023205/http://playstatio...
And you’re right - a look at the developer docs for Metal do show that ‘this matters’
[1] https://techcrunch.com/2017/09/12/the-new-iphone-8-has-a-cus... [2] https://developer.apple.com/documentation/metal/about_gpu_fa...
https://www.extremetech.com/gaming/238246-apple-built-its-ow...
Metal’s main advantage is that it lets you adopt more manual management incrementally (you can basically use it as a DX11 analogue if you’re not interested in low level performance gains). Vulkan is definitely intended primarily for engine developers, not for one-off games.
Nobody is expecting Microsoft to add native Vulkan drivers on Windows, why would that be expected of Apple?
Windows has modern, fast OpenGL & Vulkan support due to Windows allowing IHVs (nvidia & amd) to supply the implementation through the Installable Client Driver model ( https://docs.microsoft.com/en-us/windows-hardware/drivers/di... ), which they do.
It's why AAA games have already shipped Vulkan and performed superbly with it (Doom, DOTA2, etc...), since they work with the IHVs to tune & fix bugs and then ship the driver update along with the game drop.
Microsoft doesn't support Vulkan or OpenGL, yet they also are not blocking them. That's the critical difference here. Why is Apple not allowing Nvidia or AMD to do the same on macOS? It's not a question of not supporting it out of the box or doing the work, it's a question of preventing others from supporting it.
Meanwhile, on the Mac, the cheese grater Mac Pro is the only model you can install their graphics cards into and it exited production half a decade ago.
The problem isn't that MacOS lacks Kernel Extensions.
The question is why should Nvidia or ATI take on the expense when there is no marketplace to compete in.
The only Mac you can purchase and use their products in exited production half a decade ago.
Without the possibility of making sales, why would they bother?
Apple's pro software made a big bet on OpenCL in the past, so I don't see them going with anybody but ATI for built in GPUs until they root that dependency out of their software and switch over to Metal for compute.
Nvidia certainly isn't going to put OpenCL performance on an equal footing with CUDA performance, so I can't see them getting a design win with Apple as long as Apple's in house software is still using OpenCL.
And yet: https://www.phoronix.com/scan.php?page=news_item&px=GTX-1080...
OpenCL performs great on Nvidia.
That happens to be not terribly long after Apple started offering rewrites of their pro apps that went all in on OpenCL.
Nvidia did put out a driver for the cheese grater Mac pro so it can use Pascal based cards, which is nice, but I imagine that's motivated by a desire to maintain CUDA dominance.
They probably figure, if developers are willing to do it for DirectX, they'll be willing to do it for Metal also / instead.
But AAA on a Windows desktop commands $40-60, whereas AAA on mobile commands < $8 +/- scuzzy IAP schemes.
This list[1] is quite a bit different looking from this list[2]
iPhone sales in 2017 were 223 million (https://www.usatoday.com/story/tech/talkingtech/2017/12/29/i...)
The total market share is a much more complicated picture, obviously, but I don't think the difference is nearly as big as you do.
In any case, that still puts Metal and DirectX in the same order of magnitude.
From Apple's perspective it's probably worth a try to get lock-in! Their real leverage is iOS, which lots of games want to target.