protonscr

Should dxvk be able to work alongside vkd3d?

dxvkclosed question
doitsujin/dxvk#4351 · opened 2024-10-11 by Zapeth · updated 2024-10-11 · 4 comments · github
1 matching comments, n / p to jump
ZZapeth 2024-10-11 github

Kind of a generic question but I haven't found a clear answer for this online, so apologies if I missed something obvious.

I'm asking because I have the issue that a d3d12 game crashes on startup when I have dxvk installed/enabled (see stdout output below).

If I disable dxgi library override for dxvk with winecfg I can start the game again, but then games that would normally use dxvk won't start (until I enable the library override again).

The log indicates that dxvk is loaded instead of vkd3d, which reports an unknown interface (makes sense because d3d12 is not supported in dxvk). But why is dxvk loaded in the first place, or if it needs to be loaded, why can't it pass the continued loading/processing operations to vkd3d?

Software information

Animal Well, default settings

System information

  • GPU: Intel(R) HD Graphics 520 (SKL GT2)
  • Driver: Mesa driver 24.1.3
  • Wine version: wine-9.12 (Staging)
  • DXVK version: v2.4.1

Stdout

002c:err:winediag:getaddrinfo Failed to resolve your host name IP
warn:  CreateDXGIFactory2: Ignoring flags
info:  Game: Animal Well.exe
info:  DXVK: v2.4.1-60-g78f5136f
info:  Vulkan: Found vkGetInstanceProcAddr in winevulkan.dll @ 0x6ffffbf93fd0
info:  Built-in extension providers:
info:    Platform 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_EXT_surface_maintenance1
info:    VK_KHR_get_surface_capabilities2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
info:  Intel(R) HD Graphics 520 (SKL GT2):
info:    Driver : Intel open-source Mesa driver 24.1.3
info:    Memory Heap[0]: 
info:      Size: 7927 MiB
info:      Flags: 0x1
info:      Memory Type[0]: Property Flags = 0x1
info:      Memory Type[1]: Property Flags = 0x7
info:      Memory Type[2]: Property Flags = 0xf
info:      Memory Type[3]: Property Flags = 0x1
info:      Memory Type[4]: Property Flags = 0x7
info:      Memory Type[5]: Property Flags = 0xf
warn:  DxgiAdapter::QueryInterface: Unknown interface query
warn:  17399d75-964e-4c03-99f8-9d4fd196dd62
wine: Unhandled page fault on read access to 0000000000000000 at address 00000001400142DA (thread 0024), starting debugger...
BBlisto91 2024-10-11 github

If you mean vkd3d-proton and not Wines own vkd3d then yes it works along with dxvk. It actually requires dxvk's dxgi.dll to even function properly.

ZZapeth 2024-10-11 github

No I'm using standard wine (staging), not proton. Is there some functionality missing in upstream wine/vkd3d that causes the conflict with dxvk, or is vkd3d-proton just automatically taking care of setting necessary the library overrides itself?

KK0bin maintainer 2024-10-11 github

It's not missing functionality, it's just that vkd3d-Proton had changes to make it work with DXVKs DXGI and I don't know if that's the case for upstream vkd3d too. But vkd3d-Proton is more fully featured anyway and has better compatibility with games. So you should use that regardless.

ZZapeth 2024-10-11 github

So you should use that regardless.

I'm primarily relying on the packages provided by the distro I use (Void Linux) which only features upstream wine files, so it was more convenient for me to use vanilla wine until now.

Also, I was originally dismissing vkd3d-proton because I thought it was only to be used in conjunction with Valve's Proton "tool", with all its dependencies (and possibly also Steam, it doesn't help that there is a lot of unclear/contradictory information about this topic online).

But reading through the readme of https://github.com/HansKristian-Work/vkd3d-proton it doesn't actually say anything about requiring any additional dependencies compared to upstream vkd3d, so I guess I'll try to see if I can get it working for my environment.

DLLs