• T. Hex@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    11
    ·
    23 hours ago

    I always wonder whether that’s because it’s doing less… like some graphics feature that isn’t supported might just no-op in Wine.

    • cley_faye@lemmy.world
      link
      fedilink
      arrow-up
      13
      ·
      22 hours ago

      Nah. I mean, there might be some stuff like that, but nowadays, I’d be surprised if feature parity wasn’t 1:1 (or even better, with some open source drivers having features that are removed from official windows drivers…).

      The underlying OS is pure garbage, that’s mostly it. Windows will start chugging everywhere with even moderate FS activity: running a background, single-threaded backup process will sometimes make it impossible to click in another window or open a new application. Driver API is not great, you have to jump through hoops to do basic stuff. There are many ways to do the exact same thing, each being more or less efficient than the other. Audio API is so bad, an audio device failing will sometime cause ohter, unrelated, non-audio application to spontaneously combust.

      And so on and so on.

      On the other hand, the Linux compatibility layer that proton provides do add some overhead in places, but surprisingly, it’s not that much overhead. And it’s not that common (basically, the code runs natively until specific instructions that requires special handling).

      Obviously, when you have a better operating base, and very little extra overhead, software tends to run smoother.

      And all that is not taking into account optimisation to Linux system themselves; there’s been a lot of improvement in technical stuff for graphic drivers (especially on AMD side, but not exclusively), the kernel itself can get improvement in its handling of IO and memory, the whole thing is more flexible, etc.

    • Kairos@lemmy.today
      link
      fedilink
      arrow-up
      11
      ·
      23 hours ago

      It’s because Windows is bloated. A lot of games rely on the CPU to deliver frames. If the CPU is congested so are the frames.

    • zalgotext@sh.itjust.works
      link
      fedilink
      arrow-up
      5
      ·
      23 hours ago

      It’s usually because of all the other bloat running on Windows. Just various background processes on Windows will eat up like 10G of RAM just idling, where most desktop Linux distros I’ve used will use 2-5G idling. Having a few extra gigs of RAM available can make a noticeable difference.

      I feel like system calls in the Linux kernel are just more efficient/faster than system calls in Windows. Windows system calls have decades worth of compatibility layers all cobbled together for business reasons, whereas I don’t think the Linux kernel suffers from that same problem.

      And that’s not even mentioning the multiple layers of absolute voodoo black magic wizardry that is Vulkan (Linux graphics API) and DXVK (a translation later that translates DirectX calls to Vulkan calls). Those are some absolutely incredible pieces of software, and deserve a ton of the credit as well.

      I don’t really think Linux is faster because it just injects noops sometimes though lol. You’d definitely be able to notice if part of the graphics pipeline was just… skipping enough steps to make a noticeable performance difference lol