The problem is that it's unique and different. The problem is that I (as an open source developer for a popular gaming-related project with an OSX port) can't realistically develop and support a metal backend without having to buy an expensive mac with a good modern GPU.
And with OpenGL being deprecated on Mac, with old and (sometimes) broken drivers that are missing 10 year old features, along with apple breaking things and adding new signing/notarising requirements, it's hard to justify continuing to support mac.
Same kind of thing goes for Nvidia/Apple. It doesn't matter who's fault it is for starting that feud, it's still hurting the users.
> The problem space Vulkan and Metal solves is not high level cross platform graphics (which OpenGL tries to solve), it’s low level control over the GPU. That’s the problem they’re trying to solve, it’s not about cross platform. You might ask, ‘Then why is OpenGL deprecated?’. The answer is that Apple is just deprecating it’s own support since there’s a more low level API, OpenGL should be implemented as a library on top of Metal, which (for example) libraries like MoltenGL is.
I'm not going to spend valuable time and resources on a non-standard graphics API for a platform with anaemic graphics hardware. Instead, I'm going to target Windows and Linux with Vulkan or OpenGL. If I do support MacOS, it will be via MoltenVK, and it will be a second tier platform.
From my point of view, by dropping standard OpenGL they have turned their platform into a second-class citizen.
OpenGL and Vulkan only happen to work on Windows via the ICD driver model introduced in OpenGL 1.1, which Microsoft hasn't yet bothered to remove.
Instead they aren't supporting it on UWP and Win32 sandbox model, which only allow DirectX.
Microsoft's way forward is also to build OpenGL wrappers on top of DirectX like ANGLE.
https://github.com/microsoft/angle/wiki
https://devblogs.microsoft.com/directx/in-the-works-opencl-a...
And then there are the game consoles.
Khronos has just messed up providing SDKs that are at the same productivity level as commercial APIs.
I also don't care about Microsoft's UWP and sandboxing stuff.
They might have a desire to take the platform in that direction. But I have no obligation to follow, and if they want to retain application developers they won't be able to simply cut us off. We've always got the option of abandoning Windows entirely if they make it too inconvenient and troublesome to develop for. It's not like we don't have a precedent for abandoning MacOS X as a top tier platform for exactly those reasons.
"How Windows 10X runs UWP and Win32 apps"
https://www.youtube.com/watch?v=ztrmrIlgbIc&list=PLWZJrkeLOr...
MSIX
https://docs.microsoft.com/en-us/windows/msix/overview
> Apps that are packaged using MSIX run in a lightweight app container.
Yes, Win32 can still choose between both models in current versions, depending on Windows 10X reception, I bet it might eventually change.
Sandboxing resistant developers are always free to keep their Windows XP or 7 copy, I guess.
Also, to answer your question: no. Nvidia is in the GPU selling business. They wouldn’t mind having their high priced GPUs in high priced laptops. Apple keeps control of what hardware they sell, which dictates what software gets developed. Why would Nvidia or Apple spend resources to make software for a computer that no one is selling? It’s Apple who refuses to buy rather than Nvidia being unwilling to sell.
That’s the problem they’re trying to solve, it’s not about cross platform.
You might ask, ‘Then why is OpenGL deprecated?’. The answer is that Apple is just deprecating it’s own support since there’s a more low level API, OpenGL should be implemented on top of Metal, which (for example) MoltenGL is.
Game consoles never had OpenGL support, other than a timid attempt from Sony with GL ES 1.0 using Cg as shading language.
iOS is an exception due to it's position in the market but I've been seeing less and less interest in mobile overtime too
Not quite. From Nvidia: "Apple fully control drivers for Mac OS. But if Apple allows, our engineers are ready and eager to help Apple deliver great drivers for Mac OS 10.14 (Mojave)...Unfortunately, Nvidia currently cannot release a driver unless it is approved by Apple." — https://en.wikipedia.org/wiki/Nvidia#Apple/Nvidia_web_driver...
Apple is preventing Nvidia from releasing Mac Pro and eGPU driver support.
I’m kind of curious though: what value do their web drivers have to them now that they couldn’t just release them as OSS and allow a determined group to rewrite them as Metal.
Nvidia's eGPU web drivers already supported Metal in High Sierra [0]. Apple refuses to sign their drivers for Mojave and up. Without Apple's signature, GPU drivers will not run on macOS, OSS or not.
[0] https://www.insanelymac.com/forum/uploads/monthly_2020_03/84...
I know there are some older Nvidia cards that do work on Mac, but most of the recent GTX/RTX/etc. ones don't. Are they similarly Metal (and just missing a signature)?
Because whenever I was actually keeping up with this, the stalemate was over Nvidia not leveraging Metal.