ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.48k stars 1.03k forks source link

TERA (212740) #3729

Open Davetheraveuk opened 4 years ago

Davetheraveuk commented 4 years ago

Compatibility Report

System Information

I confirm:

Symptoms

Game crashes at random intervals, with or without message boxes (see top post).

Reproduction

Run game and wait, I guess.

NOTE: I added the 'PROTON_LOG=1 %command%' as requested above, but no file was generated.

Davetheraveuk commented 4 years ago

@kisak-valve Please find attached the log file you requested. Dave. steam-212740.log

kisak-valve commented 4 years ago

Hello @Davetheraveuk, there's a bunch of err:esync:esync_set_event write: Bad file descriptor lines in you log. Maybe test if PROTON_NO_ESYNC=1 %command% in the game's launch option's has an effect?

Separately, does PROTON_USE_WINED3D=1 %command% have an effect on the stability of the game?

Davetheraveuk commented 4 years ago

@kisak-valve Hi, I was able to play for roughly 2 hours before the game froze and exited. There seem to be a lot of errors regarding "ld.so" which i think is something to do with MS Visual C++ Redistribution. Could this be the case and if so, could I install a newer (patched) version of MS Visual C++ Redistribution using winetricks? Would this fix the problem? Thanks, Dave. steam-212740 (UPDATED).log

kisak-valve commented 4 years ago

Something definitely went wrong with testing. %command% allows you to add environment variables before the command that gets called to start the game. There should be at most one use of this in the game's launch options. EX: ENV_VARIABLE=foo OTHER_VARIABLE=bar %command% -gameoption

Davetheraveuk commented 4 years ago

Heres my steam launch commands: PROTON_LOG=1 %command% PROTON_NO_ESYNC=1 %command% PROTON_USE_WINED3D=1 %command% Is this correct?

cirk2 commented 4 years ago

Your Launch line should be:

PROTON_LOG=1 PROTON_NO_ESYNC=1 PROTON_USE_WINED3D=1 %command%

Got the same behaviour, using PROTON_USE_WINED3D=1 does not improve stability. Proton 4.11 behaves the same, earlier versions can't launch the game.

Log when running PROTON_LOG=1 %command% TERA_d3d9.log

cirk2 commented 4 years ago

Taking a closer look at the system logs I noticed warnings from umip:

Apr 19 13:17:35 grim-squeaker kernel: umip: TERA.exe[109705] ip:30291b0 sp:364fefa: SLDT instruction cannot be used by applications.
Apr 19 13:17:36 grim-squeaker kernel: umip: TERA.exe[109705] ip:30b8ee5 sp:364fed0: SIDT instruction cannot be used by applications.
Apr 19 13:17:36 grim-squeaker kernel: umip: TERA.exe[109705] ip:30b8ee5 sp:364fed0: For now, expensive software emulation returns the result.

Suggesting this game is affected by #2927. Applying the clearcpuid=514 workaround resulted in a far longer playtime.

I ran into a freeze after ~20 minutes, logs TERA_d3d9.log

Same crash from a stock proton 5.0: TERA_d3d9.log

Neither PROTON_NO_ESYNC=1 nor PROTON_USE_WINED3D=1 help against that crash. The crash seems to be related to the loading of assets, I can pretty reliably reproduce it by approaching highly populated areas, seeing a couple of player models load in before it crashes.

I got a crash dump from one of the crashes: crashdump.zip not sure if that is from proton or the game.

cirk2 commented 4 years ago

Some discoveries from Continued Testing: Reducing the Graphics settings increases the time before crashing, PC Display limit and Texture resolution having the largest impact. Allowing for workable Playtime when in questing zones. In some cases when the game crashed it displayed a "insufficient Memory" error.

All this suggests this is some memory overhead issue akin to what we had in wine before the "large address aware" patches allowed for 32bit programs to grow beyond 2 GB ram.

hk3wx commented 3 years ago

Microsoft Visual C++ Runtime Library_001