radv: Properly handle modifier import failure.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Fri, 12 Feb 2021 14:08:32 +0000 (15:08 +0100)
committerMarge Bot <eric+marge@anholt.net>
Sat, 13 Feb 2021 22:00:39 +0000 (22:00 +0000)
The layout code can fail now in the non-delayed case with modifiers.

Fixes: 7f7da82dbb7 ("radv: Add image layout with drm format modifiers.")
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9012>

src/amd/vulkan/radv_image.c

index e1410d9..6a9e011 100644 (file)
@@ -1643,8 +1643,11 @@ radv_image_create(VkDevice _device,
                return VK_SUCCESS;
        }
 
-       ASSERTED VkResult result = radv_image_create_layout(device, *create_info, explicit_mod, image);
-       assert(result == VK_SUCCESS);
+       VkResult result = radv_image_create_layout(device, *create_info, explicit_mod, image);
+       if (result != VK_SUCCESS) {
+               radv_destroy_image(device, alloc, image);
+               return result;
+       }
 
        if (image->flags & VK_IMAGE_CREATE_SPARSE_BINDING_BIT) {
                image->alignment = MAX2(image->alignment, 4096);