ValveSoftware / Proton

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

Kingdom Come Deliverance (379430) #692

Open ghost opened 5 years ago

ghost commented 5 years ago

Occurs on proton 3.7.3 and 3.7.4 installed with steam

Logs from proton default logging config: steam-prune-379430.log

Each time I've seen the system crash, I've seen the following lines in journalctl:

Aug 24 17:37:37 HOSTNAME kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx timeout, last signaled seq=64337, last emitted seq=64339
Aug 24 17:37:37 HOSTNAME kernel: [drm] GPU recovery disabled.

A journalctl log from when I left the machine running after the initial hang: journalctl-crash-379430.log

Finally a workaround to get the game to get past black screen:

Needed to copy d3dcompiler_46.dll and d3dcompiler_47.dll from: ~/.steam/steam/steamapps/common/KingdomComeDeliverance/Bin/Win64Shared/ to: ~/.steam/steam/steamapps/common/KingdomComeDeliverance/Bin/Win64/

Further, this game DOES work under wine 3.12 staging, with DXVK 0.64 (Configured with Lutris) dxvk--lutris.txt

When i use the above configuration, I do not see the errors described above.

Game logs for those who care: Launcher.log kcd.log

System Specs, short:

Ubuntu 18.04
AMD RX 480x w/ amdgpu-pro-18.30-633530 (--pro flag enabled)
Linux HOSTNAME 4.15.0-33-generic #36-Ubuntu SMP Wed Aug 15 16:00:05 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Desktop environment: i3wm

System Specs, long: steam-system-report.log

ghost commented 5 years ago

Copying from my other comment,

I went so far for my issue posted: #692 as to replace all the bin files in the Proton directory with my configuration from my working Lutris install. However, for me that did not fix the problem.

That leads me to believe that the issue is related to something Proton is setting on top of wine, not wine itself.

ghost commented 5 years ago

I've filled out the https://github.com/ValveSoftware/Proton/wiki/Stable google report link to reflect my testing.

ghost commented 5 years ago

@kisak-valve I found the issue, It is due to a bug regarding my system and esync https://github.com/zfigura/wine/blob/esync/README.esync

I Just got it to run with the flag PROTON_NO_ESYNC I tried the WINE flag WINEESSYNC which did not work.

I read the readme, but forgot you guys use custom environment variables.

What do you want to do here? For my consideration it is fixed, but I'm unsure how to proceed. Fact is my system crashed when I was running with the default configuration.

jarrard commented 5 years ago

I get a infinite loading screen before main menu with the loading indicator animated on the bottom right. CPU cycle sits at 9% forever.

That's with proton, no issues with wine/dxvk in general.

Someone mentioned LLVM 7.0 is needed but not sure, only 6.0.1 is available.

ghost commented 5 years ago

@jarrard try: what I mentioned above:

I Just got it to run with the flag PROTON_NO_ESYNC

https://github.com/ValveSoftware/Proton#runtime-config-options

jarrard commented 5 years ago

Yes that does appear to work, not sure what esync is meant to do.

Also for some reason on my 4k setup I can't seem to select 1440p as a option, bit annoying. (in any steam game)

2560x1440 is a desktop resolution I can use elsewhere. Seems steam play limits to either 4k or 1080p, not a great choice range.

-5 beta of Proton has resolved the missing resolution options between 1080p and 2160p, now I can play the game at 1440p and 60-80fps, thought there is likely slowdowns in certain areas due to optimization issues with the game.

kuraleb commented 5 years ago

I edit file ~/.steam/steam/steamapps/common/Proton 3.7/user_settings.by removing the comment character string: "PROTON_NO_ESYNC": "1", and "PROTON_USE_WINED3D11": "1",

After that, the game started and the menu was loaded. But there are no textures

jarrard commented 5 years ago

this was resolved weeks ago and was related to max open files limit which you need to increase for esync to work. Most people have it too small so this problem continuously comes up!

kuraleb commented 5 years ago

this was resolved weeks ago and was related to max open files limit which you need to increase for esync to work. Most people have it too small so this problem continuously comes up!

How can I solve this problem specifically in my case?

kisak-valve commented 5 years ago

Hello @kuraleb, give https://github.com/zfigura/wine/blob/esync/README.esync a read.

kuraleb commented 5 years ago

Hello @kuraleb, give https://github.com/zfigura/wine/blob/esync/README.esync a read.

Thanks. After increasing the simultaneously opening files, the game crashes with an error: "memory allocation failed"

jarrard commented 5 years ago

what does ulimit -aH say? below is mine.

core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63179
max locked memory       (kbytes, -l) 1024
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) 63179
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
kuraleb commented 5 years ago

