Skip to content
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

Open
Iglu47 opened this issue Jan 13, 2023 · 235 comments
Open

NTsync (aka Winesync+Fastsync) - feedback topic #936

Iglu47 opened this issue Jan 13, 2023 · 235 comments

Comments

@Iglu47
Copy link
Contributor

Iglu47 commented Jan 13, 2023

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:

    • [21142] Planet Zoo crashes when selecting a friend's avatar
    • [20155] Ubisoft launcher hangs on "looking for patches"
    • [17625] Yakuza 0 hangs on exit
    • [19072] Yakuza 0/Kiwami manual save fails
    • [21194] GTAV hangs or something. This issue: Grand Theft Auto V (271590) ValveSoftware/Proton#37
    • [20444] System Shock: Enhanced Edition hangs on exit
  • 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?

  1. you need set _winesync="true" in .cfg for linux-tkg, build, install and loading on it
  2. when you need set _use_fastsync="true" in .cfg for wine-tkg and build it
  3. if you did everything correctly, then when you start the game in the output of the terminal or in the logs will appear
    wine: using fast synchronization.
  4. to disable NTsync, set env var 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.
@ms178
Copy link

ms178 commented Jan 14, 2023

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
Scene 2: 119,4 fps
Scene 3: 102 fps

WINE_DISABLE_FAST_SYNC=1:

Scene 1: 74,0 fps (-1,6 %)
Scene 2: 116,4 fps (-2,5 %)
Scene 3: 101,5 fps (-0,49 %)

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:

❯ inxi -GSC -xx
System:
  Host: klx99 Kernel: 6.1.5-3.2-cachyos-bore-lto arch: x86_64 bits: 64
    compiler: clang v: 16.0.0 Desktop: KDE Plasma v: 5.26.80 tk: Qt v: 5.15.8
    wm: kwin_x11 dm: SDDM Distro: CachyOS
