Vulkan extensions missing with latest master
Closed this issue · 11 comments
See this issue: doitsujin/dxvk#44
Tl;dr: running with wine-vulkan b31f4a1, almost all the Device extensions are missing:
vulkaninfo.exe with wine-vulkan:
Device Extensions count = 1
VK_KHR_swapchain : extension revision 68
native linux vulkaninfo:
Device Extensions count = 28
VK_KHR_bind_memory2 : extension revision 1
VK_KHR_dedicated_allocation : extension revision 1
VK_KHR_descriptor_update_template : extension revision 1
VK_KHR_external_fence : extension revision 1
VK_KHR_external_fence_fd : extension revision 1
VK_KHR_external_memory : extension revision 1
VK_KHR_external_memory_fd : extension revision 1
VK_KHR_external_semaphore : extension revision 1
VK_KHR_external_semaphore_fd : extension revision 1
VK_KHR_get_memory_requirements2 : extension revision 1
VK_KHR_image_format_list : extension revision 1
VK_KHR_incremental_present : extension revision 1
VK_KHR_maintenance1 : extension revision 1
VK_KHR_maintenance2 : extension revision 1
VK_KHR_push_descriptor : extension revision 1
VK_KHR_relaxed_block_layout : extension revision 1
VK_KHR_sampler_mirror_clamp_to_edge : extension revision 1
VK_KHR_shader_draw_parameters : extension revision 1
VK_KHR_storage_buffer_storage_class : extension revision 1
VK_KHR_swapchain : extension revision 68
VK_KHR_variable_pointers : extension revision 1
VK_KHX_multiview : extension revision 1
VK_EXT_discard_rectangles : extension revision 1
VK_EXT_external_memory_dma_buf : extension revision 1
VK_EXT_global_priority : extension revision 1
VK_AMD_draw_indirect_count : extension revision 1
VK_AMD_rasterization_order : extension revision 1
VK_AMD_shader_info : extension revision 1
That's with latest radv git on RX 480.
Otherwise vulkan seems to work, i.e. the cube.exe demo runs fine.
Did you recently remove them? Because people with older wine-vulkan builds could run dxvk stuff, but now it just complains about missing extensions. I have not tried to use dxvk with wine-vulkan before so I don't really know how it behaved previously.
warn: DxgiAdapter: DXGI_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
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
Failed to create D3D11 device
None of the extensions used in DXVK (except for VK_KHR_swapchain
) actually add new Vulkan functions, so it worked fine with previous builds of wine-vulkan. Exposing them should not cause any issues.
I have added support for various extensions I can safely add from vk.xml from 1.0.51.
Just for reference the reason I can't add other extensions if they don't add new functions is because of struct alignment differences between 32-bit windows and linux, which happen in many structures. See all the conversion nightmare in vulkan_thunks.c.
I can't support past Vulkan 1.0.51 which has I think some of the extensions you want, because past 1.0.51 vk.xml is Apache licensed as opposed to BSD. I'm working with Khronos on resolving this, but it is a slow process.
@roderickc :thanks for your super fast action :) . I can use dxvk again now. So the really mandatory extensions seem to work now. Not sure if perf are anything else is affected by not having all of the wanted extensions available.
I removed a few more extensions (NVX / KHX) as they are experimental, but they should not affect dxvk I think. Let me know if things still work. Also wine-vulkan is now on Wine 3.1 as well.
did some quick tests and dxvk still seems to work. hope you can get 1.0.65 with extensions upand running soon :)
Thanks marking this issue as resolved then :)