protonscr

DX11 games crash randomly at start with page faults and other errors on Debian 9

dxvkclosed
doitsujin/dxvk#631 · opened 2018-09-09 by psy-q · updated 2020-04-06 · 42 comments · github
2 matching comments, n / p to jump
Ppsy-q 2018-09-09 github

When trying to start The Witcher 3, the following error appears in the console:

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

It can also be one of several other errors, a page fault for example:

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)

Another error can be that a black window appears and is stuck forever, where the first intro screen with copyrigh messages etc. should be.

The game can also crash before this window would normally appear. Running the same game without DXVK works, but performance is slow of course. Out of 10 times starting the game, it may start 1 or 2 times.

Video proof here.

Using Ubuntu 16.04 with the same Nvidia driver and Wine versions it runs reliably with DXVK. Other DX11 titles also crash randomly at start, see comments for details about Seven: The Days Long Gone demo.

Native Vulkan titles (e.g. Mad Max) work, so does DOOM using Vulkan via Proton 3.7.

Software information

  • The Witcher 3 Game of the Year Edition, user.settings.
  • Seven: The Days Long Gone demo

System information

  • GPU: Nvidia GTX 960
  • Driver: 396.54
  • Wine version: 3.15
  • DXVK version: 0.71
  • Distribution: Debian 9.0
  • Kernel: 4.17.17-1~bpo9+1 from backports, also 4.9

Log files

Ddoitsujin maintainer 2018-09-09 github

Never had that issue, and DXVK doesn't even use any dl functions. Are you using the DXVK DLLs or a custom winelib build?

Ppsy-q 2018-09-09 github

I simply use the WineHQ official packages and winetricks to install dxvk (using "dxvk" verb, no specific number). I will check if there is anything fishy with winelib.

Ddoitsujin maintainer 2018-09-09 github

winetricks uses the mingw-built DLLs, so that shouldn't be an issue.

Anyway, it might be worth trying to figure out what ld is trying to do, but I frankly have no idea how to do that. This is an extremely strange issue and to be honest, I don't think this is a bug.

Ppsy-q 2018-09-09 github

Thank you, I had libwine and libwine:i386 1.8.7 installed from an earlier WINE install that came directly from Debian. Apparently installing winehq-devel on top of that does not get rid of libwine. apt purge libwine libwine:i386 fixed the issue and now Witcher starts normally with and without DXVK.

Ddoitsujin maintainer 2018-09-09 github

Okay, thanks for the quick feedback.

Ppsy-q 2018-09-09 github

Ah, I spoke too soon. It started once without and once with DXVK. But now it doesn't start reliably anymore, with the same error. Non-DXVK still works, but with DXVK it won't start. it spit out the same error. I don't know what it could be at this point. Only the WINE packages themselves are installed now:

ii  wine-devel                                    3.15.0~stretch                              amd64        WINE Is Not An Emulator - runs MS Windows programs
ii  wine-devel-amd64                              3.15.0~stretch                              amd64        WINE Is Not An Emulator - runs MS Windows programs
ii  wine-devel-i386:i386                          3.15.0~stretch                              i386         WINE Is Not An Emulator - runs MS Windows programs
ii  winehq-devel                                  3.15.0~stretch                              amd64        WINE Is Not An Emulator - runs MS Windows programs

Nothing else relating to WINE. Out of 10 starts, 8 times it will produce the ld.so error, one time this:

*** 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]

And one time it will work fine. It's very esoteric. If I switch all the DLL overrides to "builtin" and then to "native" it seems to start again after two or three attempts.

Edit: There is a third permutation: Sometimes it does start, but doesn't actually work, instead displaying a black screen and in the console:

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
Ddoitsujin maintainer 2018-09-09 github

Well, whatever this is, I can't help you, sorry. This is not a general DXVK issue.

Ppsy-q 2018-09-11 github

I'd just like to add that I installed a completely fresh setup with plain Debian stretch, Nvidia's driver 396.54 from Nvidia's website and WINE 3.15 from WineHQ. So the issue must be triggered by something in the latter two, or it is hardware failure, even though other Vulkan things work.

