← Back to context

Comment by haswell

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

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.

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

    • These ports are also not usually source ports, so they're not much "more native" than the Proton ports. They often use the same kind of API translation layer, probably also built on WINE. I think as Proton sees more investment and becomes more advanced, it's probably becoming difficult for competing compatibility layers to keep up.

      A source port that is optimized as lovingly as its Windows counterpart will probably be faster than the Windows version running via Proton, but the incentives aren't generally there to justify the costs/difficulties. Maybe some day it will be! That would be wonderful.

      But until then, Proton seems like an increasingly compelling option for these compatibility layer-based ports of Windows games.

      2 replies →

    • They probably QA mostly for windows, so they run into bottlenecks and edge-cases of windows APIs during QA. Linux-native APIs probably have different bottlenecks and edge-cases.

      I think the reimplementations of Windows APIs in Linux, even though alternative to the original, should have similar bottlenecks and edge-cases. So the extra QA on Windows helps the Proton version more.

    • To be you should compare the windows version on windows, no proton against the Linux version. DXVK, which proton uses, makes some games run better in windows than "native".

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

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

      > HDR

      Already supported

      > Nvidia GPUs

      You have it the wrong way around. NVIDIA had issues supporting Linux, not Linux supporting NVIDIA. AMD drivers work fine, so its not a linux specific issue.

      > VR

      SteamVR works though?

      9 replies →

    • It's getting there though. I own a high-end PC with nvidia GPU and I play VR on my Linux setup via ALVR (I own Quest 3) It's not straightforward and full of workarounds I have to do, but once you're in the game it works great

      2 replies →

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

    • Happens with whisky and macos in my experience. It is like as soon as a game is installed and you do something like chuck a grenade, no explosion the first time ever you do that.

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

    • I have a 65 watt ryzen 9 system on chip (8945hs, I think) minipc and make heavy use of it for linux gaming.

      My guess is that Nvidia’s linux video drivers are still substandard.

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

    • FSR does indeed increase the performance a lot, before FSR 4 with a significant cost to image quality though.

      For your system, the integrated graphics should also be quite capable. More so on Linux, thanks to the driver advantage AMD has here.

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.

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

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

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

    • Try running xwayland-satellite in another WM like Niri and see if it works there – for example, Gamescope didn’t work well on Sway, crashing as soon as Steam tried to spawn another window, but it’s working fine in Niri.

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.

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

    • Yep, compression is on and I think that's what does it considering how large games are these days.

      I stay away from XFS, every time I have used it in the past my entire drive have ended up scrambled within a few months. It's by far the worst file system I have ever used, not even FAT32 was that unstable for me.

      1 reply →

    • From experience having an L2ARC SSD, especially if it's nvme, can really help with zfs performance. I'm curious if they have that in their setup.

      1 reply →

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

  • 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 
      }

    • Hm, i tried it and i could set up the higher refresh rate but Niri was forcing vsync on the game that capped the framerate to my monitor's refresh rate (165Hz) even though in the game i have vsync disabled. This seems to be an issue with Niri as KDE Plasma Wayland disabling vsync works fine.

      At "ultra" settings i got around 115fps which is ~5 fps lower than 117-120fps i got from Xorg/Window Maker and KDE/Wayland, though i'm pretty sure that was just the forced vsync, so in practice it seems that the window system doesn't matter much.

      Did you use XFCE's desktop compositor? AFAIK XFCE's compositor isn't particularly great, some years ago when i was working on a custom game engine i had to add an explicit option to use the X11 "override redirect" flag instead of the window hint for fullscreen windows because XFCE's compositor wouldn't disable itself otherwise and the game would feel a bit laggy/inconsistent. Not sure if this has been fixed nowadays but in general it gave me a bad impression for XFCE's compositor as other compositors didn't seem to have the same issue.

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

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