3 ms·
Before anyone gets too excited about ntsync, the performance gains are (with few exceptions) mild, usually in the lower single percentage range. These extreme g
by watashiato 6mo ago
Before anyone gets too excited about ntsync, the performance gains are (with few exceptions) mild, usually in the lower single percentage range. These extreme gains are the result of benching against vanilla wine without fsync, anyone playing demanding games on linux would have been doing so using fsync. This is mentioned in the article but treated like a side note. I've been running benchmarks between both and while the performance increase is real, please temper your expectations. A few titles might also run slightly worse.
- akdev1l 6mo ago>These extreme gains are the result of benching against vanilla without fsync, which is what anyone gaming on linux uses Not for anyone using a kernel without these patches. Which would be most people.
- foresto 6mo agoMost people? What mainstream Linux distros ship without fsync or esync support?
- akdev1l 6mo agoWell I can tell you that if it didn’t make it upstream Fedora didn’t ship it. It looks there was a copr for a custom kernel-fsync and projects like Bazzite or Nobara are adding patches. From my understanding the fsync patches were never upstreamed.
- foresto 6mo agoThe common gaming-focused Wine/Proton builds can also use esync (eventfd-based synchronization). IIRC, it doesn't need a patched kernel. The point being that these massive speed gains will probably not be seen by most people as you suggest, because most Linux gamers already have access to either esync or fsync.
- akdev1l 6mo agoMaybe you are right about esync but anyway I would also gather a lot of people don’t have that either. At least personally I don’t bother with custom proton builds or whatever so if Valve didn’t enable that on their build then I don’t have it.
- foresto 6mo ago> if Valve didn’t enable that on their build then I don’t have it. The Proton build is Valve's build. It supports both fsync and esync, the latter of which does not require a kernel patch. If you're gaming on Linux with Steam, you're probably already using it. https://github.com/ValveSoftware/Proton/?tab=readme-ov-file#runtime-config-options https://github.com/ValveSoftware/Proton/?tab=readme-ov-file#...
- akdev1l 6mo agoI thought you meant Proton-GE or such other patched builds of proton.
- kelnos 6mo agoI would assume most of them? I'd be surprised if distros like Debian, Ubuntu, Fedora, etc. would ship non-mainline kernel features like that. Sure, gaming-focused distros, or distros like Arch or Gentoo might (optionally or otherwise), but mainstream? Probably not. Of course, esync doesn't require kernel patches, so I imagine that was more broadly out there. But it sounds like fsync got you performance pretty close to what ntsync can do, but esync was quite a bit behind both? With vanilla being quite a bit behind esync? (Also, jeez, fsync, what a terrible name. fsync is a syscall that has to do with filesystem data. So confusing.)
- nialv7 6mo agoesync and fsync both use mainline kernel features.
- genthree 6mo agoLast I checked, every distro of note had its own patchset that included stuff outside the vanilla kernel tree. Did that change? I admit I haven't looked at any of that in... oh, 15 years or so.
- akdev1l 6mo agoDepends on the distro. Fedora looks like it carries a whooping 2 patches on top of upstream
- foresto 6mo ago> I would assume most of them? I'd be surprised if distros like Debian, Ubuntu, Fedora, etc. would ship non-mainline kernel features like that. It's best not to assume with these things. With my stock Debian Stable kernel, Proton says this: fsync: up and running. And when I disable fsync, it says this: esync: up and running. > But it sounds like fsync got you performance pretty close to what ntsync can do, but esync was quite a bit behind both? No, esync and fsync trade blows in performance. Here are some measurements taken by Kron4ek, who maintains somewhat widely used Wine/Proton builds: https://web.archive.org/web/20250315200334/https://flightlessmango.com/games/15605/logs/785 https://web.archive.org/web/20250315200334/https://flightles... https://web.archive.org/web/20250315200424/https://flightlessmango.com/games/1700/logs/778 https://web.archive.org/web/20250315200424/https://flightles... https://web.archive.org/web/20250315200419/https://flightlessmango.com/games/23256/logs/788 https://web.archive.org/web/20250315200419/https://flightles... > With vanilla being quite a bit behind esync? Yes, vanilla Wine has historically fallen behind all of them, of course. > Also, jeez, fsync, what a terrible name. fsync is a syscall that has to do with filesystem data. So confusing. We can agree on this. :)
- IshKebab 6mo agoThe article says fsync uses futexes which are a completely standard kernel feature.
- jabl 6mo agoIf you read more carefully it says fsync needs some enhancements to the futex API, called futex2. The original patch that fsync needed called the syscall futex_wait_multiple. Eventually futex2 made it into the mainline kernel, but the syscall is called futex_waitv. Not sure if the wine fsync implementation was updated to support the mainline kernel futex2 implementation.
- damentz 6mo agoUnless you are running an ancient LTS distribution, you at least have fsync. But then also recognize, with the ancient LTS distribution not carrying any enhancements for the last few years, your drivers are also out of date and games will play terribly for unrelated reasons.
- tremon 6mo ago"Have fsync" is not a sufficient requirement. You need a kernel with windows-compatible fsync patches, and many distributions do not ship those.
- kvemkon 6mo ago> usually in the lower single percentage range Is it worth to compare Wayland vs X11?