News for hackers. Stuff that matters.
Re:Microsoft submits Linux kernel patches to enable complete... by derefr on Wednesday September 16, 2020 @11:27AM (#24493574)
> What is the point of bringing native DX12 to linux if not that?

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.

Re:Microsoft submits Linux kernel patches to enable complete... by paulryanrogers on Wednesday September 16, 2020 @11:38AM (#24493686)
Right but the larger point is that it's less healthy long term since Microsoft controls DX, full stop. So it makes direct Vulcan support less appealing.
Re:Microsoft submits Linux kernel patches to enable complete... by 013a on Wednesday September 16, 2020 @12:40PM (#24494362)
Sure, but its been, like, thirty years. The biggest advancement specifically Linux gaming has had in that time is a highly optimized DX interpolation layer from Valve (Proton, an extension of WINE).

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?

Re:Microsoft submits Linux kernel patches to enable complete... by paulryanrogers on Thursday September 17, 2020 @08:50AM (#24503944)
Did Linux start out better at a lot of server things? My experience was it was just cheaper, and significantly so.

When my employer moved from Mac servers to Debian it was mostly slower performing and less obvious with the lack of a GUI.

Re:Microsoft submits Linux kernel patches to enable complete... by phkahler on Wednesday September 16, 2020 @03:33PM (#24496617)
>> > What is the point of bringing native DX12 to linux if not that?

>> 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?

Re:Microsoft submits Linux kernel patches to enable complete... by derefr on Thursday September 17, 2020 @10:44AM (#24505223)
I said above: because Microsoft (or rather, their Xbox division) owns a bunch of gaming studios, and acts as their publisher. And one of the roles of a publisher, is to get the games the publisher has rights to, ported to more systems, to get them into the hands of more people, to make more money.

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.

Re:Microsoft submits Linux kernel patches to enable complete... by phkahler on Wednesday September 16, 2020 @01:33PM (#24495014)
You dont make games multi-platform by bringing an API from a closed platform to an open one. You do it either by writing to multiple APIs (extra work) or by using an API that is already multi-platform.

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.

Re:Microsoft submits Linux kernel patches to enable complete... by derefr on Wednesday September 16, 2020 @01:55PM (#24495269)
The "you" here is nebulous. Games are made by a studio, but are often ported by that studio's publisher, who will often then subcontract the porting work to some other development house.

(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.