CPU:
  Info: 18-core model: Intel Xeon E5-2696 v3 bits: 64 type: MT MCP
    arch: Haswell rev: 2 cache: L1: 1.1 MiB L2: 4.5 MiB L3: 45 MiB
  Speed (MHz): avg: 2312 high: 3790 min/max: 1200/2301 boost: enabled cores:
    1: 2301 2: 2301 3: 2301 4: 2301 5: 2301 6: 2301 7: 2301 8: 2301 9: 2301
    10: 2301 11: 2301 12: 2301 13: 1241 14: 2301 15: 2301 16: 2301 17: 2301
    18: 2301 19: 2301 20: 2301 21: 2301 22: 2301 23: 3790 24: 2301 25: 2301
    26: 2301 27: 2301 28: 2301 29: 2301 30: 2301 31: 2301 32: 2301 33: 2301
    34: 2301 35: 2301 36: 2301 bogomips: 165744
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: AMD Vega 10 XL/XT [Radeon RX 56/64] vendor: Micro-Star MSI
    driver: amdgpu v: kernel arch: GCN-5 pcie: speed: 8 GT/s lanes: 16 ports:
    active: DP-3 empty: DP-1,DP-2,HDMI-A-1 bus-ID: 05:00.0 chip-ID: 1002:687f
  Display: x11 server: X.Org v: 21.1.99 with: Xwayland v: 22.1.7
    compositor: kwin_x11 driver: X: loaded: amdgpu unloaded: modesetting
    alternate: fbdev,vesa dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 96
  Monitor-1: DP-3 mapped: DisplayPort-2 model: HP X27q res: 2560x1440
    dpi: 109 diag: 685mm (27")
  API: OpenGL v: 4.6 Mesa 23.1.0-devel (git-267dd1f4d5) renderer: AMD
    Radeon RX Vega (vega10 LLVM 16.0.0 DRM 3.49 6.1.5-3.2-cachyos-bore-lto)
    direct render: Yes

@ms178
Copy link

ms178 commented Jan 14, 2023

Company of Heroes 2 - WQHD, Higher preset

With NTSync (2nd run):

Min: 56,00 fps
Avg: 79,84 fps
Max: 127,87 fps

WINE_DISABLE_FAST_SYNC=1:

Min: 56,99 fps (+1,7 %)
Avg: 80,44 fps (+0,75 %)
Max: 129,22 fps (+1,06 %)

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?

@Tk-Glitch
Copy link
Member

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 WINE_DISABLE_FAST_SYNC=1 runs are with server-side sync, the difference should be much higher if you're CPU bound (>20% is quite common). If that's with fsync it's in line with what is to be expected from winesync, which is pretty much equal perf to fsync.

@Iglu47
Copy link
Contributor Author

Iglu47 commented Jan 14, 2023

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.

screenshots of the in-game "campaign_benchmark" result

server-side sync:
total_war_saga_troy_serverside_sync
ntsync:
total_war_saga_troy_ntsync

UPD. another run I made mangolog https://flightlessmango.com/games/26979/logs/3576

please make sure the terminal output or log show wine: using fast synchronization. before posting resault here (we want the test results to be valid)

@Tk-Glitch
Copy link
Member

Those results are making much more sense @Iglu47 . Thanks.

@ms178
Copy link

ms178 commented Jan 14, 2023

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. .

@Tk-Glitch
Copy link
Member

@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 winesync-dkms and winesync-udev-rule packages to begin with, and then either manually loading the module or adding it to your modules-load.d for it to be loaded on boot.

You didn't confirm you were seeing wine: using fast synchronization. in your wine output which would tell us if your results are indeed valid and everything was done correctly (either by you or the CachyOS maintainers), or not. You are talking with devs here, please try to understand we're expecting you to follow our guidelines if you participate in testing.

@ms178
Copy link

ms178 commented Jan 15, 2023

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.
winesync-dkms / winesync-udev-rule were also installed. I assume ptr1337 handled all the neccesary patches, as he has seen NTSync working correctly with his binaries on other machines. The modules-load.d info is new to me though, I am deferring to prt1337 if that was handled automatically with his packages. If not, that could be a source for the deviation in the numbers. On the other hand, with a 1080Ti, the better result from Iglu47 with 140+ fps is also not too distant from mine with 119,4 fps and my Vega 56.

@FuzzyQuils
Copy link

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!)

@Iglu47
Copy link
Contributor Author

Iglu47 commented Jan 17, 2023

[20155] Ubisoft launcher hangs on "looking for patches"

Still present with NTsync for me. Using "wineserver sync" helps as workaround.

@LethalManBoob
Copy link

i get hangs on ea's new game app

@csutcliff
Copy link
Contributor

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.

@csutcliff
Copy link
Contributor

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.

@ptr1337
Copy link

ptr1337 commented Feb 12, 2023

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.
Also you can disable NTsync/Winesync with your current running wine/proton with:
WINE_DISABLE_FAST_SYNC=1

@LethalManBoob
Copy link

winesync tkg is gone from aur

@csutcliff
Copy link
Contributor

@LethalManBoob
Copy link

LethalManBoob commented Feb 12, 2023

There was a specific prebuild protonified wine version of tkg that supported winesync
edit: spoke to ptr 1337 this was due to tkg making changes that made the cachyos prebuilds unusable

@shmerl
Copy link

shmerl commented Feb 26, 2023

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.

@rlees85
Copy link

rlees85 commented Apr 6, 2023

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.

@An-Eagle
Copy link

[20155] Ubisoft launcher hangs on "looking for patches"

Still present with NTsync for me. Using "wineserver sync" helps as workaround.

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.

@shmerl
Copy link

shmerl commented May 12, 2023

Just a follow up. Any recommended way to use Winesync now over upstream kernel and wine? Various repos are quite outdated to apply things.

@FuzzyQuils
Copy link

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.

@shmerl
Copy link

shmerl commented May 12, 2023

Recent build of wine-tkg with fastsync enabled in the config

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?

@shmerl
Copy link

shmerl commented Jun 26, 2023

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.

