vulkan: Remove asserts that weren't valid for RADV ETC2 emulation.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Mon, 21 Nov 2022 23:07:43 +0000 (00:07 +0100)
committerEric Engestrom <eric@engestrom.ch>
Wed, 30 Nov 2022 21:12:43 +0000 (21:12 +0000)
Wasn't caught when radv was modified to use these helpers ...

Tried to move the aspects assert so it still checks application inputs.

Fixes: d9048e31a0d ("radv: Use vk_image_view as the base for radv_image_view")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19914>
(cherry picked from commit 13d755441c7b648e4f6671d833a6d58ada9ae32d)

.pick_status.json
src/vulkan/runtime/vk_image.c

index 18cf472..8ecd4d1 100644 (file)
         "description": "vulkan: Remove asserts that weren't valid for RADV ETC2 emulation.",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "d9048e31a0d7b08b23363c1e31d509b635d5383b"
     },
index 32a649a..c797298 100644 (file)
@@ -184,8 +184,6 @@ VkImageUsageFlags
 vk_image_usage(const struct vk_image *image,
                VkImageAspectFlags aspect_mask)
 {
-   assert(!(aspect_mask & ~image->aspects));
-
    /* From the Vulkan 1.2.131 spec:
     *
     *    "If the image was has a depth-stencil format and was created with
@@ -368,23 +366,14 @@ vk_image_view_init(struct vk_device *device,
    const VkImageSubresourceRange *range = &pCreateInfo->subresourceRange;
 
    if (driver_internal) {
-      /* For driver internal images, all we require is that the block sizes
-       * match.  Otherwise, we trust the driver to use a format it knows what
-       * to do with.  Combined depth/stencil images might not match if the
-       * driver only cares about one of the two aspects.
-       */
-      if (image->aspects == VK_IMAGE_ASPECT_COLOR_BIT ||
-          image->aspects == VK_IMAGE_ASPECT_DEPTH_BIT ||
-          image->aspects == VK_IMAGE_ASPECT_STENCIL_BIT) {
-         assert(vk_format_get_blocksize(image->format) ==
-                vk_format_get_blocksize(image_view->format));
-      }
       image_view->aspects = range->aspectMask;
       image_view->view_format = pCreateInfo->format;
    } else {
       image_view->aspects =
          vk_image_expand_aspect_mask(image, range->aspectMask);
 
+      assert(!(image_view->aspects & ~image->aspects));
+
       /* From the Vulkan 1.2.184 spec:
        *
        *    "If the image has a multi-planar format and