Testing recently released GOG version.
The error doesn't seem to be directly dxvk related though, but with wined3d it's not crashing like that, instead it's causing GPU hang.
With dxvk, the crash is as follows (output from Wine debug, I don't see anything anomalous in dxvk logs themselves):
mmap() failed: Cannot allocate memory
Failed to create permanent mapping for memfd region with ID = 4204222935
Ignoring received block reference with non-registered memfd ID = 4204222935
Assertion 'pa_atomic_load(&(c)->_ref) >= 1' failed at pulse/context.c:1052, function pa_context_disconnect(). Aborting.
00ac:fixme:dbghelp:validate_addr64 Unsupported address fffffffff79c0000
00ac:fixme:dbghelp:validate_addr64 Unsupported address fffffffff7980000
00ac:fixme:dbghelp:validate_addr64 Unsupported address fffffffff7b70000
00ac:fixme:dbghelp:validate_addr64 Unsupported address fffffffff77b0000
00ac:fixme:dbghelp:validate_addr64 Unsupported address fffffffff0f50000
00ac:fixme:dbghelp:validate_addr64 Unsupported address fffffffff0540000
00ac:fixme:dbghelp:validate_addr64 Unsupported address ffffffffef3d0000
00ac:fixme:dbghelp:validate_addr64 Unsupported address ffffffffe43e0000
00ac:fixme:dbghelp:validate_addr64 Unsupported address fffffffff0f10000
00ac:fixme:dbghelp:validate_addr64 Unsupported address fffffffff0510000
00ac:fixme:dbghelp:validate_addr64 Unsupported address ffffffffef340000
00ac:fixme:dbghelp:validate_addr64 Unsupported address ffffffffe4130000
00ac:fixme:dbghelp:validate_addr64 Unsupported address ffffffffac580000
00ac:fixme:faultrep:ReportFault 0x2114ef04 0x0 stub
0009:fixme:msvcrt:MSVCRT__set_abort_behavior _WRITE_CALL_REPORTFAULT unhandled
0009:fixme:msvcrt:__clean_type_info_names_internal (0x26a630) stub
I tried applying "large address aware" patch to the binary using this tool, but that didn't help.
This game works fine for me. I have no idea what your issue is.
fwiw I am using the Steam version.
Same here, this game has been working with DXVK for ages and I still test it from time to time.
mmap() failed: Cannot allocate memory
This is a clear indication that you're running out of virtual memory for some reason (too many fonts installed?).
May be GOG version differs in some way - there is no guarantee they are the same. I tried that 4GB hack above, since I also thought it's about virtual memory limit. No luck. 32-bit games are just messy...
I also affected GOG installer to prevent it from polluting the prefix with all kind of dx junk. I.e. I used this when installing:
WINEDLLOVERRIDES='D3D11Install_2010.exe=d;DXSETUP.exe=d;scriptinterpreter.exe=d;vcredist_x86.exe=d;vcredist_x86_vs2008sp1.exe=d;vcredist_x86_vs2010sp1.exe=d'
I'll try without messing with it as well.
I'll wait for confirmation from anyone with GOG version if it works for them or not.
Well anyway, running out of virtual memory isn't exactly a DXVK bug, and you should really check your setup (wine prefix, fontconfig - some Windows apps load all your system fonts into memory!).
How can I check fonts memory consumption?
Monitoring process virtual memory, it clearly hits somewhere 3.7GB and then crashes (I suppose going over 4).
With wined3d it's causing a GPU reset, but doesn't crash, and stops at around 3.6GB virtual memory.
You're playing on GOG, right?
Galaxy is known to leak file descriptors and memory because they have no idea what they are doing and should stop shipping that crap with games given they're DRM Free.
I'm not using Galaxy client itself in any capacity, though the DLL is bundled with the game. I can check if removing it is helping anything.
Hm. Removing Galaxy.dll produced:
0009:err:module:import_dll Library Galaxy.dll (which is needed by L"C:\\bioshock_infinite\\Binaries\\Win32\\common.dll") not found
0009:err:module:import_dll Library common.dll (which is needed by L"C:\\bioshock_infinite\\Binaries\\Win32\\BioShockInfinite.exe") not found
0009:err:module:LdrInitializeThunk Importing dlls for L"C:\\bioshock_infinite\\Binaries\\Win32\\BioShockInfinite.exe" failed, status c0000135
Looks like it's a hard dependency.
Well yeah, it's not the client itself but the Galaxy dll itself that's broken. Have you tried disabling esync? I remember that working for some people.
I'm actually using stock Wine in this case, so no esync is present. I wonder if there is some stub that replaces Galaxy.dll.
Isn't GOG supposed to provide installers that aren't _infected_ with Galaxy? Or have they dropped _that_ as well now? Can't trust them at all any more. So damn sad.
Don't have the game so can't try on my end.
They used to (those were called "classic installers" before), but I noticed that they have stopped doing it.
If GOG were more cooperative, we could ask them how to disable Galaxy for it, but lately they barely respond to anything, let alone "unsupported" use cases.
@shmerl They could provide an additional exe that doesn't have anything to do with Galaxy. They don't need to make any special announcements or parade either, the Linux community knows where to look for solutions and can take care of themselves in such a situation.
@shmerl They could provide an additional exe that doesn't have anything to do with Galaxy. They don't need to make any special announcements or parade either, the Linux community knows where to look for solutions and can take care of themselves in such a situation.
They could, but they need to be willing to do even such a minimal thing. I'll try contacting some people in GOG about it. But I don't have high expectations for this. Their main Linux support developer who was very responsive in the past has left the company, and no one else is engaged with the community now.
Just tried with wine-staging, and it's not crashing (though it hangs on some xaudio related error). I suppose staging is doing something to reign in virtual memory overuse.
Installing xact with winetricks works around the xaudio problem and the game starts! I suppose also building staging without fauido reverts can help as well.
They could, but they need to be willing to do even such a minimal thing. I'll try contacting some people in GOG about it. But I don't have high expectations for this. Their main Linux support developer who was very responsive in the past has left the company, and no one else is engaged with the community now.
He's left the company as well? I hoped all the staff had just been muted for some reason, as a company policy. Noticed some piping up during the current sale, though. Pretty sad that a company whose main selling point (whether they like it themselves currently or not) is DRM Free games. Would be such a perfect match with Linux. Yet they don't care, and would rather chase after the Steam crowd and whatnot, with Galaxy and all that crap.
But suppose it's little wonder they don't much care about Linux when their main Linux guy(s) have left. Maybe that's _why_ he/they left.
Most helpful comment
You're playing on GOG, right?
Galaxy is known to leak file descriptors and memory because they have no idea what they are doing and should stop shipping that crap with games given they're
DRM Free.