Skip to content

Enable fsync#10

Open
Azkali wants to merge 1 commit into
SildurFX:mainfrom
Azkali:enable-fsync-esync
Open

Enable fsync#10
Azkali wants to merge 1 commit into
SildurFX:mainfrom
Azkali:enable-fsync-esync

Conversation

@Azkali

@Azkali Azkali commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

What

Flip the Wine sync env vars in files/steam/launch-steam.sh to enable fsync (and esync as a fallback):

  • PROTON_NO_FSYNC=10
  • WINEESYNC=01, PROTON_NO_ESYNC=10

Why fsync works on the 4.9 kernel

The comment said fsync "requires Kernel 5.x+", which is why it was off. The L4S kernel backports futex_waitv (syscall 449) — the upstream bf69bad38cf6 primitive that Proton's fsync uses — into the Tegra X1 4.9 kernel. So fsync's kernel dependency is satisfied and Proton can use the fast vectored-futex sync path instead of falling back to slower server-side sync. This is a measurable win in CPU-bound games.

About esync and the dxvk caveat

The previous comment noted esync "crashes dxvk and only works with wined3d". That stays true as a fallback path, but Wine picks fsync first whenever the kernel supports it (which it now does on L4S), so esync is only ever selected when fsync is unavailable. Enabling it gives a graceful fallback without changing behaviour on the L4S kernel, where fsync wins.

PROTON_NO_NTSYNC=1 is left untouched — ntsync needs a 6.12+ driver that isn't backported.

Test

On an L4S device the kernel exposes sys_futex_waitv (kallsyms / syscall 449); with these flags Proton initialises in fsync mode rather than falling back. ntsync remains disabled.

@SildurFX

SildurFX commented Jun 23, 2026

Copy link
Copy Markdown
Owner

The fallback to ESYNC is bad it should never be used due to crashing DXVK.
If FSYNC actually works it can be enabled with just PROTON_NO_FSYNC=0 without doing the fallback to unstable ESYNC.

I did a fresh install of fedora 42 and saw FSYNC in the logs of steam but can't really test it because the latest updates for fedora made the system kinda unstable. (crashes, freezes, applications like chrome say "not found" and no longer work, hostname was also changed to fedora4switch)

The L4S kernel backports futex_waitv (sys 449), so fsync works on the
4.9 kernel. esync stays off: it crashes DXVK and only works with
wined3d.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Azkali
Azkali force-pushed the enable-fsync-esync branch from 0046b87 to 22d9923 Compare July 15, 2026 10:40
@Azkali Azkali changed the title Enable fsync and esync Enable fsync Jul 15, 2026
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

Successfully merging this pull request may close these issues.

2 participants