WiteWulf wrote:The Life Is Strange games are a specific and known example of the native Linux ports being notably worse than the Windows versions when running on a Steam Deck or a general purpose computer running Linux.
That is another aspect to this.
Simply being "Linux native" doesn't necessarily mean you've got better performance, unless you're optimising for that platform. If you're just taking your code and blindly re-compiling it for Linux, then this could well end up worse performing than taking your well-optimised Windows binary and running it through Proton.
E.g. well-optimised game + light-touch translation layer > not-optimised blindly re-compiled native version.
So the other thing with choosing to do a Linux native version - exactly as you did with the Windows native version - you've got to optimise it for that platform to squeeze out the performance (or, indeed, with a game, typically the point is to optimise the graphics pipeline, regardless of underlying OS, because that's where the "performance sink" for most games lies).
Though, you know, that's a logical thing, not a Linux specific thing. You are also, of course, optimising your Windows version (but you just might think of that as "taken as read" during development - but you are also doing that or the Windows version will be shite performance as well. It's not a specific OS thing, it's just a general thing that if you want the best performance, you need to be optimising your code. And if you're switching underlying platforms - not just Linux to Windows, but also DirectX to Vulkan - what is "optimal" might well change).
And, honestly, with games, it's the graphics pipeline.
That is, DirectX vs. Vulkan, and optimising them. That's where it really matters.
The OS API is doing what exactly? Loading stuff from disk? They can both max out the bus speed (and, at the real extremes of that, I notice that whenever Linus Tech Tips is pushing their "insane" SSD servers to the absolute theoretical max that the hardware can manage, they always do those benchmarks with Linux, as Windows file copying is known not to be optimal - so it's not just that Linux should not be holding you back there, it's actually better, when CPU-bound. Well, unless you're using "DirectStorage" to get the GPU to do it, then Windows already has a lead on that right now. Back and forth. Back and forth. Truth is, all this sort of stuff balances out. It's not the OS itself that's going to cause the performance issues, it's going to be all in the graphics pipeline. That's where the "make or break" for a game is bound to lie, in reality. Are you using Vulkan optimally? And, even considering the OS / CPU side of things, Linux is "lean and mean" compared to Windows - it's certainly matching it blow-for-blow, if not handily exceeding it in certain spheres).
So, yeah, the sort of implicit thing here is that when we say "Linux native", we don't just mean that we've got an ELF binary. Any native version - whatever the platform - needs to be using it optimally, or what's the point?
Which brings another added dimension to "native port vs. Proton". You're not just re-compiling it for Linux, but need to be optimising it too.
When we say that creating a "Linux native" version is effort and expense, that's really what we mean. The effort and expense is optimising it. If you're using compatible tech - e.g. using Vulkan, not DirectX, on Windows - and it's coded in C / C++, then re-compiling it for Linux ain't typically that hard. But there's more to a "native port" than just getting the binary to run on another platform.
Little stoned kiwi wrote:Anyone waiting in the wings for proprietary software they want to be on Linux is doing it wrong. They are losing freedom if that software is Steam's walled-garden.
Ah, well, if you want to get all philosophical and "Richard Stallman" on me then, yes, there is that too.
And, like, I'm the 100% open source / Linux user here. I don't disagree with that, as being outside everyone's walled gardens is a freedom I enjoy.
(Though I'm not at all "Stallman" about this. I'll use proprietary software - I have nVidia's proprietary blob drivers, not the open source equivalents - if necessary. I'm a pragmatist, so "getting shit done" always wins. But if I can get shit done and avoid proprietary walled gardens then I'll preferably do that. I'll look for the open source way, and only fall back if there really is no useful / feasible options available.)
But, like, let us not fall for the naturalistic fallacy. I was reporting "what is", not "what ought to be". People should not be waiting - that is "what ought to be" - but they actually are doing that - that is "what is".
Also, the status of Steam as a "walled garden" is interesting. I mean, it absolutely is. But it's a DRM / payment walled garden - Valve throw up the walls to ensure they get paid.
But SteamOS, for example, is almost all open source components - except for the Steam Store itself. On a Steam Deck, you can "exit to desktop" and have yourself a Linux handheld. You can alternatively install Windows, if you want.
Steam is a walled garden. But it's one that's only concerned with getting paid for the games sold. Beyond that, Valve refreshingly tend not to overstep the mark. They have, indeed, made a number of enhancements and they're pushing them back upstream (they're trying to get a few things into the Linux kernel - a "WaitForMultipleObjects" API that works closer to how Windows does it, to make Proton perform better. But they haven't just done it and kept it in SteamOS to themselves. They're pushing it back to the kernel, so that the whole ecosystem can benefit. Like, Linux web server could start handling even more connections faster, by using Valve's work in the kernel).
It is an interesting one, though. Because Valve's work in the Linux realm does create conversations. For the pragmatists, it's clearly a good thing. But for the philosophers, they are uneasy that, yeah, Steam is a walled garden, even if it's the least objectionable of the walled gardens out there.
zip accident wrote:And, of course, Windows has no such problem because it's pre-installed on 95+% of all PC desktops and laptops in existence.
Windows 11? nothing like it. I dunno, is Windows 11 even 50%?
Well, I said "Windows". As in generally. All versions of Windows combined.
I mean, that unto itself speaks volumes. Because folks are often grudgingly made to upgrade by Microsoft. They skip over every other version - because only after two versions is there really enough difference to justify bothering. Often, Windows is only upgraded with the machine - you stick with what you've got, until you need a new PC and if it comes with the newer Windows then, ah, you'll go with it.
That all just feeds into what I was saying, though. You're not really choosing Windows. You get given it, pre-installed, when you upgrade your machine. And it's already there, and you've already paid for it. So the line of least resistance is to go along with it all. It's rarely a positive choice for Windows, but just the default "do nothing" option. Just going along with it.
Whereas, on Linux, folks do tend to upgrade to new releases of their distro, as and when. I know I do. And I know that Linux websites make a fuss of new distro versions, letting people know what the new features are and they're popular articles, with many comments. And what's very interesting about that is that, unlike with Microsoft, there is zero compulsion. If you want to stick with some ancient version of a particular distro forever, then you absolutely can (though, security-wise, you probably shouldn't).
From my experience, there tends to be inertia in Microsoft getting people to upgrade, even though Microsoft try to compel it. Whereas I tend to find there's more momentum in the Linux world for upgrading, despite there being no real compulsion to do so.
"Words ought to be a little wild - for they are assaults of thought on the unthinking."
- John Maynard Keynes