Vulkan issues (?) with Witcher 3 (GOG) + wine + dxvk + Optimus Nvidia

Dear all,

I’m trying to get the non-native game “The Wichter 3 Wild Hunt GOTY” from GOG to run through wine. After trying the whole afternoon I’ve given up for now and hope that someone here may be able to give me some pointers or even find a fix. I think it’s most effective if I just list what I have tried and observed:

  • I’m using Manjaro with KDE on my Lenovo T480s (NVidia Optimus with MX150). The GPU supports Vulkan and I’ve installed the proprietary drivers using mhwd -a pci non-free 0300.
  • wine, wine-mono, winetricks, bumblebee and dxvk-bin are installed, all up-to-date
  • I downloaded the standalone installer from GOG and installed the game “successfully” using WINEPREFIX=~/.wine-witcher3/ wincfgand WINEPREFIX=~/.wine-witcher3 wine <installer.exe> as well as the accompanying patch. When running winecfg for the first time I was asked whether to install mono and gecko which surprised as wine-mono is installed and should have been found. I ignored those prompts. Running the created desktop icon will open the “Windows” explorer on the C-drive. I’m not sure why that happens.
  • Afterwards I integrated dxvk using WINEPREFIX=~/.wine-witcher3/ setup_dxvk install.
  • Trying to start the game via bumblebee will get me this:
$ env WINEPREFIX="/home/lg/.wine-witcher3" optirun wine "C:\\GOG Games\\The Witcher 3 Wild Hunt GOTY\\bin\\x64\\witcher3.exe"
002a:fixme:win:EnumDisplayDevicesW ((null),0,0x213f1a0,0x00000000), stub!
warn:  D3D11CoreCreateDevice: Adapter is not a DXVK adapter
info:  Game: witcher3.exe
info:  DXVK: v1.0.1
warn:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_KHR_get_physical_device_properties2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
Xlib:  extension "NV-GLX" missing on display ":0".
info:  D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_11_0
info:  D3D11CoreCreateDevice: Using feature level D3D_FEATURE_LEVEL_11_0
info:  Enabled device extensions:
info:    VK_EXT_shader_viewport_index_layer
info:    VK_EXT_transform_feedback
info:    VK_EXT_vertex_attribute_divisor
info:    VK_KHR_dedicated_allocation
info:    VK_KHR_descriptor_update_template
info:    VK_KHR_driver_properties
info:    VK_KHR_get_memory_requirements2
info:    VK_KHR_image_format_list
info:    VK_KHR_maintenance1
info:    VK_KHR_maintenance2
info:    VK_KHR_sampler_mirror_clamp_to_edge
info:    VK_KHR_shader_draw_parameters
info:    VK_KHR_swapchain
002a:fixme:vulkan:wine_vk_device_convert_create_info Application requested a linked structure of type 0x3b9db032.
002a:fixme:vulkan:wine_vk_device_convert_create_info Application requested a linked structure of type 0x3b9b3760.
Xlib:  extension "NV-GLX" missing on display ":0".
002a:err:vulkan:wine_vkCreateDevice Failed to create device.
err:   D3D11CoreCreateDevice: Failed to create D3D11 device
002b:fixme:ver:GetCurrentPackageId (0x17fcfdc0 (nil)): stub
002a:fixme:msvcrt:__clean_type_info_names_internal (0x2431878) stub
002a:fixme:msvcrt:__clean_type_info_names_internal (0x2345768) stub
  • I’ve also tried nvidia-xrun (with openbox) which will yield this:
$ env WINEPREFIX="/home/lg/.wine-witcher3" wine "C:\\GOG Games\\The Witcher 3 Wild Hunt GOTY\\bin\\x64\\witcher3.exe"
002a:fixme:win:EnumDisplayDevicesW ((null),0,0x212f1a0,0x00000000), stub!
warn:  D3D11CoreCreateDevice: Adapter is not a DXVK adapter
info:  Game: witcher3.exe
info:  DXVK: v1.0.1
warn:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_KHR_get_physical_device_properties2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
info:  D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_11_0
info:  D3D11CoreCreateDevice: Using feature level D3D_FEATURE_LEVEL_11_0
info:  Enabled device extensions:
info:    VK_EXT_shader_viewport_index_layer
info:    VK_EXT_transform_feedback
info:    VK_EXT_vertex_attribute_divisor
info:    VK_KHR_dedicated_allocation
info:    VK_KHR_descriptor_update_template
info:    VK_KHR_driver_properties
info:    VK_KHR_get_memory_requirements2
info:    VK_KHR_image_format_list
info:    VK_KHR_maintenance1
info:    VK_KHR_maintenance2
info:    VK_KHR_sampler_mirror_clamp_to_edge
info:    VK_KHR_shader_draw_parameters
info:    VK_KHR_swapchain
002a:fixme:vulkan:wine_vk_device_convert_create_info Application requested a linked structure of type 0x3b9db032.
002a:fixme:vulkan:wine_vk_device_convert_create_info Application requested a linked structure of type 0x3b9b3760.
info:  DXVK: Read 0 valid state cache entries
info:  DXVK: Using 4 compiler threads
0032:fixme:ver:GetCurrentPackageId (0x2bbfdc0 (nil)): stub
002a:fixme:msvcrt:__clean_type_info_names_internal (0x2421878) stub
002a:fixme:msvcrt:__clean_type_info_names_internal (0x2335768) stub
  • glxgears runs fine using either optirun or nvidia-xrun.
  • The file /usr/share/vulkan/icd.d/nvidia_icd.json points to libGLX_nvidia.so.0
  • I’ve also downloaded dxvk directly, unpacked the tar.gz file and run the script inside WINEPREFIX=~/.wine-witcher3/ bash setup_dxvk.sh install. With this trying to start the game via optirun will show slightly different behavior and tell me “GPU does not meet minimal requirements. Support for DirectX 11 is required” through a popup and yields the output
env WINEPREFIX="/home/lg/.wine-witcher3" optirun wine "C:\\GOG Games\\The Witcher 3 Wild Hunt GOTY\\bin\\x64\\witcher3.exe"
info:  Game: witcher3.exe
info:  DXVK: v1.0.1
warn:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_KHR_get_physical_device_properties2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
Xlib:  extension "NV-GLX" missing on display ":0".
002a:err:vulkan:wine_vk_instance_load_physical_devices Failed to enumerate physical devices, res=-3
002a:err:vulkan:wine_vkCreateInstance Failed to load physical devices, res=-3
err:   DxvkInstance::createInstance: Failed to create Vulkan instance
002a:fixme:msvcrt:__clean_type_info_names_internal (0x2431878) stub
002a:fixme:msvcrt:__clean_type_info_names_internal (0x2345768) stub
  • I’ve googled these error messages but haven’t really found any applicable non-dated solutions.

This is my first time trying to run a game through wine and I don’t really know how to proceed at this point. Any help is appreciated. If I should provide additional info please feel free to ask.

https://www.phoronix.com/scan.php?page=news_item&px=Primus-VK-Vulkan-Offload-Layer

1 Like

Thank you for the first link. From what I understand vulkan is not yet supported by bumblebee in an official stable manner (therefore the need for primus_vk). I’m hesitant to try this as I feel like I would mess that up. Furthermore the point I make below hints that there is another issue at play here.

Concerning the second link: I’ve tried running the game with nvidia-xrun (see second snippet above) but to no avail. My impression is that this should work and is the most efficient manner to utilize the GPU. Does somebody understand from the output what may be wrong?

Has anybody got this particular setup (Optimus Nvidia + Witcher 3 GOG) to work?

Have you read through the entries (including comments) at: https://appdb.winehq.org/objectManager.php?sClass=version&iId=34698 there might be something there that helps?

Why not just use the lutris script and just tell the lutris app that you're pulling from GOG? In fact until I saw your thread I wondered why lutris promoted that they have a script for witcher 3 since it works fine with proton but now I see why. I didn't consider GOG.

Good idea. Some of those bugs might be related? I'll have a more thorough look.

All that lutris would do is help me automate the setup, right? However my impression until now is that I have a problem with Nvidea Optimus. So I'm not sure that would solve the problem. Might try that in the future though...

True. I assumed your nvidia issue was related to setup because I have an nvidia gpu and I launched witcher 3 just fine. (but I did it from proton)

Do you have a notebook with two GPUs (one Intel, one Nvidia)? I haven't yet managed to get other games running through Proton and Steam either. From what I gathered that was partly because Proton and bumblebee don't do well together.

However I was hoping that somebody reads this who has a similar setup (in regard to the game and Nvidia Optimus) and managed to get it to work...

I have a laptop with intel and nvidia but I don't use it for gaming. I've heard there're issues with the bumblbee driver. Fortunately when I installed manjaro on my gaming rig and told the live iso on the boot menu to use nonfree drivers it installed the pure nividia driver (not niviida3xxx) but I feel your pain because for some odd reason I don't think manjaro allowed me to use that driver on my laptop. Currently my laptop is just using the open-source driver.

yes, works perfectly. use PRIME or optimus-switch which both work fine with vulkan.

then use lutris to install it, there is already an installer on lutris and lutris has built-in support for GOG and steam accounts and sets up and configures wine prefixes for you.

Thanks, that sounds promising! I'll have a look at your solution when I find the time.

1 Like