doitsujin / dxvk

Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine
zlib License
13.38k stars 866 forks source link

DXVK Vk_Khr_External_Memory_Win32 not supported, failed to create shared resource #4287

Open Sazu-bit opened 2 months ago

Sazu-bit commented 2 months ago

The issue that I'm having with the game is that many of the cutscenes are not playing, such as the opening. (I double checked by opening the 'Event Scenes' in the 'Vault' but same result). I have an up to date version of the wmp.dll and devenum.dll files. However, instead of playing the videos it outputs an error related no a VK KHR extension and somehow I need to work around that and looking for support.

The game otherwise runs just fine.

If you use Windows, please check the following page: https://github.com/doitsujin/dxvk/wiki/Windows

Software information

Samurai Warriors 5 (Publisher: Koei) Graphic Settings used: High Linux (Manjaro)

System information

Apitrace file(s)

For instructions on how to use apitrace, see: https://github.com/doitsujin/dxvk/wiki/Using-Apitrace

(The advice given doesn't work for my set up but will look at a work around)

Log files

info:  Game: SW5.exe
info:  DXVK: v2.3
info:  Vulkan: Found vkGetInstanceProcAddr in winevulkan.dll @ 0x6ffffd084020
info:  Built-in extension providers:
info:    Win32 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:  D3D9: VK_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
info:  AMD Radeon RX 590 Series (RADV POLARIS10):
info:    Driver : radv 24.1.5
info:    Memory Heap[0]: 
info:      Size: 7936 MiB
info:      Flags: 0x1
info:      Memory Type[0]: Property Flags = 0x1
info:      Memory Type[1]: Property Flags = 0x1
info:    Memory Heap[1]: 
info:      Size: 11981 MiB
info:      Flags: 0x0
info:      Memory Type[2]: Property Flags = 0x6
info:      Memory Type[5]: Property Flags = 0xe
info:      Memory Type[6]: Property Flags = 0xe
info:    Memory Heap[2]: 
info:      Size: 256 MiB
info:      Flags: 0x1
info:      Memory Type[3]: Property Flags = 0x7
info:      Memory Type[4]: Property Flags = 0x7
info:  D3D9: VK_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
info:  AMD Radeon RX 590 Series (RADV POLARIS10):
info:    Driver : radv 24.1.5
info:    Memory Heap[0]: 
info:      Size: 7936 MiB
info:      Flags: 0x1
info:      Memory Type[0]: Property Flags = 0x1
info:      Memory Type[1]: Property Flags = 0x1
info:    Memory Heap[1]: 
info:      Size: 11981 MiB
info:      Flags: 0x0
info:      Memory Type[2]: Property Flags = 0x6
info:      Memory Type[5]: Property Flags = 0xe
info:      Memory Type[6]: Property Flags = 0xe
info:    Memory Heap[2]: 
info:      Size: 256 MiB
info:      Flags: 0x1
info:      Memory Type[3]: Property Flags = 0x7
info:      Memory Type[4]: Property Flags = 0x7
info:  D3D9: VK_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
info:  AMD Radeon RX 590 Series (RADV POLARIS10):
info:    Driver : radv 24.1.5
info:    Memory Heap[0]: 
info:      Size: 7936 MiB
info:      Flags: 0x1
info:      Memory Type[0]: Property Flags = 0x1
info:      Memory Type[1]: Property Flags = 0x1
info:    Memory Heap[1]: 
info:      Size: 11981 MiB
info:      Flags: 0x0
info:      Memory Type[2]: Property Flags = 0x6
info:      Memory Type[5]: Property Flags = 0xe
info:      Memory Type[6]: Property Flags = 0xe
info:    Memory Heap[2]: 
info:      Size: 256 MiB
info:      Flags: 0x1
info:      Memory Type[3]: Property Flags = 0x7
info:      Memory Type[4]: Property Flags = 0x7
info:  Process set as DPI aware
info:  AMD Radeon RX 590 Series (RADV POLARIS10):
info:    Driver : radv 24.1.5
info:    Memory Heap[0]: 
info:      Size: 7936 MiB
info:      Flags: 0x1
info:      Memory Type[0]: Property Flags = 0x1
info:      Memory Type[1]: Property Flags = 0x1
info:    Memory Heap[1]: 
info:      Size: 11981 MiB
info:      Flags: 0x0
info:      Memory Type[2]: Property Flags = 0x6
info:      Memory Type[5]: Property Flags = 0xe
info:      Memory Type[6]: Property Flags = 0xe
info:    Memory Heap[2]: 
info:      Size: 256 MiB
info:      Flags: 0x1
info:      Memory Type[3]: Property Flags = 0x7
info:      Memory Type[4]: Property Flags = 0x7
012c:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x11ce88, paths 0x8fdf9010, modes_count 0x11ce8c, modes 0x8f5398b0, topology_id (nil) semi-stub
012c:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x11ce88, paths 0x8fdf9010, modes_count 0x11ce8c, modes 0x8f5398b0, topology_id (nil) semi-stub
012c:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x11ce88, paths 0x8fdf9010, modes_count 0x11ce8c, modes 0x8f5398b0, topology_id (nil) semi-stub
012c:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x11ce88, paths 0x8fdf9010, modes_count 0x11ce8c, modes 0x8f5398b0, topology_id (nil) semi-stub
info:  Device properties:
info:    Device : AMD Radeon RX 590 Series (RADV POLARIS10)
info:    Driver : radv 24.1.5
info:  Enabled device extensions:
info:    VK_AMD_memory_overallocation_behavior
info:    VK_AMD_shader_fragment_mask
info:    VK_EXT_attachment_feedback_loop_layout
info:    VK_EXT_custom_border_color
info:    VK_EXT_depth_bias_control
info:    VK_EXT_depth_clip_enable
info:    VK_EXT_extended_dynamic_state3
info:    VK_EXT_graphics_pipeline_library
info:    VK_EXT_memory_priority
info:    VK_EXT_non_seamless_cube_map
info:    VK_EXT_robustness2
info:    VK_EXT_shader_module_identifier
info:    VK_EXT_shader_stencil_export
info:    VK_EXT_swapchain_maintenance1
info:    VK_EXT_transform_feedback
info:    VK_EXT_vertex_attribute_divisor
info:    VK_KHR_maintenance5
info:    VK_KHR_pipeline_library
info:    VK_KHR_present_id
info:    VK_KHR_present_wait
info:    VK_KHR_swapchain
info:  Device features:
info:    robustBufferAccess                     : 1
info:    fullDrawIndexUint32                    : 1
info:    imageCubeArray                         : 1
info:    independentBlend                       : 1
info:    geometryShader                         : 1
info:    tessellationShader                     : 0
info:    sampleRateShading                      : 1
info:    dualSrcBlend                           : 0
info:    logicOp                                : 0
info:    multiDrawIndirect                      : 0
info:    drawIndirectFirstInstance              : 0
info:    depthClamp                             : 1
info:    depthBiasClamp                         : 1
info:    fillModeNonSolid                       : 1
info:    depthBounds                            : 1
info:    wideLines                              : 1
info:    multiViewport                          : 1
info:    samplerAnisotropy                      : 1
info:    textureCompressionBC                   : 1
info:    occlusionQueryPrecise                  : 1
info:    pipelineStatisticsQuery                : 1
info:    vertexPipelineStoresAndAtomics         : 1
info:    fragmentStoresAndAtomics               : 0
info:    shaderImageGatherExtended              : 0
info:    shaderClipDistance                     : 1
info:    shaderCullDistance                     : 1
info:    shaderFloat64                          : 0
info:    shaderInt64                            : 0
info:    variableMultisampleRate                : 1
info:    shaderResourceResidency                : 0
info:    shaderResourceMinLod                   : 0
info:    sparseBinding                          : 0
info:    sparseResidencyBuffer                  : 0
info:    sparseResidencyImage2D                 : 0
info:    sparseResidencyImage3D                 : 0
info:    sparseResidency2Samples                : 0
info:    sparseResidency4Samples                : 0
info:    sparseResidency8Samples                : 0
info:    sparseResidency16Samples               : 0
info:    sparseResidencyAliased                 : 0
info:  Vulkan 1.1
info:    shaderDrawParameters                   : 0
info:  Vulkan 1.2
info:    samplerMirrorClampToEdge               : 1
info:    drawIndirectCount                      : 1
info:    samplerFilterMinmax                    : 0
info:    hostQueryReset                         : 1
info:    timelineSemaphore                      : 1
info:    bufferDeviceAddress                    : 0
info:    shaderOutputViewportIndex              : 1
info:    shaderOutputLayer                      : 1
info:    vulkanMemoryModel                      : 1
info:  Vulkan 1.3
info:    robustImageAccess                      : 0
info:    pipelineCreationCacheControl           : 1
info:    shaderDemoteToHelperInvocation         : 1
info:    shaderZeroInitializeWorkgroupMemory    : 0
info:    synchronization2                       : 1
info:    dynamicRendering                       : 1
info:  VK_AMD_shader_fragment_mask
info:    extension supported                    : 1
info:  VK_EXT_attachment_feedback_loop_layout
info:    attachmentFeedbackLoopLayout           : 1
info:  VK_EXT_conservative_rasterization
info:    extension supported                    : 0
info:  VK_EXT_custom_border_color
info:    customBorderColors                     : 1
info:    customBorderColorWithoutFormat         : 1
info:  VK_EXT_depth_clip_enable
info:    depthClipEnable                        : 1
info:  VK_EXT_depth_bias_control
info:    depthBiasControl                       : 1
info:    leastRepresentableValueForceUnormRepresentation : 0
info:    floatRepresentation                    : 1
info:    depthBiasExact                         : 1
info:  VK_EXT_extended_dynamic_state3
info:    extDynamicState3AlphaToCoverageEnable  : 1
info:    extDynamicState3DepthClipEnable        : 1
info:    extDynamicState3RasterizationSamples   : 1
info:    extDynamicState3SampleMask             : 1
info:    extDynamicState3LineRasterizationMode  : 1
info:  VK_EXT_fragment_shader_interlock
info:    fragmentShaderSampleInterlock          : 0
info:    fragmentShaderPixelInterlock           : 0
info:  VK_EXT_full_screen_exclusive
info:    extension supported                    : 0
info:  VK_EXT_graphics_pipeline_library
info:    graphicsPipelineLibrary                : 1
info:  VK_EXT_line_rasterization
info:    rectangularLines                       : 1
info:    smoothLines                            : 1
info:  VK_EXT_memory_budget
info:    extension supported                    : 1
info:  VK_EXT_memory_priority
info:    memoryPriority                         : 1
info:  VK_EXT_non_seamless_cube_map
info:    nonSeamlessCubeMap                     : 1
info:  VK_EXT_robustness2
info:    robustBufferAccess2                    : 1
info:    robustImageAccess2                     : 1
info:    nullDescriptor                         : 1
info:  VK_EXT_shader_module_identifier
info:    shaderModuleIdentifier                 : 1
info:  VK_EXT_shader_stencil_export
info:    extension supported                    : 1
info:  VK_EXT_swapchain_colorspace
info:    extension supported                    : 0
info:  VK_EXT_swapchain_maintenance1
info:    swapchainMaintenance1                  : 1
info:  VK_EXT_hdr_metadata
info:    extension supported                    : 0
info:  VK_EXT_transform_feedback
info:    transformFeedback                      : 0
info:    geometryStreams                        : 0
info:  VK_EXT_vertex_attribute_divisor
info:    vertexAttributeInstanceRateDivisor     : 1
info:    vertexAttributeInstanceRateZeroDivisor : 1
info:  VK_KHR_external_memory_win32
info:    extension supported                    : 0
info:  VK_KHR_external_semaphore_win32
info:    extension supported                    : 0
info:  VK_KHR_maintenance5
info:    maintenance5                           : 1
info:  VK_KHR_present_id
info:    presentId                              : 1
info:  VK_KHR_present_wait
info:    presentWait                            : 1
info:  VK_NVX_binary_import
info:    extension supported                    : 0
info:  VK_NVX_image_view_handle
info:    extension supported                    : 0
info:  VK_KHR_win32_keyed_mutex
info:    extension supported                    : 0
info:  Queue families:
info:    Graphics : 0
info:    Transfer : 1
info:    Sparse   : 2
info:  DXVK: Read 1 valid state cache entries
info:  DXVK: Graphics pipeline libraries supported
info:  D3D9DeviceEx::ResetSwapChain:
info:    Requested Presentation Parameters
info:      - Width:              1920
info:      - Height:             1080
info:      - Format:             D3D9Format::X8R8G8B8
info:      - Auto Depth Stencil: false
info:                  ^ Format: D3D9Format::Unknown
info:      - Windowed:           true
info:      - Swap effect:        1
info:  Presenter: Actual swap chain properties:
info:    Format:       VK_FORMAT_B8G8R8A8_UNORM
info:    Color space:  VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
info:    Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR (dynamic: yes)
info:    Buffer size:  1914x1048
info:    Image count:  4
info:    Exclusive FS: 0
012c:fixme:mfplat:stream_handler_BeginCreateObject Unimplemented flags 0x11
err:   Failed to create shared resource: VK_KHR_EXTERNAL_MEMORY_WIN32 not supported
warn:  D3D9: Failed to write shared resource info for a texture
warn:  D3D11Device::OpenSharedResourceGeneric: Handle not found: 0xffffffffffffffff
K0bin commented 2 months ago

Resource sharing requires modifications to WineVulkan that regular Wine currently doesn't ship. The Wine developers are however working on supporting it in the future.

Sazu-bit commented 2 months ago

I'm happy to switch wine, are you aware of which one does support this? -tkg? -ge?

Etaash-mathamsetty commented 2 months ago

I'm happy to switch wine, are you aware of which one does support this? -tkg? -ge?

ge only rn

SingleInfiniteLoop commented 2 months ago

You can try to add winevulkan-win32-ext-memory patch series from my wine-tkg-git repository to build wine-staging-tkg: https://github.com/SingleInfiniteLoop/wine-tkg-git/tree/master/wine-tkg-git/wine-tkg-userpatches PS It depends on winevulkan-vr patch series from the same repository.

madsl commented 1 week ago

You can try to add winevulkan-win32-ext-memory patch series from my wine-tkg-git repository to build wine-staging-tkg: https://github.com/SingleInfiniteLoop/wine-tkg-git/tree/master/wine-tkg-git/wine-tkg-userpatches PS It depends on winevulkan-vr patch series from the same repository.

Cool!

I'm getting error: ‘VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR’ undeclared when I try compiling with all the winevulkan-*-patches applied, do you know which patch defines those things? Maybe my problem since I'm patching regular wine-staging...

theHamsta commented 1 day ago

You can try to add winevulkan-win32-ext-memory patch series from my wine-tkg-git repository to build wine-staging-tkg: https://github.com/SingleInfiniteLoop/wine-tkg-git/tree/master/wine-tkg-git/wine-tkg-userpatches PS It depends on winevulkan-vr patch series from the same repository.

Cool!

I'm getting error: ‘VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR’ undeclared when I try compiling with all the winevulkan-*-patches applied, do you know which patch defines those things? Maybe my problem since I'm patching regular wine-staging...

I think that define is directly coming from you Vulkan header. I think wine doesn't vendor the headers. Maybe you have a Vulkan header. So, you could install the latest Vulkan SDK (https://www.lunarg.com/vulkan-sdk/) or install them from here https://github.com/KhronosGroup/Vulkan-Headers/