Proton: WINEESYNC/WINEFSYNC override PROTON_NO_ESYNC/PROTON_NO_FSYNC?

Created on 13 Apr 2020  路  4Comments  路  Source: ValveSoftware/Proton

Hello,

On my system I have WINEESYNC=1 and WINEFSYNC=1 set as environment variables, for use with non-Steam Wine instances.

While trying to disable Esync/Fsync for a specific game on Steam (Supreme Commander), I found that setting PROTON_NO_ESYNC=1 and PROTON_NO_FSYNC=1 didn't have the desired effect and that Fsync kept firing up and preventing me from successfully running the game.

In the the end I realized that what prevented the Proton variables from working properly was the previously mentioned WINEESYNC and WINEFSYNC variables, and that disabling those made the problem go away.

So, instead of Proton isolating itself from the rest of the system and obeying only its own set of environment variables, ignoring everything else, on the contrary it seems that system-wide Wine variables are allowed to intrude and override the Proton environment. Is this expected behavior? Shouldn't PROTON_NO_ESYNC=1 and PROTON_NO_FSYNC=1 also respectively imply WINEESYNC=0 and WINEFSYNC=0 as far as Proton is concerned?

Most helpful comment

Yes, you're right. We're assuming the variables are unset, and just setting them if needed. We don't unset them if they are not needed. I'll fix that for an upcoming version.

All 4 comments

Yes, you're right. We're assuming the variables are unset, and just setting them if needed. We don't unset them if they are not needed. I'll fix that for an upcoming version.

Proton 5.0-7 included a fix for this. Can you give it a try and see if it is working as you expect now?

Great, I can confirm that now it's working as it should: setting PROTON_NO_ESYNC/FSYNC completely disables Esync/Fsync, even if I try to force their use by also specifying WINEESYNC/FSYNC=1 in the game's launch options.

Thanks for the very quick fix!

PS - Can I assume that this is a generic fix that should work for more or less every possible scenario of a Wine vs Proton environment variable, or is it a case by case solution? I don't have a specific variable in mind, but it would be something to keep an eye for in the future.

Thanks for retesting @Nocifer, 1a0cf7f7e2139d1e298b43bc59681ff979e73ade only added code to handle this specific situation.

Closing as fixed.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

AwesamLinux picture AwesamLinux  路  3Comments

Dakunier picture Dakunier  路  3Comments

juppso picture juppso  路  3Comments

shaphanpena1 picture shaphanpena1  路  3Comments

shanefagan picture shanefagan  路  3Comments