Question Not Related to Bazzite, But Didn't Know Where Else to Ask

I do not use reddit, which narrows down where I can inquire significantly. Question is related to Valve’s Proton compatibility layer, but their github page also doesn’t have anywhere you can post general questions so I decided to ask here. Please feel free to remove post if this is not the right place.

As you may know, Proton lately started supporting NTSync if kernel also supports it. But my question is, does enabling NTSync with the environment variable “PROTON_USE_NTSYNC=1” automatically disable fsync and esync?

To investigate I also added “PROTON_NO_ESYNC=1” and “PROTON_NO_FSYNC=1” variables as well and I noticed smoother experience in the game I play but this might very well be placebo effect. Is there any way of knowing if ntsync overrides esync and fsync by default? I enabled proton log and it says “NTSync up and running!” but couldn’t see anything about esync/fsync.

Thanks for all replies in advance.

Sorry if this isn’t helpful, but could you use strace to see if the NTSYNC driver is being used?

From the documentation NTSYNC: https://docs.kernel.org/next/userspace-api/it looks like a program that uses NTSYNC will open an ntsync device and then issue ioctl calls with NTSYNC-specific arguments. In theory, you should be able to spot those in strace output.

I was also skimming through the related kernel changes:

I found the kernel changes to be the most helpful resource in learning more about NTSYNC.

I’d be curious to know if you find out.

If you try strace and you’re overwhelmed by sys calls, you could also try:

  1. clone the proton code
  2. setup a breakpoint on the NTSYNC related code paths
  3. start your program + proten with a debugger
  4. see if your breakpoints get triggered

By the way, are you a developer? If not, sorry if everything I said made no sense :sweat_smile:

Hi,

I am not a developer and really couldn’t understand how to follow the steps. Really sorry. However, enabling PROTON_LOGS environment variable in steam creates a steam log file, which says “NTSync up and running!” to verify that NTSync is, indeed, working. So I am positive NTSync is working.

If I use Valve’s own Proton version, for example, the same line says “Using system level synchronization” or something along the lines because Valve’s Proton does not yet support NTSync or Wayland. So I am double positive that NTSync is working at the moment if it helps.