Georg Lehmann (@DadSchoorse) commented about dlls/winevulkan/vulkan.c:
void *mapping = NULL; VkResult result;
- /* For host visible memory, we try to use VK_EXT_external_memory_host on wow64 - * to ensure that mapped pointer is 32-bit. */ mem_flags = device->phys_dev->memory_properties.memoryTypes[alloc_info->memoryTypeIndex].propertyFlags; - if (device->phys_dev->external_memory_align && (mem_flags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) && + if (device->phys_dev->map_placed_align) + { + if (mem_flags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) + { + VkDeviceSize align = device->phys_dev->map_placed_align - 1; + info.allocationSize = (info.allocationSize + align) & ~align; + } + }
I'm unsure if this is actually nessecary. I can't find anything in the spec, and I can't think of a situation where it breaks without this code but I guess it also doesn't hurt? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5128#note_62174