Frequent but random crashes when DXVK initializes Vulkan graphics on Debian 9

I have an issue that’s driving me mad, and it happens only on Debian 9. Not on 10, not on Ubuntu 16.04/18.04 or on Arch. The system runs:

  • Plain vanilla Debian 9
  • Nvidia driver 396.54 from the Nvidia site
  • Wine 3.16 from WineHQ's packages, 3.15 also affected
  • DXVK 0.80, 0.71 also affected

I used The Witcher 3 as a test case. On Debian 9, it only starts perhaps 2 - 4 out of 10 times. The rest of the time, it crashes with a range of errors before initiliazing graphics. A selection is below.

When the game starts, it works well and the system is stable. I ran it for over an hour without issues. There is only a problem initializing graphics. When the problem occurs, the process either appears “defunct” or seems to run but does not do anything. It often has to be killed via -9.

I have replicated this on two different machines, one with a GTX 1060 (this one) and the other with a GTX 960. The Debian installs were always fresh, the home directories empty.

Inconsistency detected by ld.so: dl-close.c: 207: _dl_close_worker: Assertion `(*lp)->l_idx >= 0 && (*lp)->l_idx < nloaded' failed!

Strace of ‘inconsistency detected’

A page fault:

wine: Unhandled page fault on read access to 0xffffffffffffffff at address 0x7f16c0164bf5 (thread 002d), starting debugger...
Unhandled exception: page fault on read access to 0xffffffffffffffff in 64-bit code (0x00007f16c0164bf5)

Strace of a simple ‘unhandled page fault’

A “corrupted size” error:

*** Error in `witcher3.exe': corrupted size vs. prev_size: 0x000000007cab4eb0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x70bfb)[0x7f7bd28b7bfb]
/lib/x86_64-linux-gnu/libc.so.6(+0x76fc6)[0x7f7bd28bdfc6]
/lib/x86_64-linux-gnu/libc.so.6(+0x773b8)[0x7f7bd28be3b8]
/lib/x86_64-linux-gnu/libc.so.6(+0x78dfa)[0x7f7bd28bfdfa]
/lib/x86_64-linux-gnu/libc.so.6(__libc_malloc+0x54)[0x7f7bd28c1f64]
/lib/x86_64-linux-gnu/libc.so.6(_IO_file_doallocate+0x72)[0x7f7bd28ada62]
/lib/x86_64-linux-gnu/libc.so.6(_IO_doallocbuf+0x46)[0x7f7bd28bba76]
/lib/x86_64-linux-gnu/libc.so.6(+0x72be4)[0x7f7bd28b9be4]
/lib/x86_64-linux-gnu/libc.so.6(fread+0x99)[0x7f7bd28aead9]
/usr/lib/x86_64-linux-gnu/libXau.so.6(+0x181d)[0x7f7bcdacc81d]
/usr/lib/x86_64-linux-gnu/libXau.so.6(XauReadAuth+0x14)[0x7f7bcdacc914]
/usr/lib/x86_64-linux-gnu/libXau.so.6(XauGetBestAuthByAddr+0xa2)[0x7f7bcdacc4b2]
/usr/lib/x86_64-linux-gnu/libxcb.so.1(+0x10070)[0x7f7bcdcdf070]
/usr/lib/x86_64-linux-gnu/libxcb.so.1(+0x101ed)[0x7f7bcdcdf1ed]
/usr/lib/x86_64-linux-gnu/libxcb.so.1(xcb_connect_to_display_with_auth_info+0x38b)[0x7f7bcdcded1b]
/usr/lib/x86_64-linux-gnu/libX11.so.6(_XConnectXCB+0x1aa)[0x7f7bcdf38e8a]
/usr/lib/x86_64-linux-gnu/libX11.so.6(XOpenDisplay+0xb2)[0x7f7bcdf29bc2]
/opt/wine-devel/bin/../lib64/wine/winex11.drv.so(+0x59f08)[0x7f7bce4e1f08]
/opt/wine-devel/bin/../lib64/wine/winex11.drv.so(X11DRV_WindowPosChanging+0x42f)[0x7f7bce4da71f]
/opt/wine-devel/bin/../lib64/wine/user32.dll.so(+0xc99a9)[0x7f7bd125e9a9]
/opt/wine-devel/bin/../lib64/wine/user32.dll.so(+0xc4b50)[0x7f7bd1259b50]
/opt/wine-devel/bin/../lib64/wine/user32.dll.so(CreateWindowExW+0xb9)[0x7f7bd1252199]
[0x140c6489c]

Strace of a page fault with ‘corrupted size’

Something about PUSH_MACHFRAME 6:

info:    VK_KHR_swapchain
err:   D3D11Device::CreateGeometryShaderWithStreamOutput: Not implemented
err:   D3D11Device::CreateGeometryShaderWithStreamOutput: Not implemented
err:   D3D11Device::CreateGeometryShaderWithStreamOutput: Not implemented
err:   D3D11Device::CreateGeometryShaderWithStreamOutput: Not implemented
err:   D3D11Device::CreateGeometryShaderWithStreamOutput: Not implemented
err:   D3D11Device::CreateGeometryShaderWithStreamOutput: Not implemented
err:   D3D11Device::CreateGeometryShaderWithStreamOutput: Not implemented
err:   D3D11Device::CreateGeometryShaderWithStreamOutput: Not implemented
warn:  D3D11Device: No matching border color found for (1e+010,1e+010,1e+010,1e+010)
warn:  DXGI: MakeWindowAssociation: Ignoring flags
info:  DxgiVkPresenter: Recreating swap chain: 
  Format:       VK_FORMAT_B8G8R8A8_UNORM
  Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR
  Buffer size:  1920x1080
0037:fixme:dbghelp:interpret_function_table_entry PUSH_MACHFRAME 6

Files

I had this issue. I simply installed gcc-multilib and the problem was resolved.

I hope this helps (I believe this is not an issue in Debian 10).