protonscr

Shadow of the Tomb Raider: Definitive Edition - Failed to compile shader, vkd3d result -4

vkd3dclosed
HansKristian-Work/vkd3d-proton#2054 · opened 2024-08-01 by tgurr · updated 2024-08-01 · 5 comments · github
Ttgurr 2024-08-01 github

I was succesfully playing the DX12 version of Shadow of the Tomb Raider: Definitive Edition on 29th July (three days ago) with Proton Experimental and today it closes/crashes right after clicking the play button in the launcher.

Proton Log shows:

[...]
1547.602:0128:02bc:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
1547.602:0128:02bc:err:d3dcompiler:D3DCompile2 Shader log:
1547.602:0128:02bc:err:d3dcompiler:D3DCompile2     <anonymous>:1:167: E5015: Multiple buffers bound to space 0, index 0.
1547.602:0128:02bc:err:d3dcompiler:D3DCompile2     <anonymous>:1:97: Buffer ColorConstantBuffer is already bound to space 0, index 0.
1547.602:0128:02bc:err:d3dcompiler:D3DCompile2 
1547.602:0128:02bc:err:d3dcompiler:D3DCompile2 Failed to compile shader, vkd3d result -4.
1547.602:0128:02bc:err:d3dcompiler:D3DCompile2 Shader log:
1547.602:0128:02bc:err:d3dcompiler:D3DCompile2     <anonymous>:1:167: E5015: Multiple buffers bound to space 0, index 0.
1547.602:0128:02bc:err:d3dcompiler:D3DCompile2     <anonymous>:1:97: Buffer ColorConstantBuffer is already bound to space 0, index 0.
1547.602:0128:02bc:err:d3dcompiler:D3DCompile2
[...]

Of course there's been a Proton Experimental update as well as a mesa update (24.2.0-rc2 to 24.2.0-rc3) . However other DX12 games I tried before reporting a bug like Starfield, Everspace 2, Like a Dragon: Infinite Wealth still run just fine.

Switching off DX12 in the launcher and run the DX11 version the game also still works fine hence my assumptions it's indeed somehow vkd3d related.

Software information

Shadow of the Tomb Raider: Definitive Edition (750920)
Bildschirmfoto_20240801_211214
Bildschirmfoto_20240801_211155

System information

  • GPU: AMD Radeon RX 7800 XT
  • Driver: radv 24.2.0 / 24.2.0-rc3
  • Wine version: Proton Experimental (Proton: 1722351075 experimental-9.0-20240730)
  • VKD3D-Proton version: Proton Experimental included version (vkd3d-proton - build: ebe7279e7960d20)

Log files

DX12 (fails): steam-750920_dx12.log
DX11 (works): steam-750920_dx11.log

Ttgurr 2024-08-01 github

Another game I've just discovered which also doesn't work (anymore) is Arma Reforger, but there's been an update to the game itself yesterday and I haven't played/tested that one for quite some weeks so probably it may totally be unrelated, still attaching the log steam-1874880.log. Here I get into the game and menu but when trying to load e.g. the training the loading bar never finishes and it even makes the whole computer unresonsible and hard locks so a complete restart of the PC is required, hope the log is still useful in any way. Please advice if I should open a separate issue if there are no indications it might be related.

Mmbriar 2024-08-01 github

There haven't been any changes to vkd3d-proton in 3 weeks, and from the log it looks like it's a problem with d3dcompiler, which isn't handled by vkd3d-proton. Installing native d3dcompiler_47 with winetricks/protontricks will probably fix SotTR. The ARMA issue is probably something else entirely.

Ttgurr 2024-08-01 github

from the log it looks like it's a problem with d3dcompiler, which isn't handled by vkd3d-proton

which project to report the bug to then? what is responsible for / provides d3dcompiler - wine/proton?

Installing native d3dcompiler_47 with winetricks/protontricks will probably fix SotTR. The ARMA issue is probably something else entirely.

thanks for the comment but even if that works which I'd have to check that sounds more like a workaround than a solution and doesn't explain why it worked just three days ago?

Mmbriar 2024-08-01 github

which project to report the bug to then? what is responsible for / provides d3dcompiler - wine/proton?

D3dcompiler handles HLSL to DXBC, the dll is implemented in wine, but wine uses upstream vkd3d as compiler backend. So you can report it on the proton github or the wine gitlab.

As for why it worked 3 days ago.. who knows, but now it's pretty clearly failing due to d3dcompiler, and that's not a vkd3d-proton issue.

For ARMA, sounds like a typical GPU hang issue, but I don't see anything useful in the log. Also not unlikely to be a driver bug. You should open a separate issue for that, maybe also directly on the Mesa gitlab. https://gitlab.freedesktop.org/mesa/mesa/-/blob/30888d1e5c6d92fbceeb7bd41bdedd38f9ac0af3/docs/drivers/amd/hang-debugging.rst

Ttgurr 2024-08-01 github

So you can report it on the proton github or the wine gitlab.

Thanks, did so on Proton GitHub as I'm currently unable to test on plain wine. Switching to Proton 9.0-2 also allows the game to work with the DX12 version so chances are high it's indeed a wine/proton/upstream-wine-included-vkd3d change in the latest Proton Experimental build causing the issue. Bummer that you can't switch to the previous Proton Experimental build to quickly spot such short-term regressions, would be nice if Steam would at least offer the two latest builds to select and also a dedicated regression reporting system. Anyways, things are reported to the proper place, I'm closing this issue and thanks for the documentation for the cpu hang stuff, will certainly take a deeper look once I find some time. Thanks for any help and sorry for falsly reporting it here by becomming mislead by the vkd3d != vkd3d-proton error in the logs, thanks for your time, patience and guidance.

Proton versions