Joshua-Ashton / d9vk

A Direct3D9 to Vulkan layer using the DXVK backend. [Upstreamed to DXVK]
https://github.com/doitsujin/dxvk
zlib License
833 stars 42 forks source link

The Sims 4 crashes right at intro #478

Closed Zemogiter closed 4 years ago

Zemogiter commented 4 years ago

wine.log

Software information

The Sims 4, 64bit wineprefix with vcrun2010, 2015, and 2017, set msvcr120 and api-ms-win-core-path-l1-1-0 to Native (based on https://bugs.winehq.org/show_bug.cgi?id=44999 ) but that did not solve the problem

System information

Apitrace file(s)

TS4_x64.zip

Log files

tannisroot commented 4 years ago

I've tested it with DXVK 1.5 and it works perfectly fine.

Zemogiter commented 4 years ago

Retested with DXVK 1.5, crashes with the exact same error.

tannisroot commented 4 years ago

What error?

Zemogiter commented 4 years ago

The one in wine.log

tannisroot commented 4 years ago

That's not a crash or even a real error, that just says that you disabled winemenubuilder. Please retest with a new fresh prefix without any workarounds.

Zemogiter commented 4 years ago

Oh wait that's not the right log file here is the correct one: wine.log

lieff commented 4 years ago
Fatal Python error: init_sys_streams: can't initialize sys standard streams

Check if you do not have 1024 file descriptors limit per process (ulimit -a).

Zemogiter commented 4 years ago
ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63648
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 63648
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
lieff commented 4 years ago
open files                      (-n) 1024

yep, this is a problem.

lieff commented 4 years ago

@Zemogiter Can you re-check with ulimit -aH, I forgot we need look at hard limit. More info here: https://github.com/zfigura/wine/blob/esync/README.esync

Zemogiter commented 4 years ago
ulimit -aH
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63648
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1048576
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) unlimited
cpu time               (seconds, -t) unlimited
max user processes              (-u) 63648
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

I've already set this to 1048576 before in systemd config files.

lieff commented 4 years ago

Then it can be file-system issue and python file/module name collision. Is it located on ntfs or ext4 etc?

Zemogiter commented 4 years ago

It's on ext4 partition.

lieff commented 4 years ago

Weird, https://github.com/supernova-project/GNU-Linux/blob/4513da25dbb059209daa28d04e6bc295515d813b/core/Python-3.7.4/Python/pylifecycle.c#L1830 it's just loads few modules and wraps stdin/stdout/stderr. It looks like limit/file-system issue, or may be python interpreter dll depends on some other dll which broken in prefix. You can add +loaddll to WINEDEBUG to see all loaded dlls in wine log.

Zemogiter commented 4 years ago

log file with fixme-all,+loaddll wine.log

lieff commented 4 years ago
0009:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\msvcr120.dll" at 0x7d3a0000: builtin

Probably this. python37_x64.dll depends on MSVCR120.dll, and wine version of MSVCR120.dll are used. So setting msvcr120 to native do not works for some reason.