wsi/common: Set VK_IMAGE_CREATE_ALIAS_BIT
With Vulkan 1.1, we have a VkImageSwapchainCreateInfoKHR struct which lets you create a new VkImage which aliases a swapchain image. However, there is no corresponding swapchain create flag so we have to set VK_IMAGE_CREATE_ALIAS_BIT all the time. We need to do a bit of work in ANV to prevent it from asserting the moment it sees one of these. Fortunately, they're already safe because WSI images go through a different bind path for VkBindImageMemorySwapchainInfoKHR. Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12031>
This commit is contained in:

committed by
Marge Bot

parent
1abab1a28f
commit
ca791f5c5d
@@ -903,9 +903,10 @@ check_memory_bindings(const struct anv_device *device,
|
||||
: ANV_IMAGE_MEMORY_BINDING_MAIN;
|
||||
|
||||
/* Aliasing is incompatible with the private binding because it does not
|
||||
* live in a VkDeviceMemory.
|
||||
* live in a VkDeviceMemory. The one exception is swapchain images.
|
||||
*/
|
||||
assert(!(image->vk.create_flags & VK_IMAGE_CREATE_ALIAS_BIT) ||
|
||||
image->from_wsi ||
|
||||
image->bindings[ANV_IMAGE_MEMORY_BINDING_PRIVATE].memory_range.size == 0);
|
||||
|
||||
/* Check primary surface */
|
||||
|
Reference in New Issue
Block a user