what does ulimit -aH say? below is mine.

core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63179
max locked memory       (kbytes, -l) 1024
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) 63179
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 46298
max locked memory       (kbytes, -l) 64
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) 16384
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
jarrard commented 5 years ago

Well the only real major difference is max locked memory and max user processes. I'm not sure if those can be changed or if that would help.

kuraleb commented 5 years ago

Well the only real major difference is max locked memory and max user processes. I'm not sure if those can be changed or if that would help.

I adjusted the settings. Unfortunately it did not help

jarrard commented 5 years ago

and if you disable ESYNC now does the game still work or has increasing open file limit introduced this new error?

Could be a issue specific to your configuration and not a general problem that we might all encounter.

To me it sounds like your trying to play the game on hardware that is below the minimal requirement, such as your GPU not having enough VRAM thus causing these allocation memory errors or missing textures (kinda the same thing).

kuraleb commented 5 years ago

and if you disable ESYNC now does the game still work or has increasing open file limit introduced this new error?

Could be a issue specific to your configuration and not a general problem that we might all encounter.

To me it sounds like your trying to play the game on hardware that is below the minimal requirement, such as your GPU not having enough VRAM thus causing these allocation memory errors or missing textures (kinda the same thing).

NVIDIA Corporation GK208BM [GeForce 920M] (rev a1) 2Gb VRAM

ESYNC disabled, now the game does not get hung up, but it also crashes

And on the Wine game worked without departures.

jarrard commented 5 years ago

Yes, however that could be because many things are being avoided from loading, like certain graphical features, or wine could be lying about available memory hence missing textures.

2GB VRAM is pretty low, and I think the 920M is slower then a 660 which is the minimal. To make matters worse the 920M is a MOBILE gpu which introduces some other issues I believe.

I think in your particular case, the solution would be to create a dual boot situation and use Windows to try this game out vs attempting it on proton under Linux. Your hardware specs are just so minimal and this game is VERY demanding.

kuraleb commented 5 years ago

Yes, however that could be because many things are being avoided form loading, like certain graphical features, or wine could be lying about available memory hence missing textures.

2GB VRAM is pretty low, and I think the 920M is slower then a 660 which is the minimal. To make matters worse the 920M is a MOBILE gpu which introduces some other issues I believe.

I think in your particular case, the solution would be to create a dual boot situation and use Windows to try this game out vs attempting it on proton under Linux. Your hardware specs are just so minimal and this game is VERY demanding.

This game works for me and under the Wine and Windows. On the same hardware. 8 fps, but it worked.

And a Proton is faced with similar problems

jarrard commented 5 years ago

I thought you said just above that under Wine it doesn't render in all the textures?

The issue here is that people with reasonably decent hardware seem to be having no problems now provided they set things up right.

So unless you can find someone with a 960M or something who is experiencing similar issues then there might not be much that can be done at this point in time.

kuraleb commented 5 years ago

I thought you said just above that under Wine it doesn't render in all the textures?

The issue here is that people with reasonably decent hardware seem to be having no problems now provided they set things up right.

So unless you can find someone with a 960M or something who is experiencing similar issues then there might not be much that can be done at this point in time.

At me on the wine works with all textures. 10-15 fps

jarrard commented 5 years ago

only thing you can do is a apitrace and see what comes of it.

aw-was-here commented 5 years ago

what does ulimit -aH say? below is mine.

Be aware that on systemd-based machines, ulimit is a lie. systemd's cgroup settings will override them unless it is specifically configured otherwise.

kisak-valve commented 5 years ago

Kingdom Come Deliverance: Weird frame stutter after hr of play, fps is ok but.

Issue transferred from https://github.com/ValveSoftware/Proton/issues/2215. @jarrard posted on 2019-01-14T05:27:05:

Compatibility Report

System Information

I confirm:

Steam log (just to main menu then back out again.) steam-379430.log

Symptoms

After about a hour or so of game-play a weird issue occurs when looking around that causes mouse stutter, however frame-rate is otherwise fine. Game is unplayable when it does this.

Reproduction

Play for a sufficient amount of time.


@jarrard commented on 2019-01-14T06:40:42

If anyone else gets this issue (likely NVIDIA related) then please do comment. It seems pretty consistent with about 1-2hrs worth of play time when it happens.

AsciiWolf commented 5 years ago

Is the dll copy workaround still needed?

jarrard commented 5 years ago

in the Win64Shared folder thing? yes I believe so.

AsciiWolf commented 5 years ago

Is there any way to fix this directly in Proton? KCD works great under Proton and this is the only thing that prevents it from running out-of-box.

jarrard commented 5 years ago

Dunno, but it seems the games exe can't navigate to where the original DLL files are located and that is likely a underlying Wine directory pathing error.

