I cannot get dxvk to work.

Questions about Wine on Linux
Locked
AlastairGrowcott
Newbie
Newbie
Posts: 4
Joined: Thu Dec 27, 2018 7:12 am

I cannot get dxvk to work.

Post by AlastairGrowcott »

Wine version: wine-5.0-rc1 (Staging)
Winetricks version: 20181203-next

Every time I try and get dxvk to work with a game that has graphics problems, the game fails to start at all.

I have tried a few things but I am just guessing in the dark. I have tried to just get vulkaninfo.exe to run as a starting point. Here are my steps:

1) Use winecfg to create an empty prefix, set to Windows 7 and disable CSMT.
2) Use winetricks to install vulkanrt.
3) Run wine drive_c/windows/system32/vulkaninfo.exe

000b:fixme:winediag:__wine_start_process Wine Staging 5.0-rc1 is a testing version containing experimental patches.
000b:fixme:winediag:__wine_start_process Please mention your exact version when filing bug reports on winehq.org.
0009:err:vulkan:wine_vk_init Failed to load vulkan library
0009:err:vulkan:wine_vk_init Failed to load Wine graphics driver supporting Vulkan.
0009:err:module:LdrInitializeThunk "winevulkan.dll" failed to initialize, aborting
0009:err:module:LdrInitializeThunk Initializing dlls for L"Z:\\wine\\dxvk\\drive_c\\windows\\system32\\vulkaninfo.exe" failed, status c0000142

I have looked online for guides to troubleshooting wine vulkan, but all I find are links with people exclaiming how dxvk solved all their problems. It is causing me more than I started with!

I have no idea how to progress this as I have no idea how wine vulkan works or what its dependencies are or anything. I would be very grateful for any and all help offered.
jkfloris
Level 12
Level 12
Posts: 3141
Joined: Thu Aug 14, 2014 10:10 am

Re: I cannot get dxvk to work.

Post by jkfloris »

Can you successfully run vulkaninfo on Linux?
What is the output of:

Code: Select all

glxinfo -B
Winetricks version: 20181203-next
It doesn't hurt to update your one year old winetricks version.
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: I cannot get dxvk to work.

Post by Bob Wya »

@AlastairGrowcott

Please use the forum Code tags for all terminal commands and output:

Code: Select all

...
This makes forum posts much easier to parse.

See: doitsujin/dxvk Wiki: Common issues.
Ensure you have installed up-to-date 32-bit and 64-bit native Linux Vulkan dependencies.
Plus a very recent Mesa version (AMD) e.g. ≥19.2 or Nvidia driver (Nvidia) installed -e.g. ≥440.43.01.

Once you've updated to a supported / current version of winetricks.
The current release is 20190912 - but you are generally recommended to run with the winetricks Git master.
Then you will always have the most up-to-date versions of the verbs / updated download URL's.

There are rather clunky instructions for auto-updating winetricks, in my winetricks readme branch.

Once you have updated winetricks, then you can just do (per WINEPREFIX):

Code: Select all

winetricks dxvk
to install the latest version of dxvk - to that WINEPREFIX.
However the verb:

Code: Select all

winetricks dxvk
won't work (at present) - till my Pull request dxvk: integrate support for d9vk #1452 is approved.
So, in the meantime just use an older version of dxvk, e.g.

Code: Select all

winetricks dxvk146
You don't need to do:

Code: Select all

winetricks vulkanrt
- that will only serve to install the Windows version of the Vulkan graphics layer - you need the Linux Vulkan graphics layer + graphics driver.

Bob
AlastairGrowcott
Newbie
Newbie
Posts: 4
Joined: Thu Dec 27, 2018 7:12 am

Re: I cannot get dxvk to work.

Post by AlastairGrowcott »

Thankyou all for all your advice.

vulkaninfo works fine, please see attached file for output.

Code: Select all

$ glxinfo -B
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 8192 MB
    Total available memory: 8192 MB
    Currently available dedicated video memory: 7767 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1080/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 440.44
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6.0 NVIDIA 440.44
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)

OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 440.44
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
I am fairly sure I have installed all the Vulkan dependencies. vkcube works fine natively. I have also installed the very latest nVidia drivers within the last week.

I have updated winetricks following the link given. I installed dxvk146 and nothing else. I still get the same errors.

Code: Select all

