Readit News logoReadit News
haswell · 2 months ago
In my purely anecdotal experience over the last few years, performance ranking is as follows:

1. Steam on Linux via Proton + Wayland (Niri)

2. Steam on Linux via Proton + X11 (Xfce)

3. Steam on Windows

4. Games on Linux launched via other means (it's possible I was missing out on certain flags/optimizations, but this is just about the average experience)

The biggest thing I noticed when switching to Linux was an improvement in framerate consistency, i.e. I'd have fewer situations where the framerate would drop momentarily. Games felt more solid and predictable.

The biggest thing I noticed when switching from X11/Xfce to Wayland/Niri was just an overall increase in framerate. I'd failed this jump many times over the years, so it was notable when I jumped and stayed there earlier this year.

It does feel like games take longer to launch on average, but this makes sense given the fact that it's launching via Proton/Wine.

thewebguyd · 2 months ago
Interestingly enough, I've had games that had both a native Linux port and Windows version, and the Windows version through Proton ran better than the native Linux version. This ended up being true for Civ5, Civ6 and Cities Skylines (1).

With those admittedly limited examples though, I don't experience the same ranking in performance, but I attribute that to my non-gaming hardware vs. any problem with Linux or Proton/Wine. I play on a laptop with an Nvidia 3050 laptop GPU, and I get much better performance in Windows still. In Cities Skylines, for example, I'll get ~20 fps on Linux via Proton (but I do experience what you said, it's consistent no major spikes or drops) while on Windows I get between 45-60fps up until about 15k population or so.

Other games, despite working, remain unplayable to me due to performance. I can play Diablo 4 on windows no problem on medium settings, but even on low it's just too unresponsive on Linux.

Anyway, just my anecdotal experience. Those with dedicated gaming rigs will be more than fine with Linux, but those of us on underpowered hardware still seem better off with Windows, unfortunately.

nialv7 · 2 months ago
Linux port if there is one is usually done by a third party porting studio, which is not necessarily at the same quality as the original codebase. Also the devs just don't have the manpower/bandwidth to spare for Linux users given how small this community is.

It's better value for money for both the gamers and the devs if the devs just choose to engage with valve and get their game running perfectly under proton.

umbra07 · 2 months ago
> Anyway, just my anecdotal experience. Those with dedicated gaming rigs will be more than fine with Linux, but those of us on underpowered hardware still seem better off with Windows, unfortunately.

On the other hand, Linux (or more accurately, the Linux desktop ecosystem) doesn't support a lot of high-end PC gaming features well: HDR, Nvidia GPUs, VR, etc.

baobun · 2 months ago
I wonder of this might be due to your Linux nvidia driver (nouveau?) pinning the card on baseclock by default while the Windows one will allow it to scale up? Something I heard somewhere that seems applicable here.

In that case it might not be anything the game devs or Steam can do anything about but something you'd have to fiddle with on your system.

haswell · 2 months ago
> Those with dedicated gaming rigs will be more than fine with Linux, but those of us on underpowered hardware still seem better off with Windows, unfortunately.

That’s interesting and good to know. I’m running an 10th gen i9 with an RTX 3090, so I have plenty of headroom performance wise. I’ve been wondering about Linux gaming on lower end hardware for my younger brother’s sake, and hadn’t assumed it would be worse.

One thing to note: I’ve had all kinds of issues with power management impacting performance. If I let the computer sleep/standby, I’ll get 50% slower framerate until I reboot.

Given the fact that you’re on a laptop, I wonder if power management has contributed to the slowness.

whoisthemachine · 2 months ago
I have a laptop with the same GPU, and Diablo 4 runs really well out of Lutris. Graphics version 570, and the CPU is an AMD with a Radeon 680M integrated. I often play games with FSR on, which probably keeps performance higher?
0x38B · 2 months ago
Side note, Niri is a fantastic WM. When I saw the Phoronix article on HN talking about the addition of overview mode and more, I finally took the plunge and spent an afternoon converting over from Sway.¹ Anecdotally, I've seen less hangups on Niri around fullscreen games and floating windows, perhaps thanks to X11 running in xwayland-satellite.

1: the hardest part was finding a bar that supported i3status-rs; not a fan of GTK bars that eat up CPU. I settled on i3bar-river.

ChocolateGod · 2 months ago
> X11 running in xwayland-satellite

I wish more Wayland compositors took this option, seems like a cleaner method of keeping X compatibility and not allowing Xwayland to bring down the entire compositor.

haswell · 2 months ago
I've been so happy with Niri after many many years bouncing around other WMs. It addresses the main issues I've had with other tiling window managers and has been such a joy to use.

The scrollable aspect just feels so natural and intuitive to me.

rendaw · 2 months ago
Steam won't launch for me in xwayland-satellite here... I just assumed steam+wayland = broken. I have a kind of weird setup using sway with xwayland disabled and running xwayland-satellite though.
chillfox · 2 months ago
Been a Linux gamer for years now and I think you are correct on your frame rate observations in general.

If you use ZFS (single nvme) then you can beat windows load times by a fairly large margin. My husband and I have identical hardware for our gaming computers (he uses Windows and I run Linux), it's not uncommon for my computer to load games 10 seconds faster than his.

jcgl · 2 months ago
Why do you think ZFS helps? I’m guessing you have compression turned on? IME, ZFS is rarely better in terms of raw performance, compared to e.g. XFS.
p_ing · 2 months ago
Has he tried DevDrive in async mode or with filters disabled entirely?
badsectoracula · 2 months ago
> The biggest thing I noticed when switching from X11/Xfce to Wayland/Niri was just an overall increase in framerate.

Was it with any specific game? I just tried the GOG version of The Witcher 3 "Complete Edition" (which is the remastered one) with the Direct3D 12 renderer under both Xorg/Window Maker and Wayland/KDE using umu-run (essentially proton without Steam) and it had identical performance in both cases (i also tried to use Niri but it would launch in 60Hz mode and for some reason wouldn't allow the game to run at a higher framerate with vsync disabled regardless of any option i chose) in either low or high settings (which is basically what i expected since the window system shouldn't be a bottleneck unless something is either broken or you are running at something like 20000fps :-P).

haswell · 2 months ago
Some of the games I play often that saw improvements: The Finals, Overwatch, Rocket League, Helldivers.

> (i also tried to use Niri but it would launch in 60Hz mode and for some reason wouldn't allow the game to run at a higher framerate with vsync disabled regardless of any option i chose)

I had some issues early on related to refresh rate, and it turned out I didn't have an output defined for the correct display. The steps I took:

1. Run `niri msg outputs` to identify the Display ID and available modes. In my case: "DP-3" and "2560x1440@143.964"

2. Set up an output in niri's confid.kdl as follows:

  output "DP-3" {
    mode "2560x1440@143.964"
    variable-refresh-rate 
  }

andy12_ · 2 months ago
Is there a way of making wayland actually usable with Nvidia GPUs? I never manage to make it work, and it makes the whole system feel slow and sluggish compared to X11
ChocolateGod · 2 months ago
Try avoiding the open source kernel modules, I had a similar issues.
diggan · 2 months ago
> It does feel like games take longer to launch on average, but this makes sense given the fact that it's launching via Proton/Wine.

Also anecdotal, but I feel like Steam games on Linux compile shaders on the CPU, and maybe not super optimized, compared to Windows where they either ship with precompiled shaders, or it might use the GPU?

Still, the very same games runs better on Wayland+Linux too for me, than on Windows, way less stutters in particular as you mention.

But I'm not sure if it's because of OS differences, or that it's so much easier to end up bloating a Windows install. I can't say I treat them the same, as one is mostly a work environment and the other one purely entertainment and creative usage.

shmerl · 2 months ago
Try winewayland + Wayland.
jekwoooooe · 2 months ago
The last missing piece for full Linux gaming is anticheat. Last I looked into it, the major vendors don’t want to support it due to lack of kernel security and the ones that do, game devs refuse to allow it (destiny for example)

One we can play AAA games I am literally ditching windows forever. Steamos is the best thing that has happened to gaming

TheCraiggers · 2 months ago
Anti-cheat today is a stop-gap measure at best. For various reasons such as improved OS security and security concerns with this software, ring zero anti-cheat won't be around forever. Besides, it's a cat and mouse game where the vendor is the mouse.

We already have the technology now to do it better. A combination of only sending what info a client should have, and server-side checks. As soon as something like UT ships with that built in we can hopefully forget about this horrible hack we currently have to check for cheats.

armada651 · 2 months ago
> Besides, it's a cat and mouse game where the vendor is the mouse.

The goal of anti-cheat isn't to stop the world's most advanced cheaters. Those are already unstoppable because they now use Direct Memory Access over the PCI-E bus, so the cheats don't even run on the same computer anymore. However since those cheaters are few and far in-between they can be handled through player reports.

The goal is to stop the mediocre cheater who simply downloaded a known cheat from a cheating forum. If you don't stop those you'll get such a large wave of cheaters that you can't keep up with banning them quickly enough.

hypeatei · 2 months ago
As long as games are running on user hardware/OS, you'll always deal with cheating. Server-side checks and computation can only go so far.

For example: in competitive shooters (where cheaters are most prevalent) you can't have things appearing out of thin air. The client needs to know about things ahead of time to play sounds and to give other environmental hints.

chithanh · 2 months ago
> Anti-cheat today is a stop-gap measure at best. For various reasons such as improved OS security and security concerns with this software, ring zero anti-cheat won't be around forever.

I think that traditional kernel-level anticheat is going away. But the reason is more that when CrowdStrike caused mass outage, Microsoft stated that they want to provide standard interfaces for security sensors, and forbid kernel-level access otherwise (and anticheat can be considered a kind of security sensor too).

If these interfaces become standardized then Valve/Linux could in principle implement them too.

NoPicklez · 2 months ago
It might be a cat and mouse game, but that doesn't mean we shouldn't be trying.

Any anti-malware software ends up ultimately being a cat and mouse game, but that doesn't mean we stop updating our signature updates.

jekwoooooe · 2 months ago
The goal isn’t to stop 100% of cheats but the majority of them and that’s fine. Either way, it’s the only thing stopping me from playing the rest of my games on steamos.
Cloudef · 2 months ago
Multiplayer games without dedicated servers is dead end anyways. I dont need a "anti-cheat" daemon hooking into kernel scanning files and other memory while playing a game. Communities in dedicated servers are much more efficient at moderating the player base than centralized match making ever will be.
SchemaLoad · 2 months ago
This is where I'm at with gaming. Even outside of cheating, it's not fun to me to be dumped in a game with screaming children/manchildren. If I'm playing a game I want it to be with my actual friends. And then I don't have to worry about them running cheats because I trust them.

Once you get to match making, global ranks, etc it's just getting too sweaty and ruined by cheating/low trust/etc.

ThatPlayer · 2 months ago
Communities with dedicated servers include anti-cheat though. Most people aren't interested in spending time moderating a player base: they'd rather just play the game. So server admins use anti-cheat.

You can see this in existing games with current games with community servers. GTA V's modded FiveM and CS2 Face-IT include more anti-cheats, not less.

kgwxd · 2 months ago
Yeah, but it's very time consuming/impossible to find similarly skilled players for a fun lobby. The only competitive game I care to play on Linux is Rocket League, which is nearly impossible to cheat at, so it doesn't currently have anti-cheat, but I wouldn't be surprised if Epic decides to put their beloved EAC in it at some point anyway, maybe even just because they hate Linux so much.
jekwoooooe · 2 months ago
They really aren’t. I used to think that but I actually enjoy skill based matchmaking. It makes game availability better and faster and I don’t have to deal with 1 outlier absolutely stomping or overzealous admins or whatever. I like both approaches though for something like battlefield I think dedicated servers are better but for things like cod, siege, etc we need sbmm
SirMaster · 2 months ago
Ho do you do proper matchmaking and ranking up and progression etc with dedicated servers?

I want good balanced matches with players of my similar skill level via matchmaking.

bsimpson · 2 months ago
It's also an anticompetitive red herring, at least for Epic.

They say they don't support Linux because it's too complicated to be worth the ROI. Really, it's that they don't want to boost a platform where Steam is far and away the default store.

WorldMaker · 2 months ago
This is especially relevant to note because Epic bought and owns Easy Anti-Cheat (EAC) one of the currently most popular anti-cheats in AAA.

ETA: EAC still supports Linux gaming today, but the rumors remain that Epic could remove that at their whim.

happymellon · 2 months ago
Epic are a hostile company.

Just avoid it.

mystified5016 · 2 months ago
Missing anti-cheat is a feature, not a bug. Linux not allowing games to install kernel malware is a good thing.
ladyanita22 · 2 months ago
Linux definitely allows it.
0x38B · 2 months ago
This is problem for me and my brother right now. He's up at a remote job site and we want to play Siege or Apex together¹, but both require anti-cheat and don't support Linux. And I'm loathe to devote space on my SSD to Windows.

¹: Rainbow Six: Siege and Apex Legends, respectively.

akimbostrawman · 2 months ago
>the major vendors don’t want to support it

The two most popular ACs by far are Easy anti cheat and Battle eye which have natively supported Linux for years, but it is entirely up to the game devs to enable it.

About 40% of all games with AC are working areweanticheatyet.com

alex77456 · 2 months ago
There are rumours of next xbox generation supporting steam platform and 386 architecture. I know it's a bit off topic, but it could be an elegant solution to the cheating problem, gradually move to standardised consoles. This could solve the dma problem too
preisschild · 2 months ago
AFAIK most anti cheats such as BattlEye actually work under Proton, but the Game Developers have to write to the Anticheat vendor that they want to opt-in into allowing Proton.
ryukoposting · 2 months ago
Don't forget the ancillary applications that gamers want. If you follow Discord's website, you're gonna end up installing a DEB file manually. Then, every couple weeks, Discord won't launch until you go download another DEB file and install that. Oh, and good luck getting Discord screen sharing working on Wayland. I tried for hours, gave up, and switched to X11. So, just in Discord, we've already run into two hideous workflows that no Windows native is going to take in stride.
danielbarla · 2 months ago
And certain types of games have a _ton_ of ancillary applications. For flight simulation, I rely on 2-3 additional contollers, some of which I am fairly certain either won't have driver support, or at the very least will have some major issues with the GUI and configuration.

Then, there are things like head tracking which are either another dedicated peripheral which may or may not get drivers, or a set of apps which feed from a webcam and output the signal to a standard driver that games know to check for.

Finally, most 3rd party add-ons have custom installers, and I'm guessing most of them won't have a working Linux version. So, while I'm sure it's possible to run, say, a vanilla X-Plane on a non-Windows installation with no peripherals/apps/add-ons, I just see a mountain of work to get a normal, heavily custom installation working.

The_SamminAter · 2 months ago
Discord is shipped in a number of package managers (I don’t know the status for mainline apt repos).

I know that this isn’t an easy solution/doesn’t go against your argument, because it isn’t download-and-run simple, but discord’s version can be modified with no consequences in a build_info.json file. I used to do it manually, back when they updated it every once-in-a-while, but due to their current tendency to push updates every few days or so, I’ve made a few-line bash script to fetch the latest version (thank you httptap) and patch the file for me. For screen sharing, I use whatever current discord client on GitHub supports it for Wayland, which usually has the added benefit of not limiting quality and framerate options.

But yes, you do have a point, it’s not just ‘as simple’ as it is under Windows - when Windows works properly.

Ferret7446 · 2 months ago
...why? Discord is available via flatpak.

It Just Works.

WorldMaker · 2 months ago
It's funny because one of the OG draws to Steam back in the day was because Counter-Strike (et al) had the superior Valve Anti-Cheat (VAC) in Steam copies than the myriad of raw CD installs of HL1 plus the mods to run Counter-Strike.

This missing piece is sort of a fun "whatever happened to VAC and why hasn't it kept up with the times?"

It seems like Linux would be a good excuse to reinvest in VAC and make it a bigger competitor to the current favorites like Easy Anti-Cheat (EAC).

boston_clone · 2 months ago
interestingly, I have no issues with the anti-cheat within Marvel Rivals; however, games that embedded an anti-cheat prior to the steam deck popularity don’t work as you described (PUBG, apex legends).
JeremyNT · 2 months ago
Don't discount peripheral support. I've got some pieces of hardware that are only kinda-sorta supported in Linux.

Not a big issue if you're just using kb/mouse/controller but you can get into the weeds with VR, flight sticks, wheels, etc.

sitkack · 2 months ago
Given that Windows games run faster via Proton on SteamOS, developers should prioritize targeting SteamOS APIs—not Windows. This ensures compatibility with Windows while maximizing performance. Game engines like Unity and Unreal must adopt SteamOS as the primary target, with CI systems rigorously testing both platforms. SteamOS, not Windows, should be the baseline for optimization.

Does Valve run a SteamOS CI/CD farm? I could see a Rust based template and library for calling into this set of APIs that you could upload your well structured project and it would build and test for all platforms. Rust would just be the skeleton, your game logic could be in anything Rust could link to.

SchemaLoad · 2 months ago
I'm not sure that makes sense since the Windows API is the source of truth for how something works. If you make a game that works on Windows but not in Proton, Valve will push a fix that makes Proton work the same as Windows. But if you make your game work with Proton, but not Windows, you are relying on some quirk of Proton which isn't guaranteed to work in to the future and as soon as something else needs it to work the same as Windows, your game will break.

Test your game to make sure it works on the Steam Deck and avoid features that don't work on Proton, but you still have to primarily target Windows.

sitkack · 2 months ago
You would need to test on both of course. I am arguing that one should target the fast happy-path on Proton as Proton is a subset of the Windows APIs that runs faster than Windows.
p_ing · 2 months ago
The only stable ABI on SteamOS is Win32. Targeting anything else is asking for it to break over time.
meibo · 2 months ago
Valve actually ships "stable ABI" Linux runtimes that Linux games and Proton are built against, so that they don't have to rely on distribution packages, similarly to Flatpak. They renew them every few years but they stay stable so that games built against a specific runtime keep working.

https://github.com/ValveSoftware/steam-runtime

sitkack · 2 months ago
I only referred to the API as exposed by Proton, no argument was made for targeting a different ABI.
fybe · 2 months ago
Not sure Epic, who owns Unreal engine would be happy with optimizing for SteamOS and its API's after the whole debacle with Epic Store vs Steam.
MindSpunk · 2 months ago
Ignoring that, you know, 99% of users are running Windows and not SteamOS. Test on what your users run. Proton is just an implementation of Win32, you're still just targeting Windows.
Jach · 2 months ago
Only 95.45% now (https://store.steampowered.com/hwsurvey) but yeah.
runako · 2 months ago
Back in the Windows XP days, I discovered that running Windows in a VMWare VM, hosted on Linux, was faster than running the same version of Windows bare on the same machine.

I never came up with a good explanation for that.

userbinator · 2 months ago
Cache.

Disk cache, to be precise.

AbuAssar · 2 months ago
please elaborate
Havoc · 2 months ago
Recently switched as well (Arch not steamOS, which is arch based) and it's been pretty solid.

Not out of box - games require mild tweaking but nothing wildly challenging. Add parameter to launch command line etc. The proton database & comments on there usually explain what tweaks the game needs

Don't think I'll switch back

vel0city · 2 months ago
Some of these games are practically neck and neck for performance. I'm wondering if it's a similar situation to early Proton comparisons, where framerates were higher in Proton but when comparing still for still you could tell it just wasn't actually doing certain effects. Are there features that are being attempted in the Windows version that are just not functional and thus effectively disabled on the Proton one?

But even then, assuming that is true, if they're pretty much the same would people care about maybe some fog looks a little different but you get an extra 15-20fps in a game? I think a lot of people would still prefer the boost in frames.

brirec · 2 months ago
To my knowledge, this hasn’t been the case for years, and I’ve never noticed any extra visual glitching on Linux.
PaulHoule · 2 months ago
Might be unfair to call Proton a "translation layer" because the Win32 API is not defined in terms of system calls but rather a set of functions exported from a DLL.

Proton supplies a DLL that implements the Win32 API using Linux syscalls. Windows supplies a DLL that implements that Win32 API using Windows syscalls that you're not really supposed to use directly.

homarp · 2 months ago
https://www.winehq.org/ calls it a compatibility layer that translates calls on the fly.

so 'translation layer' is not that unfair.

Sammi · 2 months ago
Clearly they don't want to come out and say that Wine is an "implementation of windows apis", because that would invite legal issues. But clearly this is what Wine really is for a large part. Some stuff are just shallow shims to Linux apis, while other stuff they need to make more of their own implementation of.
PaulHoule · 2 months ago
If it is forwarding to libc() as opposed to syscalls directly than maybe ‘translation’ is fair.
Fluorescence · 2 months ago
I really have to respect Wine's persistence (with Proton's help).

For so long it was one of those "and now you have two problems" technologies and now it looks like it's the slow blade that could actually kill Windows.

randomNumber7 · 2 months ago
Does it implement sscanf() with accidental complexity of O(n^2) for compatibility?
shmerl · 2 months ago
Wine is translating Windows ABIs (not APIs) into underlying Linux OS and userland. Translation simply means that normally Windows ABIs are meant to be used on Windows, they aren't native on Linux.
Cloudef · 2 months ago
Proton/wine also implements many of those NT syscalls because windows programs do use them directly as well
fithisux · 2 months ago
There is also NanoX. Not fully Win32 replacement, but I think it is a good start.
anthk · 2 months ago
Wine/Proton it's just another Win32 implementation for Unix. Win32 it's a subsystem on top of Windows NT too.
WorldMaker · 2 months ago
Also, most games are still 32-bit EXEs, so on most PCs today they are running not just in the Win32 subsystem, but the WOW64 subsystem (Windows-on-Windows 64) the compatibility layer of running 32-bit Windows applications on top of 64-bit Windows and its Win32 subsystem (it's still called Win32 on 64-bit, an unfortunate naming bug from massive compatibility break differences between Win16 and Win32 that didn't exist in the 64-bit transition, 64-bit didn't get a new API subsystem, it just upgraded the existing one, mostly).