protonscr

Mingw-w64 12.0 ucrt crash

dxvkclosed
doitsujin/dxvk#4666 · opened 2025-02-02 by Blisto91 · updated 2025-02-02 · 2 comments · github
BBlisto91 2025-02-02 github

Split off from https://github.com/doitsujin/dxvk/issues/4662

NSFW warning

Trail of the game can be downloaded here https://www.ensemble-game.com/27.hoshioto/download.html

Original comment made in the issue linked above

Might as well comment my own findings from poking at the game.

At least here locally the game and it's launcher will crash with builds compiled with the latest mingw-w64 bump https://archlinux.org/packages/?sort=&q=mingw-w64. Current version is 14.2.0 for gcc, 12.0.0 for headers, crt and winpthreads and binutils is 2.43. Downgrading to their previous version and compiling dxvk makes it work again.

Apparently with 12.0 there was a change of the default C runtime so it is UCRT now instead of MSVCRT as previous. Compiling my mingw-w64 system packages with --with-default-msvcrt=msvcrt allows me to compile working dxvk builds again. Credit to @Saancreed for this.

The error shown with a bad build is

info:  Game: AdvHD.exe
info:  DXVK: v2.5.3-76-g1d90772e
info:  Build: x86 gcc 14.2.0
0024:err:virtual:map_view anon mmap error Cannot allocate memory, size 0x80020000, unix_prot 0
0024:err:virtual:allocate_virtual_memory out of memory for allocation, base (nil) size 80010000
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
0024:err:seh:NtRaiseException Unhandled exception code c0000409 flags 1 addr 0x7b10468b

which happens on this line in the findProfile function.
https://github.com/doitsujin/dxvk/blob/5569274a97f8b18c0e1ed5590aa12b54c726e659/src/util/config/config.cpp#L1217

It seems like, as it goes through all the builtin configs, that it crashes when it meets a regex that contains a range. They are the square brackets that can be seen in two builtin configs.
So the one it hits first and crashes with the error above is

{ R"(\\FIFA(19|[2-9][0-9])(_demo)?\.exe$)", {{

I am unsure why this specific game is special and causes a crash as it doesn't happen with any of the other games i have installed. It isn't the path with Japanese characters as it happens even when those are removed. Something special with the exe maybe.
But i am guessing this is a mingw-w64 bug either way.

BBlisto91 2025-02-02 github

Nvm the original issue was reopened

BBlisto91 2025-02-02 github

Upstream links

Error codes