$ ./run 
000b:fixme:winediag:__wine_start_process Wine Staging 5.0-rc1 is a testing version containing experimental patches.
000b:fixme:winediag:__wine_start_process Please mention your exact version when filing bug reports on winehq.org.
002a:fixme:ver:GetCurrentPackageId (0x10dfefc (nil)): stub
0032:fixme:ver:GetCurrentPackageId (0xb0fefc (nil)): stub
0009:err:vulkan:wine_vk_init Failed to load vulkan library
0009:err:vulkan:wine_vk_init Failed to load Wine graphics driver supporting Vulkan.
0009:err:module:find_forwarded_export module not found for forward 'winevulkan.wine_vkGetInstanceProcAddr' used by L"C:\\windows\\system32\\vulkan-1.dll"
0009:err:vulkan:wine_vk_init Failed to load Wine graphics driver supporting Vulkan.
0009:err:module:find_forwarded_export module not found for forward 'winevulkan.wine_vkGetInstanceProcAddr' used by L"C:\\windows\\system32\\vulkan-1.dll"
0009:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0.
Attachments
vkinfo.txt.gz
(7.12 KiB) Downloaded 94 times
AlastairGrowcott
Newbie
Newbie
Posts: 4
Joined: Thu Dec 27, 2018 7:12 am

Re: I cannot get dxvk to work.

Post by AlastairGrowcott »

I just posted a lengthy reply and it has disappeared. Maybe it will show up later.

Following your clue about making sure I installed the 32 bit drivers, I did:

Code: Select all

sudo apt install libvulkan1:i386
DXVK now appears to be working. I still need to test the full game.

It would be good if winetricks checked for this dependency as it seems a fairly easy one to check.


Thanks again for everyone's help.
Cybermax
Level 4
Level 4
Posts: 218
Joined: Fri Dec 01, 2017 5:26 pm

Re: I cannot get dxvk to work.

Post by Cybermax »

Aaahh.. The christmas spirit has come upon us. I am filled with joy that you actually got a reply to a DXVK problem on the WineHQ forum :P
jkfloris
Level 12
Level 12
Posts: 3141
Joined: Thu Aug 14, 2014 10:10 am

Re: I cannot get dxvk to work.

Post by jkfloris »

It would be good if winetricks checked for this dependency as it seems a fairly easy one to check.
The winehq-staging package has an indirect dependency on libvulkan1:i386 on Debian
I don't know if this is different on Ubuntu.

Code: Select all

winehq-staging
» wine-staging:i386
  » wine-staging-i386:i386
    » libvkd3d1:i386
      » libvulkan1:i386
Cybermax
Level 4
Level 4
Posts: 218
Joined: Fri Dec 01, 2017 5:26 pm

Re: I cannot get dxvk to work.

Post by Cybermax »

jkfloris wrote: Sun Dec 22, 2019 11:59 am The winehq-staging package has an indirect dependency on libvulkan1:i386 on Debian
I don't know if this is different on Ubuntu.
Ubuntu does not seem to have this. I noticed a fresh install of Debian 10 had libvulkan1:amd64 installed, but Ubuntu 18.04 does not. Adding winehq-staging to debian10 also added libvulkan1:i386, but for Ubuntu neither libvulkan1:amd64 nor libvulkan1:i386 was added.

Running

Code: Select all

apt-cache rdepends libvulkan1
on a fresh Debian10 gives:

Code: Select all

libvulkan1
Reverse Depends:
  vulkan-validationlayers
  libwine-development
  libwine
  vulkan-validationlayers
  libvulkan-dev
  vulkan-tools
  libvkd3d1
  vkd3d-demos
  libglfw3
  mpv
  libmpv1
  mesa-vulkan-drivers
  libplacebo7
  gstreamer1.0-plugins-bad
  libglfw3-wayland
It seems from those packages the only thing i had installed (fresh VM with debian 10) was:

Code: Select all

ii  gstreamer1.0-plugins-bad:amd64        1.14.4-1+b1                          amd64        GStreamer plugins from the "bad" set
For a fresh install of Ubuntu 18.04 the list was like this:

Code: Select all

libvulkan1
Reverse Depends:
  libvulkan-dev
  vulkan-utils
  mesa-vulkan-drivers
  libvulkan-dev
  gstreamer1.0-plugins-bad
  vulkan-utils
  mesa-vulkan-drivers
  gstreamer1.0-plugins-bad
  libplacebo4
  libglfw3-wayland
  libglfw3
None of those were installed.

If i install gstreamer1.0-plugins-bad before winehq-staging on Ubuntu 18.04, libvulkan1:amd64 was added, but libvulkan1:i386 was not. So there seems to be a slight discrepency between Ubuntu and Debian there. PS. i did not test 19.10, so i dunno if that has changed, but afaik the packages is built the same with the same dependencies for both Ubuntu and Debian on the OBS buildserver.

Conclusion: Probably some OTHER package that is installed with winehq-staging does this. The dependency list AFTER installing winehq-staging lists wine-staging-i386 depending on libvulkan1:i386, but it does not seem to actually be enforced for Ubuntu.
Locked