box64 icon indicating copy to clipboard operation
box64 copied to clipboard

vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV unwrapped

Open dborel opened this issue 1 month ago • 10 comments

As with #1256, I seem to be missing a Vulkan function wrapper. This is with DXVK 1.10.3 and Proton 10.2 on Raspberry Pi 5 with latest vanilla ARM64 Trixie.

Using native(wrapped) libvulkan.so.1
Warning, no wrapper for vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV

Then Dead Space.exe asserts in C:\windows\system32\winevulkan.dll at ../src-wine/dlls/winevulkan/loader.c:372 with "!status" being false.

Attempting to ignore it, all subsequent Vulkan calls also fail.

The GPU does not support VK_KHR_cooperative_matrix in hardware, so I am not expecting this function to get used at all. But if I try to use WineD3D (even with renderer=gl), it fails to load libvkd3d-1.dll and libvkd3d-shader-1.dll, although both are present.

dborel avatar Nov 25 '25 16:11 dborel

Not sure what version of box64 your are using, but this function exist already in latest sources. This function was added 8 months ago with this PR: https://github.com/ptitSeb/box64/commit/7c4c6823fe44064701f15af03bcbdd5d597236f0

ptitSeb avatar Nov 25 '25 16:11 ptitSeb

It's the latest nightly Debian build. Box64 arm64 v0.3.9 c75c8eb4 with Dynarec built on Nov 24 2025 06:29:07

The v3dv driver doesn't have the function, so I guess DXVK shouldn't be attempting to load it. It's also missing at least two features that Box64 doesn't complain about, like shaderStorageImageWriteWithoutFormat (which Igalia could maybe support with low performance) and textureCompressionBC (the hardware actually supports BC1-3 but not BC4-7). But those don't seem to add any functions, unlike VK_KHR_cooperative_matrix.

I suspect the failure to load vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV is causing an issue with vkCreateInstance, resulting in the assertion.

dborel avatar Nov 25 '25 18:11 dborel

It doesn't matter if the function exist in the driver or not: the message "No wrapper for" is from Box64 (before even knowing if the function exist in the driver). But I don't understand because that function is defined vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV in box64, and so the message "No wrapper" should not appear! Are you sure you don't have 2 version of box64, one being old that could explain the message?

ptitSeb avatar Nov 25 '25 18:11 ptitSeb

Oops, this is a 32-bit app and Box86 is much older because pi-apps-coders' debs are out of date:

Box86 with Dynarec v0.3.9 fa59e748 built on Feb 13 2025 06:33:33

dborel avatar Nov 25 '25 19:11 dborel

No worries. Next time, the full log output of Box would be helpful to narrow that down faster.

Does updating Box86 help?

For Windows 32-bit Vulkan games, I'd recommend to use Box64 with a Wine WOW64 build (or Proton 10 with WOW64 enabled).

LukeShortCloud avatar Nov 25 '25 19:11 LukeShortCloud

Ah, that would explain. I need to check, this is probably not in box86...

ptitSeb avatar Nov 25 '25 19:11 ptitSeb

Thanks, switching to Proton's bin-wow64 binaries and Box64 eliminated the issue. Now I am getting the expected DxvkAdapter: Failed to create device due to shaderStorageImageWriteWithoutFormat.

dborel avatar Nov 25 '25 20:11 dborel

@dborel Can you try theses DXVK-stripped https://github.com/khanh-it/dxvk/releases

Opi5KDTP avatar Nov 26 '25 06:11 Opi5KDTP

Thanks, I see you made a lot of the features optional, including shaderStorageImageWriteWithoutFormat and textureCompressionBC. I would expect that to cause an error when the client tried to use the unimplemented functionality, but there must be some other init checks failing.

DeadSpace_d3d9.log

The game works (slowly) now with WineD3D's gl renderer.

BTW, if I disable DXVK and switch to Proton's WineD3D renderer to vulkan, I get a different problem:

0148:fixme:d3d:get_vulkan_physical_device Multiple physical devices available.
0148:fixme:d3d:adapter_vk_init_driver_info Failed to retrieve GPU description for device "V3D 7.1.7.0" 14e4:55701c33.
0148:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0148:fixme:d3d:hresult_from_vk_result Unhandled VkResult -8.

dborel avatar Dec 01 '25 04:12 dborel

tbh, I don't think the V3D mesa driver is able to run modern DXVK. I think there are still missing needed extensions. It might run version 1.x, but even that, I'm not sure. I don't own any RPi5 to test on my side, I only have an RPi/400 (wich didn't run dxvk last time I tried)

ptitSeb avatar Dec 01 '25 07:12 ptitSeb