diff --git a/src/panfrost/vulkan/panvk_image.c b/src/panfrost/vulkan/panvk_image.c index ec2e692b137..f58185df986 100644 --- a/src/panfrost/vulkan/panvk_image.c +++ b/src/panfrost/vulkan/panvk_image.c @@ -279,6 +279,17 @@ panvk_CreateImage(VkDevice device, const VkImageCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkImage *pImage) { VK_FROM_HANDLE(panvk_device, dev, device); + struct panvk_physical_device *phys_dev = + to_panvk_physical_device(dev->vk.physical); + + const VkImageSwapchainCreateInfoKHR *swapchain_info = + vk_find_struct_const(pCreateInfo->pNext, IMAGE_SWAPCHAIN_CREATE_INFO_KHR); + if (swapchain_info && swapchain_info->swapchain != VK_NULL_HANDLE) { + return wsi_common_create_swapchain_image(&phys_dev->wsi_device, + pCreateInfo, + swapchain_info->swapchain, + pImage); + } struct panvk_image *image = vk_image_create(&dev->vk, pCreateInfo, pAllocator, sizeof(*image));