Proton icon indicating copy to clipboard operation
Proton copied to clipboard

Horizon Zero Dawn (1151640)

Open NamoDev opened this issue 3 years ago • 889 comments

Compatibility Report

  • Name of the game with compatibility issues: Horizon Zero Dawn
  • Steam AppID of the game: 1151640

System Information

  • GPU: GTX 1080 Ti
  • Driver/LLVM version: nvidia 440.100
  • Kernel version: 5.7.6
  • Link to full system information report as Gist
  • Proton version: 5.0.10-RC4

I confirm:

  • [X] that I haven't found an existing compatibility report for this game.
  • [X] that I have checked whether there are updates for my system available.

Note: current NVIDIA driver is the latest version available in RPMFusion for Fedora 32

Symptoms

Game doesn't start - a dialog pops up saying "Unfortunately the game crashed" without providing any error details.

Screenshot from 2020-08-07 11-11-08

Reproduction

Just start the game through Steam. steam-1151640.log

NamoDev avatar Aug 07 '20 15:08 NamoDev

Same issue here. Identical error box, and nothing else.

System Information

  • GPU: GeForce GTX 1080 Ti
  • Driver/LLVM version: NVIDIA 440.95.01
  • Kernel version: 5.4.0-7634-generic
  • Link to full system information report as Gist:
  • Proton version: 5.0-9

A comment further down noticed that the logs are different if you click "yes" or "no" to sending a report. Here are logs for both cases:

Log when clicking "no" to sending crash report: steam-1151640-no_crash_report.log

Log when clicking "yes" to sending crash report: steam-1151640-yes_crash_report.log

Edit: Out of curiosity I tried with the newest GloriousEggroll/proton-ge-custom release, with seemingly same result. Log here, in case it helps anyone: proton_5.9-GE-5-ST_steam-1151640.log

olav-valle avatar Aug 07 '20 15:08 olav-valle

Same issue here. Identical error box, and nothing else. steam-1151640.log Steam Sys-info

NTMan avatar Aug 07 '20 15:08 NTMan

Looking at the logs from everyone, looks like this is common point where error occurs.

warn:debugstr:OutputDebugStringA "An unknown unhandled exception (C06D007Eh) has occurred in thread 'Main' (0) at instruction location 000000007B00FC3Eh\n\nCall stack:\nBase address: 0x000140000000\n 0. 0x00007BCDAC6C RtlVirtualUnwind\n 1. 0x00007BCDAF82 RtlVirtualUnwind\n 2. 0x00007BCDB2FE NtRaiseException\n 3"

I"m having same issue, the same line was also in my proton log, along with the error cpu_context_win.cc:144] non-x64 context

korodarn avatar Aug 07 '20 15:08 korodarn

Same issue as mentioned by other users. However, I am still updating my results, incase it helps further to find the root cause.

System Info steam-1151640_GE_5.9-5_ST.log steam-1151640_Proton509.log steam-1151640_Proton509_next.log

abhishek-rawal avatar Aug 07 '20 16:08 abhishek-rawal

same here System Info

fsyy avatar Aug 07 '20 16:08 fsyy

Same issue here.

Cxpher avatar Aug 07 '20 16:08 Cxpher

same here

liberodark avatar Aug 07 '20 17:08 liberodark

I think, "error cpu_context_win.cc:144] non-x64 context" is the crash-reporter crashing and not hzd. When you click on no when being asked to send the error report, you get a much different proton log. Then warn:debugstr:OutputDebugStringA "Initializing DLMalloc Heap\n" maybe looks like the evil witch, that caused all of this. steam-1151640.log

CuteSC2 avatar Aug 07 '20 17:08 CuteSC2

It's also dx12 only. That might not help a lot either.

NextGenRyo avatar Aug 07 '20 20:08 NextGenRyo

I'm getting the same pop-up.. I tried multiple versions of proton including proton-ge and proton-tkg..

77boaz avatar Aug 07 '20 20:08 77boaz

I'm having the same issue

wannfq avatar Aug 08 '20 08:08 wannfq

Then warn:debugstr:OutputDebugStringA "Initializing DLMalloc Heap\n" maybe looks like the evil witch, that caused all of this. steam-1151640.log

It isn't. These logs have a lot of info and possibly not enough.

Point in fact you can look at

fixme:msvcrt:MSVCRT__stdio_common_vsnwprintf_s options 24 not handled
warn:debugstr:OutputDebugStringA "Initializing DLMalloc Heap\n"

and think that could cause a failure. But, it is highly likely a red herring.

Also, stuff like "execute_cfa_instructions", "raise_exception", "dump_unwind_info" can all be present in a working game. Logs can also present other challenges with log entries appearing at different places.

There's also fixme and warnings appearing for dx12 but that may or may not mean anything important as well.

fixme:d3d12_device_caps_init_feature_options1: TotalLaneCount = 3840, may be inaccurate.
fixme:dxgi:dxgi_adapter_QueryVideoMemoryInfo Returning fake video memory info.
fixme:dxgi:dxgi_adapter_SetVideoMemoryReservation iface 0xd97f40, node_index 0, segment_group 0, reservation 0x180000000 stub!
warn:d3d12_device_CheckFeatureSupport: Shader cache features not supported.fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x55.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x56.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x73.

Its possible this one may take months or more to solve. Just depends on the problems and how many.

ghost avatar Aug 08 '20 17:08 ghost

Same issue here. Identical error box. steam-1151640.log steam-sysinfo.txt

karzinogen avatar Aug 08 '20 20:08 karzinogen

I added some additional debug channels for this log that will hopefully be helpful.

steam-1151640.zip sysinfo.txt

korodarn avatar Aug 09 '20 08:08 korodarn

I added some additional debug channels for this log that will hopefully be helpful.

steam-1151640.zip sysinfo.txt

That does help a bit. The logs previously I don't think any other logs here show the dialog - the issuer's doesn't and I checked one other making two before this large one you provided.

You get that crash dialog box within [edit: 3k] lines [probably ~2.7 or 2.8k] of the dx12 info I posted above notably

"warn:d3d12_device_CheckFeatureSupport: Shader cache features not supported"
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x56

