Hola:

He tenido problemas con un juego en Proton (Super Jiggsaw Puzzle: Generations) que al final ha sido fallo de Esync. Pero no fue fácil saberlo. Gracias a https://www.protondb.com/help/troubl...-without-esync pude saberlo.

Aunque me pasó en Proton es aplicable a otros wine (el de winehq, Lutris, etc).


Primero habilité la creación de log del juego poniéndole como paramétro de lanzamiento (en las opciones del juego):

Código:
PROTON_LOG=1 %command%
Eso me creó un fichero llamado steam-1036950.log (en este caso, el número es el ID del juego) en mi directorio home.

Al abrirlo encontré:

Código:
esync: up and running.
Entonces lei de nuevo el link anterior y teclee:

Código:
ulimit -Hn
El resultado fue 4096 (debe ser mayor), así que seguí el enlace https://github.com/zfigura/wine/blob/esync/README.esync

En el readme dice:

If you get something like "eventfd: Too many open files" and then things start
crashing, you've probably run out of file descriptors.
Y sí, en el log tenía una línea que decía "eventfd: Too many open files". Así, que era problema de esync.

Seguí las instrucciones para subir mi número de ficheros abiertos para esync.

Para distribuciones Linux basadas en systemd (como la nuestra) son estos pasos:

Descomentar (borrar la #) la siguiente línea y ponerle el número indicado en /etc/systemd/system.conf y en /etc/systemd/user.conf

Código:
DefaultLimitNOFILE=1048576
Después hacer:

Código:
systemctl daemon-reexec
Ahora, reiniciar el ordenador para que se apliquen los cambios.

Una vez reiniciado, teclear el comando:

Código:
ulimit -Hn
el resultado tendría que ser 1048576 si se han seguido los pasos.


Saludos