Georg Lehmann (@DadSchoorse) commented about dlls/winevulkan/vulkan.c:
} }
- if (phys_dev->external_memory_align) + if (phys_dev->map_placed_align) + { + VkPhysicalDeviceMapMemoryPlacedFeaturesEXT *features; + const char **new_extensions; + + new_extensions = conversion_context_alloc(ctx, (dst->enabledExtensionCount + 2) * + sizeof(*dst->ppEnabledExtensionNames)); + memcpy(new_extensions, src->ppEnabledExtensionNames, + dst->enabledExtensionCount * sizeof(*dst->ppEnabledExtensionNames)); + new_extensions[dst->enabledExtensionCount++] = "VK_EXT_map_memory_placed"; + new_extensions[dst->enabledExtensionCount++] = "VK_KHR_map_memory2"; + dst->ppEnabledExtensionNames = new_extensions;
Another issue with enabling extension that the application didn't request is that it breaks `vk_is_available_device_function` because the driver will return a non-NULL function, but the we should return NULL. Again, the external memory path already had this issue with `vkGetMemoryHostPointerPropertiesEXT`. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5128#note_62173