-
-
Notifications
You must be signed in to change notification settings - Fork 166
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. |
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. |
How is this going? There weren't any commits to the kernel part in a long time since initial ones landed there: https://gitlab.com/linux-kernel/linux/-/commits/master/drivers/misc/ntsync.c |
I've been testing ntsync for the past weeks and have had no issues so far in: World of Warcraft, Star Citizen and Farming Simulator 2022. Currently the patchset has not been able to apply to staging since 9.15. |
Looks like things are stuck in some kind of limbo: https://lore.kernel.org/lkml/5805970.DvuYhMxLoT@camazotz/ Is there a point to ping some maintainers to review latest version? |
I am assuming the maintainers aren't ready yet to review it. |
Yesterday I was able to make my first attempt at adding ntsync5 to Proton, at the moment it's only for bleeding-edge. I need help here, because I couldn't solve a serious bug that makes ntsync5 semi-working. It is related to such functions as Some games work like unity based games but control and explorer freeze. winecfg and winetricks can`t start with ntsync5 unless other application run with wine in background like regedit How to build proton with ntsync5
|
It's been a very long time though. Not ready or there is no one to review it? Is there a point to ping maintainers again to find someone to review it or they do plan to do it at some point? |
No games launch for me with this. Well actually, they launch, but they're frozen and stuck. Here's some more info. System Info:
Wine Build Info:
Environment Variables:
DXVK Configuration File:
MangoHud Configuration File:
Additional Info: I have installed all three packages from https://aur.archlinux.org/pkgbase/ntsync FPS limited to 230 and Vulkan present mode set to Mailbox to get the lowest latency and smoothest experience. Lutris Log when launching Far Cry 3:
When running the game with the same variables and configuration from the terminal, everything is fine until it infinitely starts outputting this:
And then the games are stuck like that on a black screen. No audio either. But CPU is running as if the game is playing. This exact setup and configuration works perfectly, except without the ntsync part, using fsync instead. So ntsync must be the culprit. Although the games are also stuck with Should I create a new issue too? Should I also report this to DXVK? Edit: As I was writing this, I realized both games I'm trying were running in DX11 mode and when I put them into DX9 mode, they work. MangoHud shows Winesync as NTSync. So it does work. I guess it doesn't work with DX11? I'm starting to think it could be a DXVK issue perhaps. Still, I wrote all this so please do take it as feedback and maybe look into it. I doubt any Arc users are testing this. Edit 2: Yep, could very well be a DXVK issue as Max Payne 3 also doesn't launch when in DX11 mode.
Edit 3: Although Far Cry 3 launches when using Still leaving this here. Should I report to DXVK? Copy pasting this issue is fine? |
@nokia8801 In wine made a change that somehow causes dxvk to hang. I also have a problem with dxvk, and hyprland hangs after which it crashes. this commit dd68c045e7ef24094fe9015d9a03de23d519e5c0 in wine a latest working with dxvk |
@Artewar67 But for me, only the game window, I'm assuming because of DXVK, hangs. Mutter is fine, everything else keeps working. DX12 games also have this weird bug, where they don't hang, but they do display a black screen but this time the audio plays and progresses. So the game is playing, it just won't show it. So far only DX9 games are working correctly. If I compile Wine with fsync instead of ntsync, the issues are gone. You mean it is broken because of that commit, or it doesn't work after that? |
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: