protonscr

Diablo II Resurrected (D2R) stopped working

vkd3dclosed
HansKristian-Work/vkd3d-proton#902 · opened 2021-11-14 by drudoi · updated 2023-08-05 · 9 comments · github
Ddrudoi 2021-11-14 github

I used this version of vkd3d-proton due WineHQ recommendations:
https://github.com/HansKristian-Work/vkd3d-proton/files/7221306/vkd3d-proton-merge-953ad0b5989df062ea20b83309e981854cfa1d7a.zip. I've tried the latest release too.

D2R worked, but one day it stopped working. I didn't made any system or game updates. Also I have a separate wine prefix for the game, I've tried to recreate it and reinstall D2R. May be it isn't a issue of the library, because my Xorg server crashed this day (freezed, and I have to reboot), but I don't know how to debug to find a root cause. I have no more dx12 games installed, but dx9-dx11 I have weren't affected.

I wait for wine-staging (I had 1.18), dxvk updates, but it doesn't solve and issue. What I have now:

  • Arch linux: 5.15.2-arch1-1 #1 SMP PREEMPT Fri, 12 Nov 2021 19:22:10 +0000 x86_64 GNU/Linux
  • Card: NVIDIA Corporation TU116 [GeForce GTX 1660 SUPER] (rev a1)
  • Packages:
    -- wine-staging 6.21-1
    -- vulkan-icd-loader 1.2.194-1
    -- nvidia-utils 495.44-3 (I had vulkan-intel too, but uninstalled it to avoid possible conflicts)
    -- vkd3d 1.2-1 (I've tried to uninstall warring about the conflicts, doesn't help)
  • Additional packages I've tried to install:
    -- vulkan-headers 1:1.2.194-1
    -- vulkan-tools 1.2.194-1
    -- spirv-headers 1.5.4.r106+ge71fedd-2
    -- spirv-tools 2021.3-1

The wine output:

warn:  DXGIDeclareAdapterRemovalSupport: Stub
warn:  CreateDXGIFactory2: Ignoring flags
info:  Game: D2R.exe
info:  DXVK: v1.9.2
info:  Built-in extension providers:
info:    Win32 WSI
info:    OpenVR
info:    OpenXR
info:  OpenVR: could not open registry key, status 2
info:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_KHR_get_surface_capabilities2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
info:  NVIDIA GeForce GTX 1660 SUPER:
info:    Driver: 495.44.0
info:    Vulkan: 1.2.186
info:    Memory Heap[0]:
info:      Size: 6144 MiB
info:      Flags: 0x1
info:      Memory Type[7]: Property Flags = 0x1
info:    Memory Heap[1]:
info:      Size: 11922 MiB
info:      Flags: 0x0
info:      Memory Type[0]: Property Flags = 0x0
info:      Memory Type[1]: Property Flags = 0x0
info:      Memory Type[2]: Property Flags = 0x0
info:      Memory Type[3]: Property Flags = 0x0
info:      Memory Type[4]: Property Flags = 0x0
info:      Memory Type[5]: Property Flags = 0x0
info:      Memory Type[6]: Property Flags = 0x0
info:      Memory Type[8]: Property Flags = 0x6
info:      Memory Type[9]: Property Flags = 0xe
info:    Memory Heap[2]:
info:      Size: 246 MiB
info:      Flags: 0x1
info:      Memory Type[10]: Property Flags = 0x7
info:  DXGI: NvAPI workaround enabled, reporting AMD GPU
info:  DXGI: NvAPI workaround enabled, reporting AMD GPU
508:info:vkd3d_get_vk_version: vkd3d-proton - applicationVersion: 2.4.0.
508:info:vkd3d_instance_init: vkd3d-proton - build: 953ad0b5989df06.
508:err:vkd3d_create_vk_device: Failed to create Vulkan device, vr -3.
508:fixme:hresult_from_vk_result: Unhandled VkResult -3.

Looks like the latest lines going not from wine, because WINEDEBUG variable don't make it more verbose.

KK0bin 2021-11-14 github

First of all, use the latest build of VKD3D-Proton. Right now its this one: https://github.com/HansKristian-Work/vkd3d-proton/actions/runs/1452475263

Secondly, try running it with Vulkan validation layers. Install those and run the game with VKD3D_CONFIG=vk_debug. Then post the terminal output.

TTheDromundKaas 2021-11-15 github

I can maybe shed some light on the issue. I had this issue for a few days now with Cyberpunk 2077, which is a DirectX12 game too. What finally worked for me is loading the nvidia_uvm module (modprobe nvidia_uvm) which is required but somehow not loaded. This comment describes the issue and fix.

Sscrewylightbulb 2021-11-15 github

Can we rename these issues to have the full game names perhaps? Just to maintain searchability.

Aaufkrawall 2021-11-15 github

Can we rename these issues to have the full game names perhaps? Just to maintain searchability.

It's a very general issue of the Nvidia driver and can in theory affect any Vulkan app started outside of Proton. Though I can imagine mentioning it somewhere in the FAQ would save some users from that really nasty headache.

Ddrudoi 2021-11-15 github

Thanks for responses.

  1. I've tried to use latest build by link, nothing changed, the errors are the same. Only vkd3d-proton - applicationVersion: 2.5.0 was changed in the output.
  2. I've checked nvidia_uvm in my lsmod - it is loaded. I have the next modules in mkinitcpio.conf: MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm). Also I have blacklist i2c_nvidia_gpu, I've tried to remove it, but nothing changed.

Now I'll try to install Vulkan validation layers and provide output in next comment.

Ddrudoi 2021-11-15 github

With VKD3D_CONFIG=vk_debug and validation layers installed the next output is added:

264:info:vkd3d_config_flags_init_once: VKD3D_CONFIG='vk_debug'.
264:info:vkd3d_get_vk_version: vkd3d-proton - applicationVersion: 2.4.0.
264:info:vkd3d_instance_init: vkd3d-proton - build: 953ad0b5989df06.
264:err:vkd3d_instance_init: Failed to enumerate instance layers, will not use VK_LAYER_KHRONOS_validation!
264:err:vkd3d_create_vk_device: Failed to create Vulkan device, vr -3.
264:fixme:hresult_from_vk_result: Unhandled VkResult -3.

and the same with latest version

0120:info:vkd3d_config_flags_init_once: VKD3D_CONFIG='vk_debug'.
0120:info:vkd3d_get_vk_version: vkd3d-proton - applicationVersion: 2.5.0.
0120:info:vkd3d_instance_init: vkd3d-proton - build: 3fefc540c81a2fc.
0120:err:vkd3d_instance_init: Failed to enumerate instance layers, will not use VK_LAYER_KHRONOS_validation!
0120:err:vkd3d_create_vk_device: Failed to create Vulkan device, vr -3.
0120:fixme:hresult_from_vk_result: Unhandled VkResult -3

The next layers are in system:

$ ls /usr/share/vulkan/explicit_layer.d/
VkLayer_khronos_validation.json

Also I attach my 'vulkaninfo' output.
vulkaninfo.txt

Ddoitsujin maintainer 2021-11-16 github

This is a known issue on Nvidia drivers, see https://github.com/HansKristian-Work/vkd3d-proton/issues/711#issuecomment-867000702 for a workaround.

Not our bug, and we cannot fix this on our end.

Ddrudoi 2021-11-16 github

@doitsujin Thanks a lot, it helped!!! I'm very happy!!!

I'll try to add it to bashrc (if it works without xinit) or to xinitrc, looks like nvidia-modprobe -u -c=0 is needed once per session.

Mmemeruiz 2023-08-05 github

Another reason to get this error is to not have libnvidia-rtcore libnvoptix1 packages in debian (possibly also Ubuntu).

They give raytracing support to Nvidia in Linux