protonscr

VKD3D 2.9 breaks Diablo 4 support

vkd3dclosed
HansKristian-Work/vkd3d-proton#1634 · opened 2023-07-20 by sylock · updated 2023-11-09 · 8 comments · github
Ssylock 2023-07-20 github

Resume of the issue

  • Use Lutris and the installer script for Diablo IV : https://lutris.net/games/diablo-iv/
  • After the installation process start Battle.net (success)
  • Install Diablo IV from Battle.net (success)
  • Start Diablo IV - it fails saying that it doesn't find the GPU drivers (see the logs below from wine)

Workaround

Software information

  • PopOS! 22.04
  • Lutris 0.5.12

System information

  • GPU: GeForce RTX 3070 Mobile
  • Driver: nvidia_drm (nvidia-drivers-535)
  • Wine version: lutris-GE-Proton-10-x86_64
  • VKD3D-Proton version: 2.9 (NOK) and 2.8 (OK)

Log files

Wine logs with VKD3D 2.9 (it crashes and doesn't launch)

wine client error:4a8: write: Bad file descriptor
1995.591:0694:0698:err:vkd3d-proton:load_d3d12core_once: Failed to find vkd3d-proton d3d12core interfaces. Make sure d3d12core.dll is installed as well.
wine client error:26c: write: Bad file descriptor
Initial process has exited (return code: 0)

Wine logs with VKD3D 2.8 (the game starts - I quit the game from the game interface)

wine client error:5d8: write: Bad file descriptor
wine client error:438: write: Bad file descriptor
wine client error:25c: write: Bad file descriptor
Initial process has exited (return code: 0)
Monitored process exited.
Exit with return code 0
BBlisto91 2023-07-20 github

Make sure you are using lutris 0.5.13 or else it doesn't handle the extra dll that is required now with 2.9

Ssylock 2023-07-20 github

I just verified but upgrading Lutris to 0.5.13 does not fix the issue for me.

image

I get the same error message saying it doesn't find the GPU driver. But I get other logs:

wine client error:484: write: Bad file descriptor
wine client error:1ec: write: Bad file descriptor
Initial process has exited (return code: 256)
3375.468:067c:0680:info:vkd3d-proton:vkd3d_instance_apply_application_workarounds: Program name: "Diablo IV.exe"
3375.468:067c:0680:info:vkd3d-proton:vkd3d_instance_deduce_config_flags_from_environment: shader_cache is used, global_pipeline_cache is enforced.
3375.468:067c:0680:info:vkd3d-proton:vkd3d_config_flags_init_once: VKD3D_CONFIG=''.
3375.481:067c:0680:info:vkd3d-proton:vkd3d_get_vk_version: vkd3d-proton - applicationVersion: 2.9.0.
3375.481:067c:0680:info:vkd3d-proton:vkd3d_instance_init: vkd3d-proton - build: 6365efeba253807.
3375.537:067c:0680:info:vkd3d-proton:vkd3d_memory_info_upload_hvv_memory_properties: Topology: UMA-like topology. Using DEVICE_LOCAL | HOST_COHERENT for UPLOAD.
3375.537:067c:0680:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Enabling single descriptor set path for MUTABLE.
3375.537:067c:0680:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Device supports VK_EXT_mutable_descriptor_type.
3375.539:067c:0680:info:vkd3d-proton:d3d12_device_caps_init_shader_model: Enabling support for SM 6.6.
3375.539:067c:0680:fixme:vkd3d-proton:d3d12_device_caps_init_feature_options1: TotalLaneCount = 1024, may be inaccurate.
3375.539:067c:0680:info:vkd3d-proton:vkd3d_pipeline_library_init_disk_cache: Remapping VKD3D_SHADER_CACHE to: vkd3d-proton.cache.
3375.539:067c:0680:info:vkd3d-proton:vkd3d_pipeline_library_init_disk_cache: Attempting to load disk cache from: vkd3d-proton.cache.
3375.540:067c:076c:info:vkd3d-proton:vkd3d_pipeline_library_disk_thread_main: Performing async setup of stream archive ...
3375.540:067c:076c:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_merge: No write cache exists. No need to merge any disk caches.
3375.540:067c:076c:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Merging pipeline libraries took 0.142 ms.
3375.540:067c:076c:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Mapping read-only cache took 0.134 ms.
3375.540:067c:076c:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Parsing stream archive took 0.009 ms.
3375.540:067c:076c:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Cannot load existing on-disk cache due to driver version mismatch.
3375.540:067c:076c:info:vkd3d-proton:vkd3d_pipeline_library_disk_thread_main: Done performing async setup of stream archive.
wine: Call from 0000000170030158 to unimplemented function CFGMGR32.dll.CM_MapCrToWin32Err, aborting
Ssylock 2023-07-20 github

I have to add that Lutris 0.5.13 actually breaks Diablo IV since now it also fails with VKD3D 2.8.

BBlisto91 2023-07-20 github

At least the first error was because lutris didn't handle the extra dll, which is now working with that version.
Not sure why it would fail now besides some Driver or Wine issue as i know that the game works with vkd3d-proton 2.9 (and later on Proton Exeperimental).
If you aren't already also try to use dxvk 2.2 as a workaround for the game through it's dxgi dll was added for that version. Tho i am not entirely sure it is needed anymore and enabling Nvapi in Lutris should do the same.

Mmbriar 2023-07-21 github

wine: Call from 0000000170030158 to unimplemented function CFGMGR32.dll.CM_MapCrToWin32Err, aborting

This is where it fails, and it's definitely not a vkd3d-proton issue.

BBlisto91 2023-07-21 github

Ye I noticed that. I just wasn't sure from the name if that was after it had already failed or not hehe.

NNix-id 2023-09-01 github

Try to instal vc redist 2022

BBlisto91 2023-10-05 github

@sylock Friendly ping. Any news in regards to this?

Proton versions

Launch options

DLLs