-
-
Notifications
You must be signed in to change notification settings - Fork 156
-
-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NTsync (aka Winesync+Fastsync) - feedback topic #936
Comments
I've got some numbers for you from the in-game-benchmark in Total War: Troy in 1080p / Ultra. With NTSync: Scene 1: 75,2 fps WINE_DISABLE_FAST_SYNC=1: Scene 1: 74,0 fps (-1,6 %) Analysis: Scene 2 is the most CPU-bound of the three. As you see, there is quite a pronounced impact from the change. My test system:
|
Company of Heroes 2 - WQHD, Higher preset With NTSync (2nd run): Min: 56,00 fps WINE_DISABLE_FAST_SYNC=1: Min: 56,99 fps (+1,7 %) Notes: There is a performance regression with NTSync in this older game. The first run with NTSync showed even worse numbers (77 fps avg) - but that might have been due to the shader compilation, hence I took the numbers from the second run which did show some improvements. I wouldn't read too much into this result as it is still in the range of normal deviation in this benchmark. Maybe still something worth to investigate? |
With only 2 runs it's hard to say if it's more than margin of error considering such minuscule differences. If the average on 10 runs leads to a similar gap, then that could be considered as an actual perf drop. Now and that being said, if the |
thanks for trying to look into this. I have access to the EGS-version of A Total War Saga: Troy so I did a couple of tests with "campaign_benchmark" at Ultra preset settings - there seems to be a difference between regular wineserver-sync and ntsync at least. UPD. another run I made mangolog https://flightlessmango.com/games/26979/logs/3576 please make sure the terminal output or log show |
Those results are making much more sense @Iglu47 . Thanks. |
I have no control over the build process, I simply used the proton-winesync binary packages ptr1337 provided in CachyOS for testers. That means by deduction that my numbers are highly likely just as valid as Iglu47's, as I've used the defaults even if they look different. Our hardware and software setup is very different after all. I will leave more testing to others as I spend enough of my time with this experimental version that has other issues - even if Tk-Glitch considers these expected behavior. . |
@ms178 The proton build isn't enough for NTsync to work. Unless @ptr1337 added similar patches and handling to what we're doing in linux-tkg, you would need both You didn't confirm you were seeing |
Please have mercy with me, I am not a programmer and just wanted to help you guys. :) Admittedly I had missed that crucial part of the process. |
Hello, your resident Overwatch player reporting in! Soon as I have time I can get performance numbers vs server sync but I am glad to report Battle.net crashing wineserver in some cases with fsync doesn’t happen with winesync. (A reliable repro for the fsync issue is to also run Battle.net via Feral’s Gamemode with fsync enabled, such thing doesn’t happen using Winesync!) |
Still present with NTsync for me. Using "wineserver sync" helps as workaround. |
i get hangs on ea's new game app |
Battle.net client struggles with fsync (fails to launch 1/2 the time). So far it hasn't had an issue starting with winesync. In-game performance (WoW) appears to be the same or better than fsync but being an MMO it is fairly subjective. |
Again not a perfect comparison as it's protonified vanilla wine vs actual proton with valve wine but Hogwarts Legacies is running better (10-15 fps at 4k ultra no RT) with fastsync than fsync and hasn't crashed on me yet which was frequently happening on load screens. |
You can also compile a fsync protonfied vanilla wine, then you would have a better comparison. |
winesync tkg is gone from aur |
https://aur.archlinux.org/packages/winesync-dkms & works fine |
There was a specific prebuild protonified wine version of tkg that supported winesync |
Is there some instruction how to build and test winesync? And what's the current status of it? A side question, I recently encountered huge performance improvement in the Witcher 3 (DX12 mode) and Cyberpunk 2077 when Wine-esync is used. I wanted to compare it to Wine+fsync. What is a good way to apply fsync patches to upstream Wine? I didn't find it in Wine-staging and it's not clear how to apply them from other sources. |
Another report for Battle.net working nicely with winesync. On both esync and fsync it would not launch half the time or cause wineserver to coredump sometimes taking the whole system with it. I've been playing StarCraft 2 and Overwatch 2 - both used to work with fsync anyway - with winesync. No problems. Performance in StarCraft 2 is better but it could be any number of reasons since wine-tkg (my custom build of)/wine-ge-custom are very different things. |
Not completely related to this thread, but the crypt32 dll isntalled through winetricks allows to get through this error in my experience, and has for a few other users I have helped in the past. |
Just a follow up. Any recommended way to use Winesync now over upstream kernel and wine? Various repos are quite outdated to apply things. |
The winesync-dkms module + a recent build of wine-tkg with fastsync enabled in the config. That's generally what I do. For Proton, it's a bit trickier, I've been working on a valve tree patchset for that. |
I tried playing around with that, but couldn't figure out how to apply only that on top of upstream Wine. wine-tgk has a ton of stuff and is a bit cumbersome to configure. No matter what I tried, it seemed to pull some extra stuff that I didn't want. It would be nice to have something like wine-staging patchset for it that is easy to apply to upstream Wine. And which repo has an up to date dkms module for winesync? |
What's the current state of this in general? I.e. is it close to getting upstream or more data is needed? Are there any blockers? Not sure where / how to check the status, so asking here. |
@shmerl the status has not changed. |
Generally a rebase against proton 8 would be very interesting for many users, i think. |
porting to wine-valve tree and availability of wenesync module. I'll try to find the time and do something about it |
Is there anyone working on or planning on re-basing against the current wine master since it broke? |
thank you Iglu47 i was planning on doing wine build this week using your patchset and the wine-valve tree as well as proton for steam with the ntsync patches if its doable what reversion or current tree version are your patches compatible with ei. wine-protonified, or wine-protontified bleeding edge, same for steams proton which build is most compatible? for now since i have dxvk gasync installed via aur with arch will try it using system dxvk and see if it all works till and if the developer of the new dxvk patch files work is included into the frogging family of patches. |
What exactly are the issues? |
Actually I didn't tested it on my own, but our users are complaining that with the latest patchset from lkml, it just stucks when starting anything with a ntsync patched wine. That patch is currently used and recently updated by Zen,TKG and CachyOS |
Still seems to have the same problem, can't generate the default prefix or launch anything because of it, should I also downgrade the patch used for wine or something? |
You don't have winesync-dkms or ntsync-dkms installed? |
This configuration works ridiculously good
Been using it for weeks on end without any crashes. Zero. Works perfectly with VRR. Not going to update for a while.. Anecdotally, I never managed to get NTSync to work properly with CachyOS's kernel 😞 .. When it was detected, VRR wasn't. Probably client-kernel version mismatch (this was a couple of weeks ago). |
I have experienced similar issues with ntsync5 v4 kernel built-in on The wine I used for testing was patched with ntsync5 v4 from https://repo.or.cz/wine/zf.git/shortlog/refs/heads/ntsync5. You can find the extracted patch here The wine build mentioned above (also available in my releases if anyone wants to validate it) worked with the This is also the reason I have postponed updating the AUR package for |
Well, it looks like I'm the only one who has this version working. For now I will only work on ntsync for proton and wine |
This comment was marked as outdated.
This comment was marked as outdated.
Before that, we used to make a patch from this repository: https://repo.or.cz/linux/zf.git/shortlog/refs/heads/ntsync5 |
This comment was marked as outdated.
This comment was marked as outdated.
The issue is with Thus the AUR package has been updated and you will need to rebuild wine for it to work properly. Previously compiled versions will not work. |
I thought the problem was more complicated than that. I created just a symbolic link in |
Ah, you're right! I'm on After overriding |
The ntsync5-v4 patch works fine, as long as Wine can detect the kernel headers. See [this](Frogging-Family/wine-tkg-git#936 (comment)) and [this](Frogging-Family/wine-tkg-git#936 (comment)).
I built wine-tkg as per comment and now getting the error |
That's a |
Thanks for the pointer! I ran
|
Some people seem to think
So despite the version bump, https://lore.kernel.org/lkml/20240416010837.333694-1-zfigura@codeweavers.com/
Also if the header still isn't installed by the package you can put it in |
The difference was in the |
It seems the NTSYNC kernel patches have been post-poned to 6.11. |
With ntsync on, I'm getting occasional frametime spike (100+ms) in GTAV driving around the city. Average fps improvement is significant though (160ish->180ish). Vanilla wine has lower but stable framerate. kernel: upstream 6.10.2 + ntsync patch from linux-tkg Edit: liquorix kernel works great. I guesss it's a scheduler problem? |
With ntsync, battle.net's background login service keeps crashing non-stop. |
Sorry - total noob here trying to get this to build on arch I built linux-tkg with _winesync="true" in the configuration file but when I build wine-tkg I keep getting this error
|
Its better, that you choose to use "ntsync" instead of winesync. |
@ptr1337 - Thank you! I was able to get it to bulid but only with proton wine. The other ones resulted in compiler errors. |
So the issue was wine 9.16, with 9.15 battle.net starts, however the UI is black. |
NTsync (title not approved) is more "Correctness" and "Robustness" alternative implementation of synchronization primitives in Wine from Zebediah Figura (the author of "Esync" and "Fsync").
This requires changes on the Wine side (usually patches are called - fastsync ) and corresponding changes on the kernel side (implemented as a kernel module - winesync. Unlike Fsync, the winesync functionality cannot be used anywhere except Wine).
More details about what problem NTsync solves and what is "implementation of synchronization primitives in Wine" can be found here: https://lkml.org/lkml/2021/1/17/312 and here: sync2022.pdf
Some plans and wishes for tests from @zfigura:
Find or get good, convincing data vs server sync. Benchmarks of esync are hard to find and a lot of them are not exactly very convincing (on the order of 50 -> 54 FPS).
Test ntsync with applications that break with fsync or esync:
Add this information to the document. I intend to submit this upstream along with the cover letter.
Submit kernel patches upstream.
CALL FOR TESTS: anyone who can test games from the "breaks with esync/fsync" list, that would be quite appreciated. Note there's a lot more that break simply because of PulseEvent(), and we've had a couple tested already and they work so I'm not worried about those. All of the above break because of subtler timing problems and I'd like to see if they work with ntsync.
ALSO CALL FOR TESTS: I need good, convincing data comparing winesync vs server side sync. I don't have application names because in the 3-4 years since I wrote esync I've completely forgotten what the most important applications even are.
How to get NTsync working on TkG builds?
_winesync="true"
in .cfg for linux-tkg, build, install and loading on it_use_fastsync="true"
in .cfg for wine-tkg and build itwine: using fast synchronization.
WINE_DISABLE_FAST_SYNC=1
.*Please don't post conflicts with other patches, versions of Wine, or other things related to building or installing kernel or Wine in THIS thread - this is a place intended for developers and other players to see other people's NTsync test results and determine if there are any significant performance deviations (both up and down) compared to wineserver-sync, esync, fsync. And any issues are saved or added compared to esync/fsync/wineserver-sync only.
The text was updated successfully, but these errors were encountered: