protonscr

dxvk does not work with Wine-Vulkan 3.0 - required extensions not supported

dxvkclosed help wanted
doitsujin/dxvk#44 · opened 2018-01-31 by pingubot · updated 2018-02-02 · 9 comments · github
Ppingubot 2018-01-31 github

Hi,

i tried to get DXVk running with wine-vulkan instead of wine-staging now and it does not work.
Here are the error messages, i guess it is caused by the fact the wine-vulkan does not expose extensions as it seems ? :

info: Enabled instance layers:
info: Enabled instance extensions:
info: VK_KHR_surface
info: VK_KHR_win32_surface
008a:fixme:vulkan:wine_vk_instance_convert_create_info Application requested a linked structure of type 47
008a:fixme:vulkan:wine_vk_instance_convert_create_info Application requested a linked structure of type 47
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceDisplayPropertiesKHR'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceDisplayPlanePropertiesKHR'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetDisplayPlaneSupportedDisplaysKHR'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetDisplayModePropertiesKHR'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkCreateDisplayModeKHR'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetDisplayPlaneCapabilitiesKHR'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkCreateDisplayPlaneSurfaceKHR'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkCreateSharedSwapchainsKHR'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceSurfaceCapabilities2KHR'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceSurfaceFormats2KHR'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkCreateDebugReportCallbackEXT'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkDestroyDebugReportCallbackEXT'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkDebugReportMessageEXT'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkDebugMarkerSetObjectTagEXT'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkDebugMarkerSetObjectNameEXT'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceExternalImageFormatPropertiesNV'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetDeviceGroupSurfacePresentModesKHX'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDevicePresentRectanglesKHX'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkEnumeratePhysicalDeviceGroupsKHX'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceExternalBufferPropertiesKHX'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceExternalSemaphorePropertiesKHX'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkReleaseDisplayEXT'
008a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceSurfaceCapabilities2EXT'
info: D3D11CreateDevice: Probing D3D_FEATURE_LEVEL_11_0
info: D3D11CreateDevice: Using feature level D3D_FEATURE_LEVEL_11_0
err: Required Vulkan extension VK_KHR_maintenance1 not supported
warn: Vulkan extension VK_KHR_maintenance2 not supported
err: Required Vulkan extension VK_KHR_shader_draw_parameters not supported
err: DxvkAdapter: Failed to create device
err: D3D11CreateDevice: Failed to create DXGI device

Any way to solve that ?

Many thanks !
Christian

RRaffarti 2018-01-31 github

wine-vulkan works for me, did you tried to run vulkaninfo to check that vulkan loads properly?

Ddoitsujin maintainer 2018-01-31 github

wine-vulkan exposes extensions just fine and DXVK will work on it if everything is set up correctly. Please make sure that vulkaninfo.exe from the LunarG SDK reports your device properly and lists the required extensions.

CChristophHaag 2018-02-01 github

I have to second that dxvk does not work on wine-vulkan, using b31f4a1b66803f88edc78507d7d16240ddf08d58
vulkaninfo 32 and 64 bit and cube 32 and 64 bit run fine, but from dxvk I only get these same messages. Only tested d3d11-triangle and skyrim se and it's the same on both.

screenshot_20180201_113033

RRaffarti 2018-02-01 github

Weird though, I'm using RADV and wine-vulkan too and I'm not able to reproduce this. You're using git mesa I guess? What do vulkaninfo |grep maintenance and wine vulkaninfo|grep maintenance return?

CChristophHaag 2018-02-01 github

They are indeed different
vulkaninfo-native.txt
vulkaninfo-wine.txt

There's also this output from wine that may or may not be related:

002a:fixme:vulkan:wine_vk_instance_convert_create_info Application requested a linked structure of type 47
002a:fixme:vulkan:wine_vk_instance_convert_create_info Application requested a linked structure of type 1000011000
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceDisplayPropertiesKHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceDisplayPlanePropertiesKHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetDisplayPlaneSupportedDisplaysKHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetDisplayModePropertiesKHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkCreateDisplayModeKHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetDisplayPlaneCapabilitiesKHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkCreateDisplayPlaneSurfaceKHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkCreateSharedSwapchainsKHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceExternalBufferPropertiesKHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceExternalSemaphorePropertiesKHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceExternalFencePropertiesKHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceSurfaceCapabilities2KHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceSurfaceFormats2KHR'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkCreateDebugReportCallbackEXT'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkDestroyDebugReportCallbackEXT'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkDebugReportMessageEXT'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkDebugMarkerSetObjectTagEXT'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkDebugMarkerSetObjectNameEXT'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceExternalImageFormatPropertiesNV'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetDeviceGroupSurfacePresentModesKHX'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDevicePresentRectanglesKHX'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkEnumeratePhysicalDeviceGroupsKHX'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkReleaseDisplayEXT'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceSurfaceCapabilities2EXT'
002a:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceMultisamplePropertiesEXT'

This might be an issue with only the latest wine-vulkan git master.

RRaffarti 2018-02-01 github

There's also this output from wine that may or may not be related:

that should not be related, I get something like that too.

It's definitely a vulkan problem, as my installation reports correctly for vulkaninfo.exe

WINEDEBUG=-all WINEPREFIX=~/.wine32/ /opt/wine/bin/wine vulkaninfo|grep maintenance
wine: configuration in '/home/raffarti/.wine32' has been updated.
WARNING: radv is not a conformant vulkan implementation, testing use only.
        VK_KHR_maintenance1                 : extension revision  1
        VK_KHR_maintenance2                 : extension revision  1

Maybe something is wrong with the wine ICD file?

EDIT:
I didn't noticed I wasn't on the latest commit of wine-vulkan. I'll refresh my build and test it again.

RRaffarti 2018-02-01 github

With latest wine-vulkan it isn't working for me too any more, it looks like a wine-vulkan issue I guess.

Rroderickc 2018-02-02 github

Some extensions were exposed by 'accident' before and they were not handled properly (they would have crashed on 32-bit). So I had to disable extensions and implement filtering. Tonight I pushed support for various extensions, but nothing past 1.0.51 yet due to licensing issues.

Ddoitsujin maintainer 2018-02-02 github

Seems resolved with the latest revisions of wine-vulkan.

Launch options