Georg Lehmann (@DadSchoorse) commented about dlls/winevulkan/vulkan.c:
return VK_SUCCESS;
if (!device->funcs.p_vkUnmapMemory2KHR) { assert(!unmap_info->pNext); device->funcs.p_vkUnmapMemory(device->host_device, memory->host_memory); return VK_SUCCESS; }
info = *unmap_info; info.memory = memory->host_memory; - return device->funcs.p_vkUnmapMemory2KHR(device->host_device, &info); + if (memory->mapping) + info.flags |= VK_MEMORY_UNMAP_RESERVE_BIT_EXT; + + result = device->funcs.p_vkUnmapMemory2KHR(device->host_device, &info);
Do we need to anything special if the application uses placed map and doesn't reserve on unmap? The Vulkan driver will munmap, but is wine's allocator aware of that? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5128#note_62171