v3dv: make sure we only expose transfer features for formats we can use
authorIago Toral Quiroga <itoral@igalia.com>
Tue, 24 Mar 2020 09:35:05 +0000 (10:35 +0100)
committerMarge Bot <eric+marge@anholt.net>
Tue, 13 Oct 2020 21:21:28 +0000 (21:21 +0000)
We were already doing this, but this makes it more explicit.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>

src/broadcom/vulkan/v3dv_formats.c

index 0d1faaf..d48fe55 100644 (file)
@@ -351,8 +351,7 @@ image_format_features(VkFormat vk_format,
       return 0;
    }
 
-   VkFormatFeatureFlags flags = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT |
-                                VK_FORMAT_FEATURE_TRANSFER_DST_BIT;
+   VkFormatFeatureFlags flags = 0;
 
    if (v3dv_format->tex_type != TEXTURE_DATA_FORMAT_NO) {
       flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT |
@@ -381,6 +380,11 @@ image_format_features(VkFormat vk_format,
          flags |= VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT;
    }
 
+   if (flags) {
+      flags |= VK_FORMAT_FEATURE_TRANSFER_SRC_BIT |
+               VK_FORMAT_FEATURE_TRANSFER_DST_BIT;
+   }
+
    return flags;
 }