Perhaps a full error log on load up will reveal more on exactly what is going wrong for it to default back to the core exe directory and not the Shared folder.

PS. It should be noted that this isn't the only game where DLL locations have problems, I can't remember which others off the top of my head however.

kaimast commented 5 years ago

I seem to only be able to run the game with Proton 3.7. All other versions freeze at the initial flash screen. I wonder if anybody else has this issue?

jarrard commented 5 years ago

Sorry mine seems fine at 3.16.6 beta, been experimenting with the new adaptivesync drivers 418.30, makes KCD playable at 4k under Linux, pretty surprised. Does require some graphical tweaking and running on mostly medium settings. Also the nexus mod optimized graphics presets helps (there is a small flicker bug with the optz fog setting however)

AsciiWolf commented 5 years ago

@kaimast I had the same issue on Fedora 29 with RX 580 and Flatpak version of Steam. This was in the log: wine: Call from 0x7b44af1c to unimplemented function amd_ags_x64.dll.agsGetCrossfireGPUCount, aborting

Changing the Proton version to 3.7-8 did not help, however copying amd_ags_x64.dll from Win64Shared to Win64 fixed the issue and Kingdom Come now runs fine on my system. :-)

kattjevfel commented 5 years ago

To get this to work for me I had to set PROTON_USE_WINED3D to 1, otherwise it would just hang at the startup splash, using 3.16.6 I only got a black screen.

FPS is absolute rubbish though, 10fps at lowest settings 1080p (around 50-60fps on windows on medium-high, 1440p)

Proton: 4.2-1 GPU: GTX 1080 Driver: nvidia 418.56-5 Kernel: 5.0.5 System information steam-379430.log

astillich commented 5 years ago

About the input stutteer: I have this issue, too. Each time I move the mouse, Proton loads and unloads dinput8.dll. After doing this a lot of times, something seems to slow down DLL loading (?) and cause the stutter.

48621.964:0024:0025:trace:module:LdrAddRefDll (L"dinput8.dll") ldr.LoadCount: 2 48621.964:0024:0025:trace:module:LdrUnloadDll (0x7f6fd19f0000) 48621.964:0024:0025:trace:module:LdrUnloadDll (L"dinput8.dll") - START 48621.964:0024:0025:trace:module:MODULE_DecRefCount (L"dinput8.dll") ldr.LoadCount: 1 48621.964:0024:0025:trace:module:LdrUnloadDll END 48621.965:0024:0025:trace:module:LdrGetDllHandle L"C:\\windows\\system32\\dinput8.dll" -> 0x7f6fd19f0000 (load path L"Z:\\home\\torque\\.steam\\steam\\steamapps\\common\\KingdomComeDeliverance\\Bin\\Win64;C:\\Program Files (x86)\\Steam;C: \\windows\\system32;C:\\windows\\system;C:\\windows;.;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem") 48621.965:0024:0025:trace:module:LdrAddRefDll (L"dinput8.dll") ldr.LoadCount: 2 48621.965:0024:0025:trace:module:LdrUnloadDll (0x7f6fd19f0000) 48621.965:0024:0025:trace:module:LdrUnloadDll (L"dinput8.dll") - START 48621.965:0024:0025:trace:module:MODULE_DecRefCount (L"dinput8.dll") ldr.LoadCount: 1 48621.965:0024:0025:trace:module:LdrUnloadDll END 48621.965:0024:0025:trace:module:LdrGetDllHandle L"C:\\windows\\system32\\dinput8.dll" -> 0x7f6fd19f0000 (load path L"Z:\\home\\torque\\.steam\\steam\\steamapps\\common\\KingdomComeDeliverance\\Bin\\Win64;C:\\Program Files (x86)\\Steam;C:\\windows\\system32;C:\\windows\\system;C:\\windows;.;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem") 48621.965:0024:0025:trace:module:LdrAddRefDll (L"dinput8.dll") ldr.LoadCount: 2 48621.965:0024:0025:trace:module:LdrUnloadDll (0x7f6fd19f0000) 48621.965:0024:0025:trace:module:LdrUnloadDll (L"dinput8.dll") - START <...>

jarrard commented 5 years ago

Once the next DLC hits I'll probably get back into trying KCD out, not sure if the stutter issue exists or how well it runs with 4.2.

Also if you use PROTON_USE_WINED3D=1 then that effectively disables DXVK, keep that in mind when getting terrible FPS. Eventually Wine itself will use Vulkan for DirectX and it won't be a issue but for now its using terrible OpenGL wrapping which is ok for DX9 and below but BAD for DX11 games!

m0stly commented 5 years ago

