Source is this video:
Windows Was The Problem All Along - Dave2D
We could obviously compare performance between windows and steamOS before on the steam deck, or between windows and Bazzite on other handhelds. But this is the first time we have had official windows and SteamOS builds for the same hardware.
Valve doubling down on Linux as the default OS on the Steam Deck was such a great decision. It obviously has given them a massive competitive edge. Windows has become so horribly bloated, and Microsoft has almost zero interest in making it run more efficiently.
Personally I feel what it gave them - primarily - was the ability to be independent of Microsoft, not beholden to them in any way whatsoever, and not having to pay them any license fees.
The fact that after putting so much work into making Proton and that whole toolchain amazing it actually turned out faster than Windows, well, that’s juat the delicious icing on the cake, from a commercial perspective.
Hmm, it’s like having spyware constantly run in the background slows down the computer?
the gains come from the reduced overhead that linux has compared to windows
literally the next line
…the games here are being run through proton
I really hate the dismissal of the heavy lifting proton does. Proton is what makes gaming on Linux so great. So many native linux games perform worse on Linux vs their windows counterparts. Then again, I’d expect nothing less from Dave2D
I mean, yeah, but if Proton is doing an absolutely flawless job, then it has 0 performance penalty compared to Windows. All the actual gains still do come from Linux having less overhead. So, both are true, that Proton is killing it and that the gains come from Linux.
DXVK (which also runs on windows) alone gives you a huge performance benefit. Playing world of warcraft on windows I’ll see about a 30% reduction in CPU usage and higher performance.
Proton doesn’t just get you to almost matching Windows’ performance. Proton easily outperforms windows even on higher end hardware where windows bloat isn’t a concern.
While proton enables that, that’s still just vulkan outperforming DirectX.
So technically proton isn’t improving performance here, it’s just allowing the game to run on better performing systems (like Linux and vulkan).
It’s just Vulkan outperforming DirectX by translating DirectX to Vulcan. If you’re comparing the default experience with Windows and Linux, how can you say Proton isn’t technically improving performance? What would you call that if a performance increase is caused by running through Proton?
As pointed out higher up this thread DXVK and Vulkan also work in Windows (without Proton) were they give performance improvements.
Further, it’s perfectly possibly to run Windows games via DXVK and Vulkan in Linux without Proton - just use plain Wine (of which Proton is a branch) instead - and you also get the performance improvements (certainly that’s my perception in my system since I tend to get my games from GoG instead of Steam when available and thus run them via Wine instead of Proton).
So that’s at least two situations were the performance improvements are present without Proton, hence you cannot logically claim they’re due to Proton, even indirectly.
Logically the place most likely to yield performance improvements is the full implemention of a rendering stack directly on top of the hardward which even has its own architecture - Vulkan - since there’s a lot more room to improve usage of hardware resources at that level, though things like pre-conversion and caching of Vulkan shaders from DirectX shaders, which are done at a higher level (Proton or DXVK), can also improve performance.
It’s possible that Proton itself is delivering some performance improvements (for example, via the trick of, pre-converting shaders from DirectX to Vulkan before game start, uploading the generated shaders to the Steam servers and then other users just download the converted shaders and do not require that step, which should speed up game start tough I have at least one game were it actually can slow down A LOT game start because the generated shaders are massive) versus solutions using DXKV + Vulkan without Proton, but that’s not really enough to sustain a claim that the performance improvements are mainly thanks to Proton in the face of also seing the performance improvements when Proton isn’t there.
So that’s at least two situations were the performance improvements are present without Proton, hence you cannot logically claim they’re due to Proton, even indirectly.
Except these tests were almost certainly being run on SteamOS using WINE with Proton. We can’t know what the numbers would be with any other setup without doing it. Would a Protonless DXVK for WINE run just as well? We can’t know from these figure.
Also, Proton does not require running through Steam. I play Epic, GoG, and otherwise sources games with Proton not through Steam all the time. It’s also more than just DXVK. That’s a big part of it though.
No one is arguing that DXVK isn’t important or anything like that. They’re just saying Proton is a piece of this, which includes DXVK. I don’t know why you’re arguing.
Yeah its wine/proton and linux together. Wine/Proton efficiently handles translating the Windows programmes API calls into POSIX calls while Linux seems to offer a lower OS overhead so there is more system resource available for the games.
I do think Proton gets a little too much credit. Its wine plus faudio, dxvk and other open source projects combined. Proton is great but it is standing on the shoulders of giants.
Agreed. Proton is important as a bit of an “iPhone moment” where all this tech comes together in a way where non-techies “get it” in the sense where they understand why it’s useful, even if they’ll never bother to learn the details of why or how.
I do think Proton gets a little too much credit.
Why? Valve has been sponsoring all these projects for a really long time. While wine existed before that, it wouldn’t be anywhere near the shape thats its currently in because gaming was not its main focus. There have been loads of gaming bugs and sharp edges that have been around wine for a long time until Valve put in the money and devs to fix them.
What does proton do?
I only vaguely understand it as “thing that makes game playable on other thing.”
(And also I have six versions installed on my steam deck whydoIneedsixofthese?)
Proton is the compatibility layer that valve makes that lets you run games on Linux. Proton uses DXVK a program that converts Direct X API calls (windows only) to Vulkan API calls (runs on anything). DXVK alone gives you huge performance benefits (especially on older DirectX 11 and older games) and you can run it on windows.
Proton gives you a ton of other tools that can make huge performance differences.
Hopefully not a dumb question: If Vulkan runs on anything, assuming their game isn’t a Windows (Xbox?) exclusive, why don’t more people program their games to use Vulkan instead?
It’s becoming more common, but it mostly comes down to available tooling. At this point all three of the big game engines have a Vulkan backend available, but that’s a fairly recent development. And if a developer isn’t using a game engine, writing their own openGL renderer is easy, and writing a Vulkan renderer is a nightmare.
Also a lot of old proprietary game engines were written either specifically for DirectX or additionally for DirectX because in the olden times it was the most advanced and compatible rendering software.
Then, those developers move forward in time to work on other engines and focus primarily on DirectX because it’s still good, compatible, and it’s what they know best. OpenGL languished and it took a while for Vulkan to come out, catch up, and standardize their API.
That my friend, is entering operating system politics.
But the TLDR is: resistance to change, lack of support, bribery, a combination of all 3, features, and much much more!
Vulkan is designed to be closer to the metal than something like DirectX 11 or OpenGL, which makes the API more explicit and difficult to use. This means it requires a great deal more care to use properly. And to complicate matters more, subtle bugs that are very difficult to debug are very easy to introduce.
But, this applies mostly to devs who build their own tech. Most of them these days are just using 3rd party engines like Unity or Unreal, so it comes down to whether or not the person making the game decides to check the box to use Vulkan and just how good those render backends are. Engine developers of 3rd party tech have to build their stuff to be as generic as possible. That’s likely gonna add a lot of bloat that might not be fully optimized for every game developer’s use case.
TLDR: It’s tough and time consuming for someone writing it themselves. And for the ones who aren’t, they’re having to place a lot of trust in a renderer that is probably a black box and might be buggy/slow.
Because DirectX is more than a graphics API.
https://en.m.wikipedia.org/wiki/DirectX
A fair amount of what used to make DirectX an everything API has been deprecated, but if you are already using Windows stuff for networking and audio, then you may as well use the graphics APIs too.
I’ll add for completeness that vkd3d-proton handles DX12 titles, and of course OGL and Vulkan are supported natively.
Most simply put, it’s a layer that allows a computer program expecting windows to run on Linux. It isn’t emulating anything, just sorta like translating.
Think of it like a language. Windows speaks English, so a program expects to talk in English. But let’s pretend like Linux talks Spanish. Proton translates the English commands to Spanish for Linux to understand and execute, and then Proton converts the responses back to English for the program.
The big thing though about Proton is that it’s not an additional translation/emulation layer. It doesn’t translate into Spanish for Linux, as that would be slow, it makes Linux talk English.
So in your example, imagine you, the English speaking program, want to catch a taxi in Madrid/Linux but all taxi drivers speak only Spanish. An emulation layer would be “translating”, so you would have an additional guy in the taxi that you could talk to that talks to the Spanish driver. Proton is not that, it’s an English-speaking taxi driver.
Proton uses Wine, which is a Windows system call API translation layer for Linux. In other words, it translates commands for the Windows kernel into calls for the Linux kernel.
So it’s kind of an emulator and kind of not, but regardless the metaphor of a translator is fine. As a lightweight translator, you might say it’s like using Google Translate on your phone to translate back and forth quickly and automatically, rather than having a person in the middle who needs to think about it.
In Software Design terminology, Wine and DXVK are “adaptor” layers (each convert one kind of API interface into a different kind - Wine doing Windows API to Linux API conversion and DXVK doing DirectX API to Vulkan API - and nothing more) whilst Proton is more a controller that just manages those things and adds some more functionality on top such as Steam integration for ease of use.
Without Proton users would have to know a bunch of command lines parameters and environment setup to launch all the right components with the right configuration so that they can first install and then run their Windows game in Linux. In fact this is the situation if you use Wine directly without something like Lutris to do a similar work as Proton.
Personally I prefer Lutris since it’s more flexible - for example I can configure it to run games sandboxed with networking disabled - and it’s not tightly bound to a single games store.
I used to use Lutris, but I found Heroic more consistent and convenient for filling the same purpose. It’s quite good at downloading just the diff needed for GoG game updates these days, for instance, which is key for big games like Baldur’s Gate 3.
I’d say it’s something like a babelfish. You speak English, I hear Spanish.
I think the example you’re using is closer to emulation.
I’m not an expert by any means, most of my technology experience comes from hardware. But Proton isn’t changing the Linux ecosystem, and the programs are still expecting a windows environment when they’re run via Proton.
From what I recall, Linux and windows can both do the same stuff, they just have different names or different ways to ask for resources. And Proton receives the request for whatever and converts it to the Linux equivalent.
It’s not nearly as bad as it was in the past, now that the graphics APIs are system agnostic.
Well, technically speaking, neither would be emulation because both systems are running on x86.
I think it’s what Valve has branded their fork of Wine. It translates win32 calls to Linux ones, and DirectX to Vulkan. Probably some other stuff too idk
Proton is Wine plus DXVK and VKD3D, as well as a big pile of little tweaks and out of tree changes that Valve maintains to specifically maximize game compatibility and performance.
It sounds a lot like what the GPU driver providers used to do (and probably still do, despite all DX12 and Vulkan’s promises of making that unnecessary) on top of making the drivers.
And that is basically “fixing badly written games so they perform well on the hardware”.
As far as I can tell, Intel has been using
Proton’s fixesDXVK to get their drivers working on older games on WindowsDXVK is not “Proton’s fixes”. It exists as a separate entity whose development Valve has helped fund and who Valve devs have directly contributed to.
Proton’s fixes are out-of-tree tweaks to DXVK, Wine and VKD3D that, put together, make games work much more seamlessly and smoothly than they otherwise would.
For every game that you claim runs worse on Proton you can find dozens that run better or at least as well as Windows.
I also wonder how much of it is RADV vs AMDGPU drivers. Wonder what the result would have been if the Deck used the AMDGPU drivers instead. Saying it is just “the magic of Linux” papers over a lot.
I think it doesn’t really matter, in the end the question is, do I get a better experience as a consumer on Linux or Windows?
I’m not sure what you’re saying. Proton is incredible obviously, but by itself it doesn’t make games run better. Using vulkan instead of DirectX could improve performance, but presumably most of the performance gain is from not running windows in the background.
It’s a bit of both, along with the Linux AMD drivers being superior in many cases to the Windows drivers.
Goes to show how much bloat is in Windows that it kills hardware like this.
Maybe I need Cortana, Microsoft Excel, and OneDrive while I play Doom Eternal. You don’t know me.
Me looking up from my speed-running Excel sheets: “what”
Thibking bout that time a discord admin told me windows and linux use the same amount of resources and she knows cause she works in it.
Well yeah duh windows and Linux use the same resources. I don’t put more memory in my computer when I boot into Linux…
A performance uplift plus double or tripled battery life compared to running on Windows…hot damn that’s impressive.
Get rekt Windows.
What’s nice is that Microsoft today doesn’t have capability to improve in the short or even medium term. They could drop a billion dollars into it and it would still take them years to improve their offering, if they can at all.
Because they aren’t just optimizing for gaming.
Any change they make would influence their other markets as well, like general and office use.
They made an attempt. It’s called Windows RT. It’s a sandbox more locked down than iOS.
The Win32 desktop environment isn’t built to support stuff like “timer coalescing” for all the API calls which all the software is designed to run continously in the background. Changing how it idles would change so many things which all kinds of software depends on that it would barely be the same OS anymore.
Realistically the design goals of a gaming OS vs a general desktop OS aren’t that different. You want to balance performance, batterlife/power consumption, and making sure it withstands insane abuse by users and software doing anything you could never imagine that nobody should have ever tried to do. About the only design goal that separates SteamOS from Windows is fleet manageability features
You are forgetting backwards compatibility with ancient software that Windows still supports after 30+ years.
A lot of businesses need that in order to function.
It’s worse than that. MS could quickly turn the boat around. They have the cash. They have the manpower (well, have recently fired). The only thing they don’t have is THE ABILITY TO THINK ABOUT ANYTHING BUT AI AI AI AI GOTTA HAVE AI AIIIIIIII. The brainrot has eaten Nadella, and eaten the whole board.
I’d wager they could cut a lot of cruft from a handheld gaming device specific version of Windows.
I bet Antimalware Service Executable is still randomly springing it’s way to the top of task manager in this build. All sorts of crap that just doesn’t need to be running. On my PC right now I can see Service Host: DNS Client at 1-4% all the fucking time. Random driver update checks that run in fucking Electron for some godforsaken reason. That kind of shit.
Valve won. Maybe it’s lucky timing, or maybe Gabe is actually a genius, but it’s only going to get worse for Windows as there is no way in hell Microsoft shifts resources from AI projects to make Windows better for PC gaming. Recently, Capcom announced that their PC gaming sales surpassed their console sales, and I don’t think it’s likely we’ll see that trend changing, and it’s also likely other publishers will make similar announcements soon (although idk if they count SteamOS as a console). The Switch 2 is coming out soon, but people already say it’s too expensive, and there are controversies surrounding some of their product decisions.
Will this bring about the era of the Linux desktop? Idk, but the era of the Linux gaming PC is inevitable now.
Will Steam do for the gaming PC what porn did for the internet?
Windows Gamers (who will never switch to Linux): Linux still isn’t ready for mass adoption
My partner and I have been transitioning to Linux over the past month or so, dual booting for now.
Linux still isn’t ready for mass adoption.
Even gamers do more than just game on their PC, though.
That’s fair, but unless what you do requires windows in some way (like, say, Photoshop), Linux tends to be better for productivity as well, if you learn it
But of course, I understand that it takes some upfront work and learning to change your workflow, so I don’t blame people for not doing it
i’m using photogimp and haven’t looked back, it’s surprisingly robust
Sure, but they are comparing SteamOS, which is a stripped down OS that does not have all the capabilities of a full Linux OS.
Just try using any photo editing software on SteamOS. Even ones compatible with Linux.
Most people dont use Windows because its compatible with more software, they use it because thats what their computer came with. If computers just starting shipping Linux then software will come.
Most people just need a web browser for most of their needs, unless you have a need for a specific software that’s Windows only and doesn’t have a good Linux alternative,
It’s gotten so seamless now, and wine has gotten pretty good. I can download a Windows executable, double click it, go through the regular Windows installer, and then have it make a shortcut on my desktop which will launch it.
Your average user won’t even know all the Dark Magics making it possible, or that they were supposed to have looked around for a Linux alternative, it just works
I personally like using my Legion Go for LLM training /s
I’m still waiting for games with big anticheats to run on Linux. Until I can play Fortnite with my nephew on Linux I won’t swap over.
Unfortunately the Epic CEO is explicitly blocking Linux. Fortnite runs, but he doesn’t like Linux.
Holy shit triple the hours
Finally an extra 3 1/2 hours of… dead cells? 3 more hours of… FPS? the hell is this graph?
Battery Life:
So I’m not insane. Monster Hunter Wilds and Helldiver’s II both run better on my Ubuntu image with the same hardware than my Windows 10 image.
Does that mean that Proton and Vulkan are far more efficient than Direct3D?
I think there’s in play also background activity from Windows’ bloat.
Probably this. Especially on low end hardware that doesn’t really have a lot of background resources to give.
Just open task manager and see all the shit windows thinks is essential to run all the time. Scanning the drive for viruses, downloading updates for shit you’ve never even looked at…
They say I/O schedulers on Windows are weird.
Edit: or was it CPU schedulers? I’m sure i’ve read something about this forever ago.
Yes/no.
The linux scheduler is a work of art - heuristics to dynamically determine resource access priority, checks for resource locking that are some of the most elegant pieces of code written by humanity, incredibly adaptable and clever. It took me the better part of a year before I really understood the underlaying mechanics, and even now I could by no means reproduce it on my own. It’s truly an amazing bit of mathematics.
…
Windows solves the same problem by randomly elevating processes to maximum priority. That’s it, that’s the whole algorithm.Depressingly, they’re equally effective.
You’d think anyone techliterate would disable the bloat.
My understanding is that vulkan is generally more efficient than directX.
i expected a small performance hit.
this is actually very impressive considering it runs through a compatibility layer.
They said make electric cars fast, and you’ll get car guys to buy in. It was true.
Now they’re making linux make video games faster and prettier…
I dont know if there will ever be a year of the linux desktop, but this is the kind of stuff you gotta do to get there.
Back in ~2010, my first dual boot was an Ubuntu. It was fairly easy to run WoW from Linux and it gave me a solid >15fps while Windows ran at less than 10fps.
I was very young at the time but still aware that this was super impressive with extra compatibility layers. That definitely took part in selling Linux to me.
I could barely get Minecraft to run 20fps on this old laptop I had given to me a few years ago. Loaded Ubuntu on it and Minecraft ran near 60fps. Blew my mind.
Pull the DE out and you could probably squeeze that performance out on a modded instance
I am a little curious how something like Ubuntu would do on one of these gaming handhelds. Steam OS is a nicer user experience but I always wonder if it also adds any significant optimization.
I think you’re a bit better off with SteamOS’s gamescope rather than going through gnome-shell.
What do you mean? It’s just steamos is arch linux with a fancy suit.
Arch can be configured many different ways.
iirc the original SteamOS for the SteamBox was Debian-based (like Ubuntu), i think they switched it to Arch since it moves a bit faster and offers a bit better compatibility.
No, they switched because Arch has a rolling release
i know but it’s a thread full of windows gamers and that’s more or less the important takeaway for them. i know there’s a lot more to it than that.
Potayto potahto
Linux Dev’s anti Sony bias shows front and center
/s
Sorry, what’s this got to do with Sony?
The only game in the main post photo where Windows beats Linux is Spiderman 2, published by Playstation Publishing, owned by Sony.
Ah, I missed that. Thanks for explaining 👍
Read the charts?
Notice any difference in the results?