Since its mostly garbage in between, its probable that its happening at the dx12 stuff or before (I haven't looked into it yet any further).

The error dialog.

0150:Ret  PE DLL (proc=0x11007bb8,module=0x11000000 L"amd_ags_x64.dll",reason=THREAD_ATTACH,res=(nil)) retval=1
0150:Starting thread proc 0x140375730 (arg=0x4fc5500)
0150:Call user32.MessageBoxW(00000000,141b588b0 L"Unfortunately the game has crashed.\nDo you want to help us fix the issue by sending a crash report?",141b59dc0 L"Error",00040014) ret=1403757c8

So it looks like much of the log is the end result of it crashing. I included the amd dll line in there just because its next to it and it may not mean anything.

ghost avatar Aug 09 '20 17:08 ghost

I tried the game on Windows 10 too and it also won't run, displaying exactly the same dialog box.

However, before the "Unfortunately the game has crashed..." error, it displays different dialog box that says the game will only run with driver version 27. This is NVidia DirectX driver version and that version supports DirectX12 Ultimate, which I couldn't install on the computer I have running Windows 10 because... reasons...

So, I assume that the reason for this crash on Proton is essentially because there is no DirectX 12 Ultimate support either in Proton, or DX dlls being used in Proton prefix for this game, or because NVidia driver I have on Linux (440.100) does not provide features needed to implement/emulate DX12 Ultimate, or some other place (I'm not really familiar with all the Wine/Proton stack to be able to pinpoint this more precisely).

Just my 2 cents, thought it may help in some way.

zagortenej avatar Aug 09 '20 22:08 zagortenej

So, I assume that the reason for this crash on Proton is essentially because there is no DirectX 12 Ultimate support either in Proton, or DX dlls being used in Proton prefix for this game, or because NVidia driver I have on Linux (440.100) does not provide features needed to implement/emulate DX12 Ultimate, or some other place (I'm not really familiar with all the Wine/Proton stack to be able to pinpoint this more precisely).

Its certainly possible. Though Death Stranding is I believe the only other game that is using this version of the Decima engine and dx12, and it has been working with the Proton next version, although that seems to be iffy and not without problems.

VKD3D is still a work-in-progress but they also note that 440.100 is one that works with dx12 and also a higher version driver may be needed. I'm not sure anyone has tested here with the Nvidia Vulkan developer beta driver as well.

But, it definitely looks possible that everyone may need to wait for VKD3D to improve and to have a driver that will work with it. Should find out in time.

ghost avatar Aug 10 '20 01:08 ghost

it is most probably a dx12 issue, I get "fixme:d3d12_device_CheckFeatureSupport: Unhandled feature 0x13." before it crashes, in logs.

Looks like we have to wait for vkd3d to progress more.

NextGenRyo avatar Aug 10 '20 01:08 NextGenRyo

it is most probably a dx12 issue, I get "fixme:d3d12_device_CheckFeatureSupport: Unhandled feature 0x13." before it crashes, in logs.

Looks like we have to wait for vkd3d to progress more.

You can get rid of these error in a dirty way by adding some lines to vkd3d. It doesn't make a difference. Copying dxcompiler.dll from the tools directory to the executable's directory does make it show the loading screen, but it still crashes with the same message, so it's not really useful.

Danacus avatar Aug 10 '20 05:08 Danacus

I noticed doing some debugging that the error message is from a generic exception handler. It doesn't indicate what's happening behind the scenes except that the game crashed.

Vbitz avatar Aug 10 '20 08:08 Vbitz

As @Danacus says, the initial error is likely due to dxcompiler.dll being missing (from @korodarn's log - thank you!):

00bc:Call KERNEL32.LoadLibraryExA(141e94fc0 "dxcompiler.dll",00000000,00000000) ret=1416abd49
...
00bc:Ret  KERNEL32.LoadLibraryExA() retval=00000000 ret=1416abd49
00bc:Call KERNEL32.GetLastError() ret=1416abd57
00bc:Ret  KERNEL32.GetLastError() retval=0000007e ret=1416abd57
00bc:Call KERNEL32.RaiseException(c06d007e,00000000,00000001,0021e290) ret=1416abd9d

If someone who has copied dxcompiler.dll from the tools directory to the executable's directory (and got to the loading screen, as Danacus stated) could provide a WINEDEBUG=+relay,module,seh,timestamp log, it might help find a way around it :) (remember to compress it, otherwise it'll be pretty huge haha)

qsniyg avatar Aug 10 '20 11:08 qsniyg

I don't think it got to loading screen, but log does look a bit different so maybe it will be useful, maybe not. steam-1151640_2.zip

korodarn avatar Aug 10 '20 13:08 korodarn

@korodarn No idea if this will help or not, but try installing the native d3dcompiler_47 (protontricks 1151640 d3dcompiler_47):

73612.804:00bc:Call d3dcompiler_47.D3DCreateBlob(0000022c,0021e360) ret=1401f327e
73612.804:00bc:Ret  d3dcompiler_47.D3DCreateBlob() retval=00000000 ret=1401f327e
...
73612.804:00bc:trace:seh:raise_exception code=c0000005 flags=0 addr=0x1400f0787 ip=1400f0787 tid=00bc

qsniyg avatar Aug 10 '20 13:08 qsniyg

steam-1151640_1.zip I copied the d3dcompiler_47 into the executable folder as well the run prior to the one I uploaded. I zipped it right before so it is here

*I know this might not do exactly the same thing as the install, since I didn't change the setting so I'm verifying if it used this file and will try re-running after.

korodarn avatar Aug 10 '20 13:08 korodarn

I'm guessing this might be related to cause of the crash then:

warn:d3d12_swapchain_set_display_mode: Failed to find closest matching mode, hr 0x887a0001.
...
err:d3d12_swapchain_resize_target: Failed to set display mode, hr 0x887a0001.
...
73337.021:00bc:trace:seh:raise_exception code=c0000005 flags=0 addr=0x1400f0787 ip=1400f0787 tid=00bc

There are also a few warning messages above it, not sure if they're relevant:

d3d12 fixmes in log
fixme:d3d12_rtv_desc_create_rtv: NULL resource RTV not implemented.
fixme:d3d12_pipeline_library_LoadGraphicsPipeline: iface 000000000086E0F0, name "a7c87623f47cdb58f8e2d75445db3985", desc 000000000021E3E0, iid {765a30f3-f624-4c6f-a828-ace948622445}, pipeline_state 000000000021E3A0 stub!
fixme:d3d12_pipeline_library_StorePipeline: iface 000000000086E0F0, name "a7c87623f47cdb58f8e2d75445db3985", pipeline 00000000008EC1F0 stub!
fixme:d3d12_pipeline_library_LoadGraphicsPipeline: iface 000000000086E0F0, name "2537307d2151a4df271e4f83d59bb13a", desc 000000000021E7A0, iid {765a30f3-f624-4c6f-a828-ace948622445}, pipeline_state 000000000021E760 stub!
fixme:d3d12_pipeline_library_StorePipeline: iface 000000000086E0F0, name "2537307d2151a4df271e4f83d59bb13a", pipeline 00000000008ECC80 stub!
fixme:d3d12_pipeline_library_LoadGraphicsPipeline: iface 000000000086E0F0, name "21027ab47f814a59b74aac09a0de8a03", desc 000000000021E7A0, iid {765a30f3-f624-4c6f-a828-ace948622445}, pipeline_state 000000000021E760 stub!
fixme:d3d12_pipeline_library_StorePipeline: iface 000000000086E0F0, name "21027ab47f814a59b74aac09a0de8a03", pipeline 00000000008ED710 stub!
fixme:d3d12_pipeline_library_LoadGraphicsPipeline: iface 000000000086E0F0, name "27b94cf050813cc52a0b50f27d19c573", desc 000000000021E740, iid {765a30f3-f624-4c6f-a828-ace948622445}, pipeline_state 000000000021E700 stub!
fixme:d3d12_pipeline_library_StorePipeline: iface 000000000086E0F0, name "27b94cf050813cc52a0b50f27d19c573", pipeline 00000000008EE1A0 stub!

qsniyg avatar Aug 10 '20 14:08 qsniyg

Patch 1.01 is out, i didn't get to test it yet.

https://www.reddit.com/r/horizon/comments/i9jaa0/horizon_zero_dawn_complete_edition_for_pc_patch/

fsyy avatar Aug 14 '20 13:08 fsyy

Still crashes for me.

intersectRaven avatar Aug 14 '20 13:08 intersectRaven

Suppose its worth nothing and giving intersectRaven a break for the low quality post as the patch includes "Some players are experiencing startup crashes. Patch 1.01 fixes a few, but not all, of these crashes."

That patch should only benefit you when you can run it.

But, it still may need Proton/Wine/VKD3D/etc fixes before this game even runs.

ghost avatar Aug 14 '20 19:08 ghost

By cherry-picking the some commits from upstream vkd3d into the valve tree you can fix the "unhandled feature" errors, and you can fix the "unhandled format" errors by simply adding the missing formats (not hard, these are supported formats in vulkan you just need to add the correct mapping). After this the game complains about missing DXIL support. Unfortunately even if you enable dxil-spirv in vkd3d you still can't get further than the loading screen because it fails with an "[ERROR] UNKNOWN unimplemented" which is coming from dxil-spirv. I tried going deeper but this stuff (vulkan/spirv/llvm) is way over my head and I'm not even sure what I did so far is correct. Anyway I think this game needs DXIL and dxil-spirv is not enough yet.

nyz93 avatar Aug 15 '20 21:08 nyz93

Well, there are bad news and good news. There was a recent update to dxil-spirv and now the graphics initialization seems to be done and now the input that's broken. The game tries to load "Windows.Gaming.Input" and fails to do so. It seems like it's some kind of WinRT/UWP API but I can't find many references to this in wine, not sure what's the next step here.

Edit: found some interesting stuff in wine and made some stubs hoping it would crash later but it's the same, I think this game is now blocked by fundamental missing features from wine.

nyz93 avatar Aug 20 '20 23:08 nyz93