Rémi Bernon (@rbernon) commented about dlls/winevulkan/vulkan.c:
- thread_info = NtUserGetThreadInfo();
- thread_info->vulkan_data = (uintptr_t)memory;
+}
+static uint64_t get_transient_handle(uint64_t host_handle) +{
- struct ntuser_thread_info *thread_info;
- struct wine_device_memory *memory;
- thread_info = NtUserGetThreadInfo();
- if (!thread_info->vulkan_data) return 0;
- memory = (struct wine_device_memory *)(uintptr_t)thread_info->vulkan_data;
- memory->host_memory = host_handle;
- return (uintptr_t)memory;
I don't think we should update the client object here, and this should IMO just return the client handle for the debug callback.
Only once the object is created the client object will be updated, and a proper handle mapping added.
(This was what I though it was doing, and the reason why I said you didn't need the host handle).