Solved What are fsync and esync?

Solved issue


Active Member
Jan 21, 2024
Reaction score
In Lutris there are options to enable fsync and esync.
What exactly these options mean?

I've been googling out but can't find any clear explanation.

Maybe the explanation at the bottom of this link will help?
Fsync and Esync

Proton has had esync since its first release, which aims to reduce the performance overhead of Wine, especially in CPU bound scenarios. Fsync is a more recent alternative with even better performance improvements. However, you do need a kernel that supports it, and if your kernel does not, it should be considered an 'advanced' step compared to others in this guide. Installation instructions for the necessary kernels are here.

Within Steam, Esync is enabled by default, and Fsync is enabled by default if your system supports it. In Lutris, for Esync you need to enable in in the runner options, and for Fsync you can add WINEFSYNC=1 as an environmental variable.
Thanks, somebody on reddit said that esync and fsync should not be both enabled, how true is that?
According to your quote fsync is more recent alternative and it suggests that both may be enabled right?
Mostly I trust Steam documentation more than what some random person on Reddit says. I did come across this, where the person verifies what is mentioned on the Steam website. I did come across someone saying that for some games esync can cause problems, but then you can just disable it.

I'm no kernel expert but from my understanding it's called futex in the kernel config and has been merged into the current kernels sometime ago.
I think I get it, I already know what mutex is, so futex is basically same thing except for kernel development where it's used for userspace.

and fsync uses that feature to improve wine performance.
It's all clear now, I though it has something to do with GPU such as G-Sync or V-Sync which are similar names but unrelated.

Thanks for help!

Members online