ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.91k stars 1.04k forks source link

NTSync for bleeding-edge #7501

Open UbuntuGaming opened 6 months ago

UbuntuGaming commented 6 months ago

Feature Request (Bleeding-Edge)

NTSYNC (Current version is 5)

I confirm:

Description

NTSYNC NTSync

Files

NTsync (Wine) https://repo.or.cz/wine/zf.git/shortlog/refs/heads/ntsync5

NTSync (Kernel) > To be sent to the Deck kernel team if you choose to implement the feature https://repo.or.cz/linux/zf.git/shortlog/refs/heads/ntsync5

Thanks for reading :)

Leopard1907 commented 6 months ago

That chart is misleading as it compares against wineserver which you normally do not use but use esync and fsync ( if available always fsync is used , which is since some 5.x kernel, other than some app workarounds that disables fsync ).

Ntsync vs fsync is barely an improvement in many cases.

DekosAnjo commented 6 months ago

The primary objective of NTsync is not merely to enhance speed but rather to prioritize compatibility, ensuring seamless operation at the same speed or even surpassing it.

UbuntuGaming commented 6 months ago

My apologies. I uploaded the image as i saw it on my hard drive & i wanted to put in a request for the feature, before i forgot about it again. I was sure the proton devs would of done testing of their own to determine if it was worth it or not. From what I've seen it does very slightly improve performance over fsync. I tested it for a single application under wine & saw a 3-7fps stable increase not much comparing i was already at 900-1000+ fps but still an measurable improvement. I will do more testing with it in the next week or the week after & i will attach my findings here in this comment. It also might work with the few games that don't play nice with fsync.

Next time i won't rush the request & i will either write a more proper description or leave the description field blank. Thanks for the comments 🙂

SoongVilda commented 6 months ago

I tested NTsync vs Fsync on proton-cachyos and performance improvements in terms of fps aren't high, is just around 5 fps, but I noticed much more stable frametimes and less latency, games feels more responsive than on fsync.

Cederick commented 6 months ago

I'd also argue that every boost to performance and stability in games should be a priority for Valve since this will be a step that would get some games from almost playable to be playable. And getting a little more stability for a ton of games means that it's also a small boost to the general user experience. So I hope this will get implemented.

simifor commented 6 months ago

it should be noted that this also requires kernel support and the patchset isn't upstream yet so very few people would be able to make use of this at this time

damentz commented 5 months ago

It looks like ntsync is going upstream, Greg KH already added the first 3 patches of 30 for this feature: https://lore.kernel.org/lkml/2024041141-renter-boring-9ff2@gregkh/. Would be nice to get some support in Proton Experimental to test out, should improve compatibility with games too where fsync/esync fall short.

frozen-sea commented 4 months ago

I tested NTsync vs Fsync on proton-cachyos and performance improvements in terms of fps aren't high, is just around 5 fps, but I noticed much more stable frametimes and less latency, games feels more responsive than on fsync.

This comment got me curious and my testing agrees with this. I tried to keep this reasonable by running the games at settings that don't cause the rendering to become primarily CPU-bound, since that's usually how people actually run them.

Quick specs:

Screenshot_20240509_160356

Any significant improvement to game smoothness is a big win in my book, because it's currently in a terrible state. This and a more appropriate scheduler currently seem to be where those improvements can be made.

rlees85 commented 1 week ago

Its not just the performance either. Its a less "hacky" implementation or at least thats closer to how Windows really behaves or at least thats my understanding of it anyway.

Not sure if its still the case, but a while ago Battle.NET used to crash constantly under fsync and esync but was 100% fine under winesync - again a while ago when ntsync was winesync.