WINE 3.14-staging from Lutris crashes as well on this title with DXVK 0.71, the error being:

info:    VK_KHR_swapchain
wine client error:36: write: Bad file descriptor

The strace shows:

2626  write(41, "\6\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\5\0\0\300\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = -1 EBADF (Bad file descriptor)
2626  write(2, "wine client error:30: ", 22) = 22
2417  <... poll resumed> )              = 1 ([{fd=11, revents=POLLIN}])
2626  write(2, "write: Bad file descriptor\n", 27) = 27

I can't find a FD or something that is 41 at this point. I give up now.

Ppsy-q 2018-09-13 github

I did not give up, I did some final tests. Installed a completely separate distro (Arch Linux), also with Wine 3.15 and Nvidia 396.54. Tried a different PC. It also crashes with DXVK but runs without it.

On the Debian side at least I get a backtrace now, attached. Now I give up :smirk:
backtrace.txt

Llieff 2018-09-13 github

Check ulimit -aH, seems debian stretch have low hard files descriptors limit.

Ppsy-q 2018-09-13 github

It's correct that the nofile limit is low, I increased it to 100000 from 1024, but the crashes remain. witcher3.exe only uses 326 file handles by the time it freezes or crashes.

Llieff 2018-09-13 github

Then it can be glibc version issue. Can you try build wine from source?
Note that it can build bad version if there too many configure warnings. This should be normal enough:

configure: OpenCL 64-bit development files not found, OpenCL won't be supported.
configure: libhal 64-bit development files not found, no legacy dynamic device support.
configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.
configure: vkd3d 64-bit development files not found, Direct3D 12 won't be supported.
Ppsy-q 2018-09-13 github

I have never built a WoW64 Wine (I think that's what would be required even though Witcher is 64-bit?) I can try doing that, but I presume it will take some time.

Llieff 2018-09-13 github

Yes w3 is 64-bit game, so use configure like this:
../configure --prefix=/path/to/new_wine --enable-win64

Ppsy-q 2018-09-13 github

It looks like I can't build a proper WoW64 on Debian 9 with multiarch. Many of the 32-bit libs can't be installed alongside the 64-bit ones. I will try with only a 64-bit build, hoping that nothing inside Witcher 3 needs 32-bit support.

Llieff 2018-09-13 github

--enable-win64 should require less 32bit libs and there should be working combination.

Ppsy-q 2018-09-13 github

I've tried to include as many dependencies as possible. My build can't start the game at all, it exits the same way as the WineHQ package. I will set up a completely fresh Wine prefix, one for my version, one for the WineHQ one, to make absolutely sure.

Ppsy-q 2018-09-13 github

OK, some progress. In a fresh WINEPREFIX I can run the game exactly once with DXVK. After that, it simply crashes, backtrace attached. This even with my own build of Wine.

backtrace.txt

If I go back to builtin, the game works again. As soon as I switch back to native (DXVK), it crashes again. I will try to do a diff of a virgin WINEPREFIX vs. a "tainted" one.

Here is the diff of the drive_c part of the two prefixes. I found suspicious:

Only in wine64mywine/drive_c/GOG Games/The Witcher 3 Wild Hunt GOTY/content: metadata.store.stamp
Only in wine64mywine/drive_c/windows/temp: _dxvk

But that _dxvk directory is empty and metadata.store.stamp might be automatically created the first time the game starts. Deleting them doesn't change anything.

Meanwhile it's so that out of 10 starts, maybe 1 or 2 succeed with DXVK. 10 out of 10 succeed without DXVK.

Ppsy-q 2018-09-13 github

I uploaded a video of what it looks like. This is back with the 396.51 driver, but .54 behaves exactly the same. The stutter in the later part is because of my inadequate recording laptop, it doesn't stutter on screen.

Llieff 2018-09-13 github

Vulkan creation crashes, looks like some issue with Vulkan in you system. Is native Vulkan apps works?

Ppsy-q 2018-09-13 github

Yes, native Vulkan works fine, tested with Mad Max. DOOM via Proton also works. Dolphin works as well. Generally everything works, just not vanilla Wine+DXVK on this title :) I will try the Stories Untold demo so I have another DX11 title to compare with, I think it uses DX11.

