Driver bug? DCS World (lutris-GE-Proton8-26, DXVK 2.3), OpenXR, Monado

Potential driver bug when trying to play “DCS World” with VR enabled (OpenXR Monado runtime)

If you could please investigate and see if you can reproduce this issue, and tell me if it’s a driver bug, and if so when could a fix be expected?

Ordinarily running “DCS World” with Lutris (runner; lutris-GE-Proton8-26 and DXVK 2.3), the game starts and runs with acceptable performance and graphics, including multiplayer.

However, after enabling VR, the game starts and displays graphics on the monitor and the HMD (using monado-service) but typically freezes within 10-30s in the main menu (until gnome-shell is able to terminate the program), the audio continues playing in the background.

This is often accompanied with the following error logs (via journalctl):

12:33:56 debian kernel: NVRM: Xid (PCI:0000:01:00): 32, pid=21416, name=Main, Channel ID 0000005e intr0 00040000
12:33:56 debian kernel: NVRM: Xid (PCI:0000:01:00): 32, pid=21416, name=Main, Channel ID 0000005e intr0 00040000
12:34:14 debian net.lutris.Lutris.desktop[16144]: ERROR [vk_cmd_submit_locked] vkQueueSubmit: VK_ERROR_DEVICE_LOST
12:34:14 debian net.lutris.Lutris.desktop[16144]: ERROR [vk_cmd_pool_submit_cmd_buffer_locked] vk_cmd_submit_locked: VK_ERROR_DEVICE_LOST
12:34:14 debian net.lutris.Lutris.desktop[16144]: ERROR [submit_image_barrier] vk_cmd_pool_submit_cmd_buffer: VK_ERROR_DEVICE_LOST 4294967292
12:34:14 debian net.lutris.Lutris.desktop[16144]: XR_ERROR_RUNTIME_FAILURE in xrReleaseSwapchainImage: Call to xrt_swapchain_barrier_image failed
12:34:20 debian /usr/libexec/gdm-x-session[2021]: (WW) NVIDIA: Wait for channel idle timed out.

In the case where the above doesn’t occur (typically when trying to reproduce with a simulated HMD with monado), then Xorg doesn’t display a mouse pointer either.

Monado service works when using a native local client: e.g. hello_xr -g Vulkan2 -v

Each of these work independently; DCS.exe using Proton (wine), and OpenXR with Monado; but when used in combination cause some kind of DXVK and/or NVIDIA bug?

Configuration:
Debian, sid
linux-image-6.7.9-amd64 6.7.9-2
nvidia-driver 535.161.08-1(NVIDIA GeForce RTX 3070 Ti)
xorg-server 2:21.1.11-2
monado-service 21.0.0+git2905.e26a272c1~dfsg1-2+b2 & v21.0.0-4415-g56a7e603
lutris 0.5.14-2 (runner: wine-lutris-GE-Proton8-26-x86_64, DXVK 2.3, and
wineopenxr.dll.so from GE-Proton8-26), & various other combinations e.g. Proton7 and DXVK 1.10.3 with no improvement.

This requires extracting an upstream DLL from Proton GE, and updating Wine registry values in the DCS prefix. Following the instructions from [partially solved] DCS World Beta with OpenXR not quite working yet · Issue #26 · TheZoq2/dcs_on_linux · GitHub

Although I also needed to use xrandr --output DP-4 --set non-desktop 1 prior to starting monado-service to get direct rendering on the HMD to work.

I’ve also tried with the exact versions of software used in that github issue to no avail, and the only difference AFAIK; they were using an AMD GPU and Mesa drivers, where my setup is using NVIDIA GPU and proprietary drivers.

Note: I also tried a few different driver versions with no appreciable improvement in stability; 515.105.01 (6.1.76 kernel), 520.56.06 (6.1.76 kernel), 525.147.05, 535.161.08, 550.54.14

If you could please investigate and see if you can reproduce this issue, and tell me if it’s a driver bug, and if so when could a fix be expected?

If you need more information to reproduce, please reach out.

Thanks in advance