The linux community seems to believe that the world will just naturally bias toward open systems given enough time. Maybe Vulcan will own the world in a hundred years; we'll wait it out. But there's no evidence that this is the case. People just want their problems solved; they want working games, or a freakin' powerful office suite, or whatever. That's why Linux succeeded in the server in the first place; it wasn't (mostly) its libre licensing; it was just better at a lot of things, which led software to be written for it, which entrenched its position.
We can solve problems and push for openness at the same time. Linux can have DX and HyperV and whatever, while we still make open solutions better. Vulcan may actually own the gaming world one day; its very good. But I doubt LibreOffice will; Microsoft Office is just too good. Why not try to do both?
When my employer moved from Mac servers to Debian it was mostly slower performing and less obvious with the lack of a GUI.
>> Oh, easy: it’s so games written for DX12 on Windows—that are currently run on Linux using Wine
And why does Microsoft give two shits about that?
Make no mistake: any time an Xbox title isn’t explicitly chosen to be a “console exclusive” for marketing purposes, Microsoft would love nothing more than to port it to every system imaginable. Look at what they did with Minecraft.
Microsoft proprietary APIs are not and can not be part of a free software platform, that is a contradiction. They can be part of a new MS-Linux platform masquerading as the real thing until support for the real thing dries up.
(Why? Because the original studio is busy making other new games. Or because the publisher got the game produced as a one-off work-for-hire, so the original studio has no ongoing contractual relationship for the publisher to lean on. Or, sometimes, because the studio is defunct, but customers are still interested in getting new ports of the game, so "you gotta do what you gotta do.")
Publishers can't change what engine a game is written in; and there's certainly no positive ROI in a ground-up rewrite. They just have to cope with the game's codebase as-is, relying on combining small tweaks with techniques like emulation/virtualization to get the port shipped. Pushing to get the target platform to natively support the APIs the game uses, is just another such strategy.
> Microsoft proprietary APIs
What is a "proprietary API"? APIs aren't IP. Even in Oracle vs. Google, the copyright case had to focus on plagiarism of header files, not of the API.
The moment there's more than one (popular) implementation of an API, its original creator loses de-facto control over it. Third parties interested in using that API will almost always focus on the lowest-common denominator subset of the API supported by both implementations.
Which is to say that, if anything, Linux implementing DX12 would be bad for Microsoft's control over DX12, since it means that Linux could "hold DX12 features hostage" by refusing to implement them. Just like Chrome and/or Safari are currently holding a lot of HTML5 features hostage from appearing in most web-apps, by being a hold-out on implementing them.
Oh, easy: it’s so games written for DX12 on Windows—that are currently run on Linux using Wine—can have a direct, low-overhead GPU driver path, rather than Wine needing to translate DX12 calls into OpenGL/Vulkan calls first.
Of course, if you’re a game-engine developer, you know you can achieve the same by just writing your engine to target Vulkan instead of DX12.
But if you’re e.g. Steam, you’d love to see more games “automatically made” multi-platform (with comparable performance), so that you can sell them to your Linux userbase.
Microsoft themselves are—maybe surprisingly—in the same boat as Steam here. The various game studios they own publish multi-platform games. Those platforms don’t necessarily include Linux, but they do often include Android. And merging code into the upstream Linux kernel is one way to get it to appear in Android.
—————
This change would also allow the graphics of Linux programs running in a VM on Windows to be accelerated through virtualization (i.e. having the X/Wayland server on Linux act as a Windows DX12 client.) It’s analogous to the reason that some VM software offers special-purpose “host-guest filesystem” drivers to the guest, that allows the guest to just pass through filesystem requests at a high level, rather than needing a virtual block device or a networked-filesystem protocol.
This is the reason Microsoft themselves offered. I feel like there’s a lot more money on being able to easily port Windows games to Android, though.