Stories Untold Demo crashes with DXVK as well, but reliably, every time. So it might be completely unrelated. It starts reliably without DXVK. The full version on Steam via Proton runs fine. Now looking for other DX11 things to try. Will try Seven: The Days Long Gone demo since that used to have a platinum rating, and the Overload demo since that has optional DX11 shaders.

Llieff 2018-09-13 github

I see similar issue when more than one thread have gl initialization code though glad. And parallel gl\glx dlopen() happens. Do not know how to easily check it in your case.
May be add something like

dlopen("libvulkan.so", RTLD_NOW | RTLD_GLOBAL);
dlopen("libGL.so", RTLD_NOW | RTLD_GLOBAL);

at wine`s main(), so they loads at process creation and waits operation to complete, other loads should be thread safe.

Ppsy-q 2018-09-13 github

I can't find Wine's proper main(), where would I patch that in?

More results: Seven: The Days Long Gone also displays these problems. First launch worked flawlessly, second launch:

0155:err:seh:call_stack_handlers invalid frame b2721a0 (0xada2000-0xb270000)
0155:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception.
wine client error:155: write: Bad file descriptor
info:  Game: Seven-Win64-Shipping.exe
info:  DXVK: v0.71
0153:err:ntdll:RtlpWaitForCriticalSection section 0x7bd0a040 "../../../dlls/ntdll/loader.c: loader_section" wait timed out in thread 0153, blocked by 0148, retrying (60 sec)

But it will endlessly retry without success. Third launch:

15b:fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x60ebb0,0x00000000), stub!
015b:fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",1,0x60ebb0,0x00000000), stub!
015b:fixme:win:EnumDisplayDevicesW ((null),1,0x60ef00,0x00000000), stub!
015b:fixme:system:SystemParametersInfoW Unimplemented action: 59 (SPI_SETSTICKYKEYS)
015b:fixme:system:SystemParametersInfoW Unimplemented action: 53 (SPI_SETTOGGLEKEYS)
015b:fixme:system:SystemParametersInfoW Unimplemented action: 51 (SPI_SETFILTERKEYS)

Fourth run, gets to splash screen, then:

Inconsistency detected by ld.so: dl-close.c: 207: _dl_close_worker: Assertion `(*lp)->l_idx >= 0 && (*lp)->l_idx < nloaded' failed!
016a:fixme:ver:GetCurrentPackageId (0x5ffd50 (nil)): stub

Fifth run:

*** Error in `C:\GOG Games\Seven The Days Long Gone Demo\Seven\Binaries\Win64\Seven-Win64-Shipping.exe': corrupted double-linked list (not small): 0x000000007de77df0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x70bfb)[0x7f6fd866bbfb]
/lib/x86_64-linux-gnu/libc.so.6(+0x76fc6)[0x7f6fd8671fc6]
/lib/x86_64-linux-gnu/libc.so.6(+0x798d9)[0x7f6fd86748d9]
/lib/x86_64-linux-gnu/libc.so.6(__libc_malloc+0x54)[0x7f6fd8675f64]
/usr/lib/x86_64-linux-gnu/libvulkan.so.1(+0x70bc)[0x7f6fd21cb0bc]
/usr/lib/x86_64-linux-gnu/libvulkan.so.1(+0x9464)[0x7f6fd21cd464]
/usr/lib/x86_64-linux-gnu/libvulkan.so.1(+0x736e)[0x7f6fd21cb36e]
/usr/lib/x86_64-linux-gnu/libvulkan.so.1(vkCreateDevice+0xed)[0x7f6fd21d51bd]
/opt/mywine/bin/../lib64/wine/winevulkan.dll.so(wine_vkCreateDevice+0x2df)[0x7f6fd562035f]
[0x6f215d09]

Sixth run: Starts and runs just fine. No caches were deleted between runs, no fresh installs, just started Seven.exe over and over.

Llieff 2018-09-13 github

Can you run it under strace -f ? And we see if there any multi-threaded gl\vk initialization.

Ppsy-q 2018-09-13 github

Yes:

This is from Seven, not Witcher 3. Witcher 3 crashes immediately when DXVK is enabled and strace is running it.

Llieff 2018-09-13 github

Does strace produces any output when crashed with Witcher 3?

Llieff 2018-09-13 github

Crashes from Seven seems different. There:

4971  open("/usr/share/X11/XErrorDB", O_RDONLY) = 70
4971  fstat(70, {st_mode=S_IFREG|0644, st_size=42077, ...}) = 0
4971  read(70, "!\n! Copyright 1993, 1995, 1998  "..., 42077) = 42077
4971  close(70)                         = 0
4971  write(2, "X Error of failed request:  BadL"..., 95) = 95
4971  write(2, "Major opcode of failed request: "..., 36) = 36
4971  write(2, " (X_ForceScreenSaver)\n", 22) = 22
4971  write(2, "  ", 2)                 = 2
4971  write(2, "Serial number of failed request:"..., 36) = 36
4971  write(2, "\n  ", 3)               = 3
4971  write(2, "Current serial number in output "..., 43) = 43
4971  write(2, "\n", 1)                 = 1

You can use strace -f -s [strsize] to rise printing string size limit to see whole thing. It looks like game tries to disable screensaver and crashes, problem with Xorg, libx11, libxss or libxcb.

We need strace from W3, which crashed in vkCreateDevice.

Ppsy-q 2018-09-14 github

"Page fault" trace

Trace of a page fault that gave this message in the console:

*** Error in `witcher3.exe': corrupted size vs. prev_size: 0x000000007e876310 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x70bfb)[0x7f2f34278bfb]
/lib/x86_64-linux-gnu/libc.so.6(+0x76fc6)[0x7f2f3427efc6]
/lib/x86_64-linux-gnu/libc.so.6(+0x773b8)[0x7f2f3427f3b8]
/lib/x86_64-linux-gnu/libc.so.6(+0x78dfa)[0x7f2f34280dfa]
/lib/x86_64-linux-gnu/libc.so.6(__libc_malloc+0x54)[0x7f2f34282f64]
/usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.0(+0xb20d9)[0x7f252d4050d9]

"Inconsistency detected" trace

Trace of our old friend:

*** Error in `witcher3.exe': munmap_chunk(): invalid pointer: 0x00007fc75fb2d920 ***
Inconsistency detected by ld.so: dl-open.c: 274: dl_open_worker: Assertion `_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT' failed!

New crash type

Trace of a new issue that happens only under strace. An additional crash scenario appears perhaps 9 out of 10 times:

wine: Unhandled page fault on read access to 0xffffffffffffffff at address 0x7f9096edebf5 (thread 0009), starting debugger...
Can't attach process 0008: error 5

With a GUI dialog from Wine saying that WineDbg couldn't attach to the process. This doesn't happen without strace.

Ppsy-q 2018-09-14 github

I can add that Ubuntu 16.04 on the same hardware runs it fine and reliably every time with DXVK. But not Arch or Debian 9. Maybe the package lists help, although on Debian I have many more libraries and -dev packages due to compiling things, so it's noisy.

Llieff 2018-09-14 github

Vulkan loads only from main thread, so it's not my case.
This very likely some bug in driver\libs\env. It's crashed from nvidia code nearly reading /proc/driver/nvidia/params:

5111  open("/proc/driver/nvidia/params", O_RDONLY) = 27
5111  fstat(27, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
5111  read(27, "Mobile: 4294967295\nResmanDebugLevel: 4294967295\nRmLogonRC: 1\nModifyDeviceFiles: 1\nDeviceFileUID: 0\nDeviceFileGID: 0\nDeviceFileMode: 438\nUpdateMemoryTypes: 4294967295\nInitializeSystemMemoryAllocations: 1\nUsePageAttributeTable: 4294967295\nEnableMSI: 1\nMapRegistersEarly: 0\nRegisterForACPIEvents: 1\nChec"..., 1024) = 564
5111  close(27)                         = 0
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 27
5111  fcntl(27, F_SETFD, FD_CLOEXEC)    = 0
5111  ioctl(15, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x4e, 0x38), 0x212c580) = 0
5111  mmap(NULL, 524288, PROT_READ|PROT_WRITE, MAP_SHARED, 27, 0) = 0x7f787a3e3000
5111  close(27)                         = 0
5111  ioctl(15, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x57, 0x38), 0x212c600) = 0
5111  clock_gettime(CLOCK_MONOTONIC, {tv_sec=1305, tv_nsec=745628330}) = 0
5111  clock_gettime(CLOCK_MONOTONIC, {tv_sec=1305, tv_nsec=745655860}) = 0
5111  --- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=NULL} ---

I'm not 100% sure this signal cause issues, it's handled somehow (must be crash handler which prints the error). But later there

5113  tgkill(5111, 5111, SIGUSR1)       = 0
...
5113  tgkill(5122, 5129, SIGQUIT <unfinished ...>
...process cleanup code and exit.

You can extend string limit further and compare params ("Mobile: 4294967295\nResmanDebugLevel:...") with Ubuntu. BTW driver installed from nvidia installer or from some repo?

Ppsy-q 2018-09-14 github

Thank you. It's driver 396.54 in both cases, directly from Nvidia on Debian, from the PPA on Ubuntu.

I can report success on Arch meanwhile, it seems it didn't like something about its earlier Wine prefix and crashed Witcher before it even initialized the display. After installing in a new prefix on Arch it starts reliably using DXVK. There are bad audio issues (not the usual crackling but audio dropouts and volume drops, sounds almost like it's breaking my hardware) but I think that has nothing to do with Wine.

Will do an Ubuntu trace.

Ddoitsujin maintainer 2018-09-14 github

Audio issues on Arch are caused by an OpenAL bug, downgrading the openal package to the previous version helps.

Llieff 2018-09-14 github

You can use just cat /proc/driver/nvidia/params to compare params.
I barely remember that nvidia driver split to several packages in debian, like nvidia-uvm, nvidia-modeset etc. This system may not match well with official installer. Check if there some nvidia packages installed from repo, they can interfere with official driver.

Llieff 2018-09-14 github

Also you can check sudo journalctl -n 100 if something useful printed there at crash time.

Ppsy-q 2018-09-14 github

Here is a trace of a successful execution on Ubuntu.

On the Ubuntu side, there are four Nvidia packages automatically installed:

ii  bbswitch-dkms                                   0.8-3ubuntu1                                             amd64        Interface for toggling the power on NVIDIA Optimus video cards
ii  libcuda1-396                                    396.54-0ubuntu0~gpu16.04.1                               amd64        NVIDIA CUDA runtime library
ii  nvidia-396                                      396.54-0ubuntu0~gpu16.04.1                               amd64        NVIDIA binary driver - version 396.54
ii  nvidia-opencl-icd-396                           396.54-0ubuntu0~gpu16.04.1                               amd64        NVIDIA OpenCL ICD
ii  nvidia-prime                                    0.8.2                                                    amd64        Tools to enable NVIDIA's Prime
ii  nvidia-settings

/proc/driver/nvidia/params on are identical on Ubuntu and Debian.

There are no package leftovers from a package-installed Nvidia driver on Debian, the currently installed one used the Nvidia installer from their website. The only thing that was previously there (and is blacklisted) is Nouveau:

ii  libdrm-nouveau2:amd64                         2.4.74-1                                    amd64        Userspace interface to nouveau-specific kernel DRM services -- runtime
ii  libdrm-nouveau2:i386                          2.4.74-1                                    i386         Userspace interface to nouveau-specific kernel DRM services -- runtime
ii  xserver-xorg-video-nouveau                    1:1.0.13-3                                  amd64        X.Org X server -- Nouveau display driver

