protonscr

God Of War hitting assert during dxbc->dxil with Proton experimental

dxvkclosed d3d11
doitsujin/dxvk#5533 · opened 2026-03-01 by tpalli · updated 2026-03-02 · 11 comments · github
2 matching comments, n / p to jump
Ttpalli 2026-03-01 github

Not able to launch "God Of War" game due to assert being hit during startup.

https://www.protondb.com/app/1593500

3001.882:0138:0284:err:msvcrt:_wassert (L"block && Construct(block.getOperand(block.getFirstLiteralOperandIndex())) == Construct::eStructuredSelection",L"../src-dxvk/subprojects/dxbc-spirv/ir/passes/ir_pass_cfg_cleanup.cpp",257)

Software information

God Of War (dx11 game)

System information

  • GPU: Arc B580 (this is likely a generic bug happening on other gpus also)
  • Driver: Mesa main

Proton experimental hits the issue while stable releases of Proton (9.0-4, 10.0-4) work for me. If I understand correctly bug may be in dxbc-spirv subproject. Branch "gamescope-workaround-2.6" of dxvk seems to work well (this is used by stable proton release) but it is already quite old. This reproduces with dxvk master.

I've been trying to bisect the exact failure but it seems there may be another issue where shader compilation does not finish which makes bisecting hard. One known good commit is "[meta] Document shader cache env vars" which is right before "Enable dxbc-spirv by default". Bisecting is also somewhat hard because I don't have good understanding of the branching model and which exact dxvk (or dxbc-spirv) branch is used by certain Proton release.

Log files

Assert should be easy to hit with Proton experimental/hotfix.

Ttpalli 2026-03-01 github
BBlisto91 2026-03-01 github

Not hitting the issue on my 7900 xtx at least. Couple of weeks old mesa main

KK0bin maintainer 2026-03-01 github

I'm not hitting any asserts with an Nvidia GPU either. Forcing the vendor ID to Intel doesn't make it show up either.

@tpalli Could you dump and upload the shaders? To do so start the game with the environment variable DXVK_SHADER_DUMP_PATH=some/folder.

Ddoitsujin maintainer 2026-03-01 github

This is one of the games that I test like literally all the time and haven't ever seen this kind of problem, definitely need more info here.

Ttpalli 2026-03-01 github

Ok thanks .. weird stuff. I'll dump shaders and try to fake vendor id as well, maybe I'm getting different sort of dxbc for some reason.

KK0bin maintainer 2026-03-01 github

What do you mean by 'different sort of dxbc'? You don't need to fake the vendor ID, I just did that hoping that I'd hit the assert that you already got without it.

Ddoitsujin maintainer 2026-03-01 github

One thing that comes to mind is that maybe some of the Intel-specific code paths that DXVK hits are broken, but that is all sorts of annoying to test.

Edit: Yeah when I force sincos emulation on it breaks for some reason. This is an Intel-exclusive path, so it doesn't affect anything else.

Ddoitsujin maintainer 2026-03-01 github

Should hopefully work now, was one of those oversight kind of things that ended up being a one-line fix.

Ttpalli 2026-03-02 github

Thanks a lot for taking closer look. I think it might need something more, now I'm hitting issue in spirv->dxil with a shader. With spirv validator I see following error:

VulkanSDK/1.4.341.1/x86_64/bin/spirv-val ./0xfail.frag 
error: line 1435: Cannot declare a function in a function body
  %1142 = OpFunction %v2float None %1143

I've attached spirv dump in Mesa issue:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/14914#note_3354823

I will attach all shaders up to that point as well. Ok .. tried that but unfortunately no shaders get dumped by using DXVK_SHADER_DUMP_PATH .. but I'm getting that failing shader.

Ttpalli 2026-03-02 github

What do you mean by 'different sort of dxbc'? You don't need to fake the vendor ID, I just did that hoping that I'd hit the assert that you already got without it.

Yeah I mean maybe Intel is getting different treatment which leads to the bug but it seems like setting different vendor does not help with the issue. I tried this via dxvk.conf (dxvk.customVendorId).

Ttpalli 2026-03-02 github

Argh sorry maybe my testing was not quite correct, now when testing with dxvk master branch it works fine :) Sorry, I was only attempting to update dxbc-spirv and perhaps something went wrong there. I will still verify this once again and only reopen if I hit issues. Thanks!

Proton versions

Launch options