@Iglu47
Copy link
Contributor Author

Iglu47 commented Jun 29, 2023

@shmerl the status has not changed.
Important Information: Reports are needed to ensure that NTsync/Winesync does not introduce any new issues compared to Esync.

@ptr1337
Copy link

ptr1337 commented Jun 29, 2023

@shmerl the status has not changed. Important Information: Reports are needed to ensure that NTsync/Winesync does not introduce any new issues compared to Esync.

Generally a rebase against proton 8 would be very interesting for many users, i think.

@Iglu47
Copy link
Contributor Author

Iglu47 commented Jun 29, 2023

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

@csutcliff
Copy link
Contributor

Is there anyone working on or planning on re-basing against the current wine master since it broke?

@daktras420
Copy link

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.

@nokia8801
Copy link

Man, there really needs to be an easier way to get Valve trees to compile with NTsync and WoW64, or somehow use Wine with those features to play Steam games.

Performance is abysmal with Proton using fsync and 32-bit libraries. I'm gonna post some benchmarks later but it's bad in my case. Intel Arc A750 GPU, could be a factor. But it for sure benefits from NTsync and WoW64.

I really don't need nor want Proton. Wine is enough for me. But can't get Steam to use Wine. Anyone got a solution?

@shmerl
Copy link

shmerl commented Jan 9, 2025

Things need to finally get upstream. Looks like it's moving now!

@Patroklos99
Copy link

How does the work flow works for MR in the kernel?
Greg added it to his testing tree, whats next then? Landing on 6.14?

@ptr1337
Copy link

ptr1337 commented Jan 9, 2025

How does the work flow works for MR in the kernel? Greg added it to his testing tree, whats next then? Landing on 6.14?

It is likely going into 6.14 - but it could be also delayed to 6.15, since patches normally need to be around 6 weeks in the linux-next tree.
We will see in 4 weeks.

@shmerl
Copy link

shmerl commented Jan 9, 2025

Testing tree looks like something relatively recent: https://lwn.net/ml/all/ZxZ8MStt4e8JXeJb@sashalap/

