Jacek Caban (@jacek) commented about dlls/winevulkan/vulkan_thunks.c:
return (void *)out; }
+static inline void convert_VkDeviceOrHostAddressKHR_win32_to_host(const VkDeviceOrHostAddressKHR32 *in, VkDeviceOrHostAddressKHR *out) +{ + if (!in) return; + + out->deviceAddress = in->deviceAddress; + out->hostAddress = (void *)UlongToPtr(in->hostAddress);
FWIW, this will not do the right thing on wow64 when the address is meant to be device address. It will override the upper part of deviceAddress. It was broken in a different way before that commit by not zeroing upper 32 bits when host address should be used, so it essentially depended on caller to initialize that part. Unfortunately, I don't see a good way of solving it properly. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1508#note_17182