But if I try to remove those, it removes half my system. Nothing interesting in journalctl.

Edit: It seems to run slightly more reliably using Proton 3.7 with compatdata from DOOM. The symptoms there are mostly black screen. But it that happens "only" about 5 out of 10 times. When it does start, it runs great. I have also seen Inconsistency detected by ld.so: dl-open.c: 274: ... once.

Llieff 2018-09-14 github

One obvious difference what I can see, with Ubuntu at some point additional thread that uses /dev/nvidia spawned

Debian:

5111  open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 14
5111  open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 14
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 15
5111  open("/sys/devices/system/memory/block_size_bytes", O_RDONLY) = 17
5111  stat("/dev/nvidia-modeset", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 254), ...}) = 0
5111  open("/dev/nvidia-modeset", O_RDWR|O_CLOEXEC) = 17
5111  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
5111  open("/dev/nvidia0", O_RDWR)      = 18
5111  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
5111  open("/dev/nvidia0", O_RDWR)      = 19
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 20
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 20
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 20
5111  open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 20
5111  open("/dev/dri/renderD128", O_RDWR|O_CLOEXEC) = 21
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 20
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 20
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 22
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 22
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 22
5111  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
5111  open("/dev/nvidia0", O_RDWR)      = 22
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 22
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 22
5111  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
5111  open("/dev/nvidia0", O_RDWR)      = 22
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 22
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 22
5111  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
5111  open("/dev/nvidia0", O_RDWR)      = 22
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 22
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 22
5111  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
5111  open("/dev/nvidia0", O_RDWR)      = 22
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 22
5111  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
5111  open("/dev/nvidia0", O_RDWR)      = 22
5111  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
5111  open("/dev/nvidia0", O_RDWR)      = 23
5111  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
5111  open("/dev/nvidia0", O_RDWR)      = 24
5111  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
5111  open("/dev/nvidia0", O_RDWR)      = 25
5111  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
5111  open("/dev/nvidia0", O_RDWR)      = 26
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 27
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 27
5111  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
5111  open("/dev/nvidiactl", O_RDWR)    = 27
5148  stat("/dev/null", {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
5148  open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 5
5148  stat("/dev", {st_mode=S_IFDIR|0755, st_size=3720, ...}) = 0

Ubuntu:

2149  open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 14
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 15
2149  open("/sys/devices/system/memory/block_size_bytes", O_RDONLY) = 16
2149  stat("/dev/nvidia-modeset", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 254), ...}) = 0
2149  open("/dev/nvidia-modeset", O_RDWR|O_CLOEXEC) = 16
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 17
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 18
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 19
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 19
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 19
2149  open("/dev/dri", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 19
2149  open("/dev/dri/renderD128", O_RDWR|O_CLOEXEC) = 20
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 19
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 19
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 21
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 21
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 21
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 21
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 21
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 21
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 21
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 21
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 21
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 21
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 21
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 21
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 21
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 21
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 21
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 22
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 23
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 24
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 25
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 26
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 26
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 26
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 26
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 26
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 26
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 27
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 28
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 29
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 30
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 31
2149  stat("/dev/nvidia0",  <unfinished ...>
2149  open("/dev/nvidia0", O_RDWR <unfinished ...>
2149  stat("/dev/nvidiactl",  <unfinished ...>
2149  open("/dev/nvidiactl", O_RDWR <unfinished ...>
=== New NVIDIA thread:
2184  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2184  open("/dev/nvidia0", O_RDWR)      = 40
2184  stat("/dev/nvidia0",  <unfinished ...>
2184  open("/dev/nvidia0", O_RDWR <unfinished ...>
2149  open("/dev/urandom", O_RDONLY)    = 39
2189  open("/dev/urandom", O_RDONLY)    = 20
2163  open("/dev/urandom", O_RDONLY)    = 20
2149  open("/dev/urandom", O_RDONLY <unfinished ...>
2190  open("/dev/urandom", O_RDONLY)    = 20
2163  open("/dev/urandom", O_RDONLY)    = 20
2149  stat("/mnt/more/wine64mywine/dosdevices/c:/GOG Games/The Witcher 3 Wild Hunt GOTY/bin/config/developer/", 0x213e100) = -1 ENOENT (No such file or directory)
2149  stat("/mnt/more/wine64mywine/dosdevices/c:/GOG Games/The Witcher 3 Wild Hunt GOTY/bin/config/developer", 0x213e190) = -1 ENOENT (No such file or directory)
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 30
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 30
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 30
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 30
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 30
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 30
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 30
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 30
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 30
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 30
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 30
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 30
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 30
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 30
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 33
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 34
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 35
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 36
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 37
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 37
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 37
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 37
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 37
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 37
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 37
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 37
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 37
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 37
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 37
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 37
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 37
2149  stat("/dev/nvidiactl", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 255), ...}) = 0
2149  open("/dev/nvidiactl", O_RDWR)    = 37
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 37
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 38
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 39
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 40
2149  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2149  open("/dev/nvidia0", O_RDWR)      = 41
2149  stat("/dev/nvidia0",  <unfinished ...>
2149  open("/dev/nvidia0", O_RDWR <unfinished ...>
2192  stat("/dev/nvidia0", {st_mode=S_IFCHR|0666, st_rdev=makedev(195, 0), ...}) = 0
2192  open("/dev/nvidia0", O_RDWR)      = 49
2192  stat("/dev/nvidia0",  <unfinished ...>
2192  open("/dev/nvidia0", O_RDWR <unfinished ...>

Seens Debian crashed exactly at point where additional NVIDIA thread must be started.
Give __GL_THREADED_OPTIMIZATIONS a try?

Ppsy-q 2018-09-14 github

With __GL_THREADED_OPTIMIZATIONS it also starts maybe 2 out of 10 times, and there is an additional error that I haven't seen before: The copyright screen appears, but you cannot continue beyond it, keyboard input does nothing, the game seems frozen. Killing the process works. Otherwise the crashes are the same as before.

I will try a fresh Debian testing just to see if this problem will simply go away in the future. It still puzzles me what it could be, but I'd give up if that's a success. I'm happy with 5 out of 10 launches on Proton :)

Llieff 2018-09-14 github

It looks like multi-threading bug in some component. BTW have you tried install libglvnd?

Ppsy-q 2018-09-14 github

No, but I just installed it and it didn't make a difference with Witcher 3. I had to move the Debian buster install to tomorrow. I hope everything just works there and this turns into a non-issue, although Valve is still on Debian 9 with SteamOS, not sure if it might hit the same hurdle.

Ppsy-q 2018-09-15 github

Good news, everyone! On Debian 10 it works fine. 10 out of 10 starts successful.
And it seems I was ignorant about libglvnd: It's not managed by dpkg, but the Nvidia installer installs a copy of it, so I do have it on Debian 9.
I'm happy to give up here. I will leave the Debian 9 partition as it is in case something like this ever comes up again and I could help with debugging, but I'll go on with Debian testing for the moment.

Tthemainliner 2019-08-18 github

I had this issue and I resolved it very simply. I installed gcc-multilib.

I hope that is of some help to others.

Eelovin 2020-04-06 github

With dotnet472 or dotnet48 I allways get this error after some time (1-30 minutes) :
Unhandled exception: page fault on execute access to 0x230f0198 in 64-bit code

Im trying to figure out what is different about my setup since multiple reports here claim that it works just fine without any crashes.

Im using fsync (not FreeSync !) and disabling that does indeed lead to another behavior (the screen just freezes and shortly before the crash one core is at 100% usage).

I will try a different kernel now maybe thats it.

My System:

Arch Linux
Mesa-git
linux 5.6.2-zen
Proton-GE

Vega 56
3700X

Proton versions

Launch options

DLLs