I suppose if it succeeds (i.e. testing won't reveal any regressions and issues), it will land in the currently opened merge window.

@nokia8801
Copy link

Yeah, but isn't this assuming Valve will immediately adopt in their trees and start using it? I have a feeling they'll keep using fsync for the foreseeable future.

Unless it becomes the same as the Wayland driver, where it can be configured with Proton-tkg but still not used by Valve? If that's the case, I don't really care what Valve does. Wine having it is more important if Proton can use it with this repo.

In other news, I still would like to have WoW64 too... Can't I have Proton without Wine? It says "NOLIB32 detected, not allowed with Valve trees" or something like that, even when I choose "Wine tree (except breakage)".

@shmerl
Copy link

shmerl commented Jan 9, 2025

Not sure about Valve, but upstream Wine will probably merge those changes fast enough after the kernel gets them.

Personally I'm using upstream winewayland + esync from staging at present, but switching to ntsync would be better. And yeah, I'm using the new wow64 too, but it still can't handle 32-bit OpenGL.

@Username404-59
Copy link

Username404-59 commented Jan 10, 2025

Man, there really needs to be an easier way to get Valve trees to compile with NTsync and WoW64, or somehow use Wine with those features to play Steam games.
[...] But it for sure benefits from NTsync and WoW64
I really don't need nor want Proton. Wine is enough for me. But can't get Steam to use Wine. Anyone got a solution?

Well actually you can build proton-tkg with normal wine+ntsync, or try to patch valve wine with loathingKernel's try at a port

However do note that wow64, which you want to use too, breaks some anticheats and I don't think it improves performance
What it does do is reduce build times by 2x, but you also can't make wow64 build with proton

@nokia8801
Copy link

nokia8801 commented Jan 10, 2025

Man, there really needs to be an easier way to get Valve trees to compile with NTsync and WoW64, or somehow use Wine with those features to play Steam games.
[...] But it for sure benefits from NTsync and WoW64
I really don't need nor want Proton. Wine is enough for me. But can't get Steam to use Wine. Anyone got a solution?

Well actually you can build proton-tkg with normal wine+ntsync, or try to patch valve wine with loathingKernel's try at a port

However do note that wow64, which you want to use too, breaks some anticheats and I don't think it improves performance What it does do is reduce build times by 2x, but you also can't make wow64 build with proton

I'll try that PKGBUILD, thanks.

Can I get a source on WoW64 breaking anti-cheat? Which anti-cheats? VAC? Not being dismissive, really curious. Don't want to risk anything. I'd like to read more about it. Plutonium's anti-cheat and PunkBuster for Battlefield 4 work in my case. No issues.

For me, playing Black Ops 1, I get around avg 80 FPS with Fsync and no WoW64. But the performance is terrible as it goes down to 30 FPS and up to 250 FPS depending on where you're looking. GPU speed rarely goes above 1000MHz for some reason. Don't know why that is happening. Also there are audio crackling issues. Gunfire sounds are broken.

fsync-32bit

But playing Black Ops 1 with the Plutonium Launcher, using NTsync and WoW64, I get over 300 FPS, sometimes over 400 FPS. It's so smooth, no stutters or weird bugs. No audio issues either. I normally lock it 230 FPS on my 240Hz VRR monitor to get the best experience. It never falls below 230FPS with this setup.

ntsync-wow64

Kinda starting to hate Proton, ngl...

Gonna try these Wine combinations as well, to see if NTsync or WoW64 is the feature that makes all this possible, or both of them combined

  • with NTsync, with WoW64 (pictured above)
  • with NTsync, without WoW64
  • with Fsync, with WoW64
  • with Fsync, without WoW64 (also pictured above, but "Proton", gonna try Wine instead)

Wine and Proton both using the Wayland driver btw, as pictured above.

Edit: Ok did some more testing with Proton, seems related to Steam Runtime, as running steam-native-runtime with system libraries improved performance a bit. Still getting trash performance and audio issues, FPS depends on where I look, but it's much better than before, around 140-200 FPS.

@Username404-59
Copy link

Username404-59 commented Jan 10, 2025

Can I get a source on WoW64 breaking anti-cheat? Which anti-cheats? VAC? Not being dismissive, really curious. Don't want to risk anything. I'd like to read more about it.

EasyAntiCheat on star citizen at least
idk about other games as most of them are on steam and like I said previously proton can't build with wow64

@totolgueimer
Copy link

[...] But it for sure benefits from NTsync and WoW64

how do i build wine tkg with wow64?

@nokia8801
Copy link

[...] But it for sure benefits from NTsync and WoW64

how do i build wine tkg with wow64?

Under wine-tkg-git/wine-tkg-profiles/advanced-customization.cfg just set _NOLIB32="wow64", that's how I do it.

@totolgueimer
Copy link

thanks

@FuzzyQuils
Copy link

FuzzyQuils commented Jan 15, 2025

Does anyone know if NTSync (the version going into 6.14) has a DKMS version?

EDIT: Found the AUR PKGBUILD for it, looks like it's also using the latest patchset.

@StBoom
Copy link

StBoom commented Jan 17, 2025

does anyone have a tip? i try to create with “none” and ntsync and it always fails in the patch application. if i try it with staging it works, but i have problems with starcitizen.

@Username404-59
Copy link

but i have problems with starcitizen.

If it's just staging causing issues & not ntsync itself, you can go ask for help in the LUG discord

@StBoom
Copy link

StBoom commented Jan 17, 2025

Either way, it makes sense to compile a wine without staging but with ntsync.

@Torston420
Copy link

Torston420 commented Jan 17, 2025

NTSync doesn't seem to work with CEG games, I cannot escape blackscreens on Saints Row The Third, COD: Black Ops 2 just gets stuck launching with no game showing

@nokia8801
Copy link

nokia8801 commented Jan 17, 2025

NTSync doesn't seem to work with CEG games, I cannot escape blackscreens on either Saints Row The Third nor COD: Black Ops 2

Black Ops 2 works for me with NTsync. No black screens.

@shmerl
Copy link

shmerl commented Jan 28, 2025

Kernel changes merged! 🎉

https://gitlab.com/linux-kernel/linux/-/commits/master/drivers/misc/ntsync.c

@Patroklos99
Copy link

Does wine have a commit ready to be merged once 6.14 is out?
Will proton make it its default Sync?

@shmerl
Copy link

shmerl commented Jan 28, 2025

Not sure how soon Wine will merge it. I assume it will be able to handle fallback to esync in case of older kernels? We'll have to wait and see.

My guess is that eventually it will be default everywhere, but it will take time.

@Atemu
Copy link

Atemu commented Jan 29, 2025

Not sure how soon Wine will merge it. I assume it will be able to handle fallback to esync in case of older kernels? We'll have to wait and see.

Upstream WINE doesn't have esync. That's been in staging for forever because it's not a correct implementation.

I assume ntsync will be merged at some point and become the new preferred method with the current (slow) wineserver IPC based approach being the fallback.

Proton will likely have to implement fallbacks to esync/fsync.

@shmerl
Copy link

shmerl commented Jan 29, 2025

Obviously those who need it now aren't using upstream wine already. What I'm talking about is having esync and ntsync both (like in staging for example), to be able to have fallback for kernels that don't have it yet.

@nokia8801
Copy link

nokia8801 commented Jan 30, 2025

I don't think we'll see NTsync in Proton or SteamOS anytime soon. AFAIK, Valve uses a heavily modified 6.5 kernel base for SteamOS.

Yes, they jumped on fsync asap, even when it wasn't upstreamable, but they still haven't built Wine using --with-wayland for example. And it's been more than a year since Wine 9.0-rc1.

Also, Valve could have done to NTsync what they did to Fsync, which is implement it before it was accepted, like what we've been doing here for the past year or so. They'll probably wait, especially if they decide it's not necessarily needed when they already have fsync.

We'll see if Proton 10 manages to have both Wayland and NTsync. I'm crossing my fingers. I'd love to be proven wrong though.

From my testing, NTsync isn't just an improvement over normal server side Winesync, it's also a somewhat big, relatively speaking, improvement over Fsync as well. So Valve should have a big incentive to jump on it asap like they did with Fsync, but they haven't yet. Hopefully it being in Linux 6.14 and also Wine merge request for it being accepted very soon, means Valve can use it immediately.

@v-fox
Copy link

v-fox commented Jan 30, 2025

Yes, they jumped on fsync asap, even when it wasn't upstreamable, but they still haven't built Wine using --with-wayland for example. And it's been more than a year since Wine 9.0-rc1.

Maybe. But maybe not.
This is a bad analogy because Wayland is perpetually alpha-state replacement for a thing, that is not broken, with no benefits (just like toxic Rust cult that runs on misguided hype and glorified breakage). NTsync on the other hand provides massive improvements over Fsync: no random stuttering to the point of slideshow and no insane CPU load. This will unbreak a lot of apps, especially on low-power hardware, and increase SteamDeck's battery life. So they might actually go for it.

@nokia8801
Copy link

This is a bad analogy because Wayland is perpetually alpha-state replacement for a thing, that is not broken, with no benefits (just like toxic Rust cult that runs on misguided hype and glorified breakage).

Well, one could say this is a bad analogy, because Wayland, even with NVIDIA since 2021 (GBM) and explicit sync since last year, Intel, AMD, everything has worked perfectly fine for me. VRR, scaling, performance, inputs, latency, hardware video acceleration, direct scanout, etc and much more. It's just a better, more native experience.

Valve has conflicting interests when it comes to Wayland imo. On one hand, native Wayland would benefit and accelerate HDR protocol adoptions. On the other hand, they've already poured so much into Gamescope and would probably prefer to keep that alive, especially considering SteamOS's current targets which are handhelds. Not to mention the --expose-wayland flag barely working half the time.

But I won't go into more detail, as this is an issue for NTsync. Wayland "just works".

@v-fox
Copy link

v-fox commented Jan 30, 2025

Well, one could say this is a bad analogy, because…

No, it isn't. Illogical fanatical tirades that endlessly reiterate the sermons have little to do with reality. Be it Wayland cult or Rust cult. But I see the acolytes have already arrived with torches.

…even with NVIDIA since 2021 (GBM) and explicit sync since last year, Intel, AMD, …

Good thing I wasn't using Nvidia GPUs for like 20 years now and wasn't keen on transitioning to Wayland to just create problems and get more broken functions for no reason. So "it just works for me" because it was never broken after AMD got their shit together with the drivers.

…everything has worked perfectly fine for me… It's just a better, more native experience…

And everything was working fine for me before the cult have decided to create new problems instead of solutions to existing ones. There is nothing "better" about it, not a single tangible real benefit, only brainwashing to glorify placebos ("It's just a better, more native experience"... seriously? what does it even mean in numbers?) and aggressively push that trash into everything.

Valve has conflicting interests when it comes to Wayland imo.

I'm amazed that there are such rational people at Valve. Unfortunately, the cult will push its trash into everyone's throats (just like systemd, and most of original FOSS source repos, that was basically taken over by Microsoft in its newest round of EEE takeover strategy with its Red Hat pals waving their tails not far behind), so we will have to deal with it eventually.

Which is why there is hope that Valve will make a rational decision once again.
By the way, isn't Valve the one who recently gave a massive kick in the asses of entire Wayland's Council of Cardinals? Maybe they will even finally fix Wayland with some healthy dose of uncoping sight and rationality.

Wayland "just works".

It really isn't. You even just confirmed that "HDR" (or any colour correction) is still absent after >10 years of pushing the half-baked trash. Which is just one of broken core functions. Once again, it only creates problems, it doesn't solve a single thing for me. I'm not you, stop projecting your weird faith on my life.

It's like if some parents would randomly decide to snuff out their healthy newborn child and get a disabled abandoned one from orphanage to satisfy some twisted desire of psedomorality-based self-aggrandizement. Or a meme of house burning down with "this is fine" caption - massive super-cope.

@nokia8801
Copy link

nokia8801 commented Jan 30, 2025

My dude, you are missing the point, my original statement:

but they still haven't built Wine using --with-wayland for example. And it's been more than a year since Wine 9.0-rc1.

means just that, nothing more, nothing less. Proton's Wine isn't built with Wayland support. I never said Proton should actually use Wayland, or asked why it doesn't use Wayland, for all intents and purposes it could've been locked behind a PROTON_WAYLAND=1 variable. The point I was trying to make was that Proton's Wine doesn't even include winewayland.drv, and it's been more than a year. That was the whole point of my statement.

And winewayland.drv has been upstreamed since back then, unlike Fsync or NTsync. So I that's why I made a comparison. NTsync will either get the Fsync treatment, or Wayland treatment. I don't know which will happen, only time will tell.

Don't know why you're taking the discussion elsewhere. I think you'll fit right in on platforms like r/linux and Phoronix Forums, lots of Wayland critics there, just like yourself.

Let me guess, you don't like GNOME too?

Anyways, please keep the discussion to NTsync.

Here, see for yourself.

ValveSoftware/Proton#4638
ValveSoftware/Proton#4638 (comment)
ValveSoftware/Proton#4638 (comment)

@shmerl
Copy link

shmerl commented Feb 2, 2025

So far it's not clear what will happen when Wine side of changes will be merged. I.e. what they'll do with esync patches. I'm personally not using Proton, so all I care about is a smooth switch from esync to ntsync, but for that to happen esync would need to be usable for some time after Wine merges nstsync, since that will likely happen before kernel 6.14 is out.

Also, for the reference I've been using winewayland for several months already and it works very well, so keep this annoyance at Wayland out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests