protonscr

Monster Hunter Wilds vertex explosions and freezes

vkd3dopen
HansKristian-Work/vkd3d-proton#2532 · opened 2025-06-28 by Raikiri · updated 2026-02-05 · 7 comments · github
RRaikiri 2025-06-28 github

There are multiple adjacent issues about the game crashing, but I don't see any issues about vertex artifacts specifically (that seem to be correlated to freezes).
Vertex explosions usually start randomly after ~10 minutes of playtime like this:

Image

Over time they get progressively worse, taking over more and more geometry, usually making it either entirely impossible to see anything or the game freezing (have to force shut down via steam). Sometimes it just straight up freezes without any prior vertex explosions, but I assume these issues are related.

Software information

NixOS, proton experimental

System information

  • GPU: RTX4090 (laptop version)
  • Driver: 570.144
  • Wine version:
  • VKD3D-Proton version: proton experimental (also tried 10 beta and experimental bleeding edge)

Log files

The log is 1.9GB. So I'll attach its start:

======================
Proton: 1749849620 experimental-10.0-20250612c
SteamGameId: 2246340
Command: ['/run/media/alexander/Linux Data Tmp/SteamLibrary/steamapps/common/MonsterHunterWilds/MonsterHunterWilds.exe']
Options: {'forcelgadd'}
depot: 3.0.20250408.124536
pressure-vessel: 0.20250408.0 scout
scripts: 0.20250408.0
sniper: 3.0.20250408.124536 sniper 3.0.20250408.124536
Kernel: Linux 6.12.30 #1-NixOS SMP PREEMPT_DYNAMIC Thu May 22 12:29:54 UTC 2025 x86_64
Language: LC_ALL None, LC_MESSAGES None, LC_CTYPE None
PATH: /run/media/alexander/BigLinuxData/SteamLibrary/steamapps/common/Proton - Experimental/files/bin/:/usr/bin:/bin
Effective WINEDEBUG: +timestamp,+pid,+tid,+seh,+unwind,+threadname,+debugstr,+loaddll,+mscoree
======================

And then an ungodly amount of spam of this sort:

113950.796:0158:0164:trace:unwind:dump_unwind_info **** func 34390-34b99
113950.796:0158:0164:trace:unwind:dump_unwind_info unwind info at 00006FFFFFFDEDA8 flags 0 prolog 0x1b bytes function 00006FFFFFF74390-00006FFFFFF74B99
113950.796:0158:0164:trace:unwind:dump_unwind_info     frame register rbp offset 0x80(%rsp)
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x1b: leaq 0x80(%rsp),rbp
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x13: subq $0x648,%rsp
113950.796:0158:0164:trace:unwind:dump_unwind_info     0xc: pushq %rbx
113950.796:0158:0164:trace:unwind:dump_unwind_info     0xb: pushq %rsi
113950.796:0158:0164:trace:unwind:dump_unwind_info     0xa: pushq %rdi
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x9: pushq %r12
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x7: pushq %r13
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x5: pushq %r14
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x3: pushq %r15
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x1: pushq %rbp
113950.796:0158:0164:trace:unwind:RtlVirtualUnwind2 type 2 base 6ffffc420000 rip 6ffffc9baee6 rva 59aee6 rsp 188dcd0
113950.796:0158:0164:trace:unwind:dump_unwind_info **** func 59addc-59aefb
113950.796:0158:0164:trace:unwind:dump_unwind_info unwind info at 00006FFFFCFDE3FC flags 3 prolog 0x1c bytes function 00006FFFFC9BADDC-00006FFFFC9BAEFB
113950.796:0158:0164:trace:unwind:dump_unwind_info     0xe: subq $0xe0,%rsp
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x2: pushq %rbp
113950.796:0158:0164:trace:unwind:dump_unwind_info     handler 00006FFFFC9B98A0 data at 00006FFFFCFDE40C
113950.796:0158:0164:trace:seh:RtlUnwindEx calling handler 00006FFFFC9B98A0 (rec=000000000188DD00, frame=188dcd0 context=000000000188E4F0, dispatch=000000000188D6C0)
113950.796:0158:0164:trace:seh:RtlUnwindEx handler 00006FFFFC9B98A0 returned 1
113950.796:0158:0164:trace:unwind:RtlVirtualUnwind2 type 2 base 6ffffc420000 rip 6ffffc9bce79 rva 59ce79 rsp 188ddc0
113950.796:0158:0164:trace:unwind:dump_unwind_info **** func 59cdc0-59ce91
113950.796:0158:0164:trace:unwind:dump_unwind_info unwind info at 00006FFFFCFDE7FC flags 0 prolog 0x1a bytes function 00006FFFFC9BCDC0-00006FFFFC9BCE91
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x1a: movq %rbx,0xa0(%rsp)
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x1a: subq $0x60,%rsp
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x16: pushq %r15
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x14: pushq %r14
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x12: pushq %r13
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x10: pushq %r12
113950.796:0158:0164:trace:unwind:dump_unwind_info     0xe: pushq %rdi
113950.796:0158:0164:trace:unwind:dump_unwind_info     0xd: pushq %rsi
113950.796:0158:0164:trace:unwind:dump_unwind_info     0xc: pushq %rbp
113950.796:0158:0164:trace:unwind:RtlVirtualUnwind2 type 2 base 6ffffc420000 rip 6ffffc9bdd00 rva 59dd00 rsp 188de60
113950.796:0158:0164:trace:unwind:dump_unwind_info **** func 59dad8-59ddcc
113950.796:0158:0164:trace:unwind:dump_unwind_info unwind info at 00006FFFFCFDE830 flags 3 prolog 0x27 bytes function 00006FFFFC9BDAD8-00006FFFFC9BDDCC
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x19: subq $0x138,%rsp
113950.796:0158:0164:trace:unwind:dump_unwind_info     0xd: pushq %r15
113950.796:0158:0164:trace:unwind:dump_unwind_info     0xb: pushq %r14
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x9: pushq %r13
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x7: pushq %r12
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x5: pushq %rdi
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x4: pushq %rsi
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x3: pushq %rbx
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x2: pushq %rbp
113950.796:0158:0164:trace:unwind:dump_unwind_info     handler 00006FFFFC9B98A0 data at 00006FFFFCFDE84C
113950.796:0158:0164:trace:seh:RtlUnwindEx calling handler 00006FFFFC9B98A0 (rec=000000000188DD00, frame=188de60 context=000000000188E4F0, dispatch=000000000188D6C0)
113950.796:0158:0164:trace:seh:RtlUnwindEx handler 00006FFFFC9B98A0 returned 1
113950.796:0158:0164:trace:unwind:RtlVirtualUnwind2 type 2 base 6ffffc420000 rip 6ffffc9bd7f1 rva 59d7f1 rsp 188dfe0
113950.796:0158:0164:trace:unwind:dump_unwind_info **** func 59d364-59d865
113950.796:0158:0164:trace:unwind:dump_unwind_info unwind info at 00006FFFFCFDE7DC flags 3 prolog 0x2a bytes function 00006FFFFC9BD364-00006FFFFC9BD865
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x1c: subq $0x188,%rsp
113950.796:0158:0164:trace:unwind:dump_unwind_info     0xd: pushq %r15
113950.796:0158:0164:trace:unwind:dump_unwind_info     0xb: pushq %r14
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x9: pushq %r13
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x7: pushq %r12
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x5: pushq %rdi
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x4: pushq %rsi
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x3: pushq %rbx
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x2: pushq %rbp
113950.796:0158:0164:trace:unwind:dump_unwind_info     handler 00006FFFFC9B98A0 data at 00006FFFFCFDE7F8
113950.796:0158:0164:trace:seh:RtlUnwindEx calling handler 00006FFFFC9B98A0 (rec=000000000188DD00, frame=188dfe0 context=000000000188E4F0, dispatch=000000000188D6C0)
113950.796:0158:0164:trace:seh:RtlUnwindEx handler 00006FFFFC9B98A0 returned 1
113950.796:0158:0164:trace:unwind:RtlVirtualUnwind2 type 2 base 6ffffc420000 rip 6ffffc9be4fc rva 59e4fc rsp 188e1b0
113950.796:0158:0164:trace:unwind:dump_unwind_info **** func 59e290-59e524
113950.796:0158:0164:trace:unwind:dump_unwind_info unwind info at 00006FFFFCFDE7A4 flags 0 prolog 0x1b bytes function 00006FFFFC9BE290-00006FFFFC9BE524
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x1b: movq %rsi,0xb0(%rsp)
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x1b: movq %rbp,0xa8(%rsp)
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x1b: movq %rbx,0xa0(%rsp)
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x1b: subq $0x80,%rsp
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x14: pushq %r15
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x12: pushq %r14
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x10: pushq %rdi
113950.796:0158:0164:trace:unwind:RtlVirtualUnwind2 type 2 base 6ffffc420000 rip 6ffffc9be561 rva 59e561 rsp 188e250
113950.796:0158:0164:trace:unwind:dump_unwind_info **** func 59e52c-59e577
113950.796:0158:0164:trace:unwind:dump_unwind_info unwind info at 00006FFFFCFDE6A4 flags 2 prolog 0x6 bytes function 00006FFFFC9BE52C-00006FFFFC9BE577
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x6: subq $0x40,%rsp
113950.796:0158:0164:trace:unwind:dump_unwind_info     0x2: pushq %rbx

Mmbriar 2025-06-28 github

The log is probably not going to be particularly useful for debugging this, but it would be no problem to attach the full thing as a .zip because it would compress to next to nothing.

RRaikiri 2025-06-28 github

Curiously, after manually deleting all non-pack game files (essentially leaving only data files), re-downloading everything, the log became much smaller:

steam-2246340.tar.gz

After re-downloading, I also hunted at least one hunt without any major problems. Unfortunately, the problem is inconsistent: sometimes I could even play an entire day without any issues, but then I launch the game the next day and get vertex explosions and freezes after 5 minutes.

HHansKristian-Work maintainer 2025-06-30 github

Known, but unsolveable without NV driver fix. I reported a reproducer for the demo a long time ago, but no reported fix yet.

RRaikiri 2025-07-01 github

Is there a known reason for what's breaking and/or a reliable workaround of what to actually do in order to bypass the problem?

Can you maybe bump it again for their producers, because I'm sure they got enough on their plate at the time, they likely just forgot?

PPadTrick 2025-07-11 github

For me this game is not even starting. The windows opens and resizes after that it just hangs.
Arch Linux
Kernel 6.15.6-zen1-1-zen
AMD Ryzen 7 5800X (16) @ 4.85 GHz
Intel Arc A770 @ 2.40 GHz [Discrete]
Mesa 25.2.0-devel (git-7a506d0a41)

All Proton Versions

steam-2246340.log

Mmbriar 2025-07-11 github

@PadTrick probably some variation of https://gitlab.freedesktop.org/mesa/mesa/-/issues/12761, but unrelated to the nvidia issues discussed here.

EEckoa 2026-02-05 github

MH Wilds was for a time working fairly well but as of 6months ago on RTX5000 series it either doesnt launch with 580 driver or has vertex issues galore and sub 30fps on 590 drivers.

While there is likely nothing that can be done here with vkd3d Im posting this so people know that its still a problem and as of now there isnt any sign of a fix on the horizon.

thank you @HansKristian-Work for your work an initial report, nvidia just doesnt seem to care about this.

Proton versions

Launch options