Edit: Performance issues fixed in official Proton 4.11-1. Custom proton no longer required.

There is a large performance issue with 4.2-9 (and earlier that I tested) since 1.9 of game that is fixed by custom proton build: Proton-4.11-GE-1.

I get: - 45 fps with official proton 4.2-9. - 90 fps using Proton-4.11-GE-1.

When looking at GPU clocks using 4.2-9 these are unusually low, GPU boosting as expected with custom proton. Updating DXVK does not resolve, unable to narrow down further.

I know of 1 other Vega user and 1 Nvidia user reporting this build fixes performance issue.

- GPU: RX Vega 56 - Driver/LLVM version: 19.1.2 & 19.2.0-devel + ACO - Kernel version: 5.2.1-arch1-1-ARCH - Gist - Proton version: 4.2-9

AsciiWolf commented 4 years ago

Fedora 30, GNOME 3.32 (Wayland), Mesa 19.1.2, AMD RX 580, Proton 4.11, workaround applied, "Very High" preset.

Kingdom Come runs absolutely amazing with Proton 4.11! With Proton 4.2, I had around 8 - 18 fps, with Proton 4.11, I get 28 - 40 fps, sometimes even 50+ fps.

kaimast commented 4 years ago

Does it work for you without setting PROTON_USE_WINED3D to 1?

For me it still hangs at the startup splash using proton 4.11 and not using vulkan results in horrible FPS.

kattjevfel commented 4 years ago

Works for me with the workaround (copying amd_ags_x64.dll), get 30-60 FPS on medium, 1080p. Arch Linux, Plasma 5.16.4 (xorg), nvidia 430.40, GTX 1080, Proton 4.11-2 steam-379430.log

jarrard commented 4 years ago

you should get over 60fps at 1080p with gtx1080!

kattjevfel commented 4 years ago

@jarrard no idea what I got on windows, but I normally play in 1440p anyway and all I can remember is that the FPS was crap no matter what..

jarrard commented 4 years ago

Yeah KCD needs vulkan and/or major optimisations.

jarrard commented 4 years ago

I have an annoying issue with this when running 1800p with dual monitor. My mouse will get stuck moving right towards my second monitor. The old stuck mouse pan issue basically. Can't seem to resolve this one however, this is on plasma5.

EDIT: Figured it out, its some proton/game glitch where it doesn't correctly resize the game-screen and you end up with cut off bits, and when you minimise it breaks protons ability to capture the mouse.

You can reset the behaviour in-game by changing down and up a resolution, with a bit of fiddling and luck you can get it to switch correctly without needing to minimise (where it messes up the mouse capture).

Possible proton needs some help detecting when a game is minimised or when a mouse looses game window capture while window is focused. Could be a unique issue to kwin also... (and dual monitor setups)

NOTE: KCD is quite dicey even under windows where it will resize desktop app windows because it forces screen to some 720p mode or something.. its a bit of a mess, shame the developers are not resolving these issues! (they know about them btw)

kaimast commented 4 years ago

Same result with DXVK on proton 4.11-4: The game keeps getting stuck on the splash screen :/

kattjevfel commented 4 years ago

@kaimast Even with copying the dlls as mentioned above?

kaimast commented 4 years ago

Oh you're right. After copying all DLLs, not just the d3dcompiler ones, it works for me.

cp Win64Shared/*.dll Win64

xorgy commented 4 years ago

I get this message on the splash screen by default in Proton 4.2.

Unsupported Graphics Card detected. A GPU with support for D3D FeatureLevel 11.0 is required.

Unsupported Graphics Card detected. A GPU with support for D3D FeatureLevel 11.0 is required.

kaimast commented 4 years ago

I get this message on the splash screen by default in Proton 4.2.

Unsupported Graphics Card detected. A GPU with support for D3D FeatureLevel 11.0 is required.

Unsupported Graphics Card detected. A GPU with support for D3D FeatureLevel 11.0 is required.

What GPU are you using? It might not support certain OpenGL /Vulkan extensions needed for DX11.

jarrard commented 4 years ago

I wouldn't play this game on anything less than a RX480 / GTX960. It's a VERY demanding game and isn't all that greatly optimized atm. Hopefully it gets upgraded to vulkan api sometime.

xorgy commented 4 years ago

@kaimast

What GPU are you using? It might not support certain OpenGL /Vulkan extensions needed for DX11.

I'm using a Radeon VII with RadeonSI and RADV (Mesa 19.2.4). I previously successfully launched KCD on a Radeon WX 7100 some time back though I no longer have access to that system to see if it's a software regression or a hardware difference.

jarrard commented 4 years ago

I remember there being some early issues with Radeon 7 cards. Can you update to bleeding edge mesa?