UPDATE: Thank you to @mihawk90 for the solution since I’m not used to using Lutris vs Proton. Changing the default in your runner config is all you need to do.
So, if you’re coming from Proton to Lutris because you bought some GoG games, you might expect using Proton in Lutris to configure Esync for you as it’s by default on when Steam launches Proton, right?
WRONG.
Lutris uses a completely different logic regarding Esync. It’s a manual setting and always will be a manual setting, so even if you ran Proton as your Wine version, the defaults exist in STEAM, not Lutris. This is also dependent on your installer, and unfortunately most GoG installer scripts from the Lutris site are broken as they don’t complete the installation due to improper filepath sanitation.
So if you’re installing a Wine game manually using Lutris, and then plan to use Proton as your Wine version. Esync is still a MANUAL TOGGLE. If you leave it as is, Esync is not engaged.
The problem is made worse when Lutris itself cannot detect Proton versions as supporting Esync, so if you turn it on, it will warn it doesn’t support it and if you didn’t know better, you’d think it’s impossible. NO, it’s possible, you just have to hide the warning.
This is what was the cause of really bad performance issues on Unreal Engine 3 titles using Lutris and their Windows GoG DRM-free installers.
Also, because Steam cleans the prefix between unofficial and official Proton versions, you don’t have to worry about dirty prefixes, whereas with Lutris, going from official Proton to Proton-GE will crash your Vulkan driver HARD due to winevulkan differences. (Though I have just been informed VERY CLEARLY this might not be Wine nor the prefix’s fault.)
TL;DR: Enable Esync in Lutris MANUALLY for Proton. It’s not enabled by default. Hide the error message when it says Proton doesn’t support Esync.
Large Address Aware for 32bit games can also be manually enabled with the Environment Variable WINE_LARGE_ADDRESS_AWARE=1
. This also doesn’t work with the Proton environment variable because you’re not executing the proton
file.