From d71a5af723ae4585b1103e1c4076adf36a279bfc Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Thu, 27 Feb 2020 12:18:41 +0100 Subject: [PATCH] v3dv: don't support image formats that we can rendet to or texture from Part-of: --- src/broadcom/vulkan/v3dv_formats.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/broadcom/vulkan/v3dv_formats.c b/src/broadcom/vulkan/v3dv_formats.c index 5e9e84fa83e..760a9819532 100644 --- a/src/broadcom/vulkan/v3dv_formats.c +++ b/src/broadcom/vulkan/v3dv_formats.c @@ -328,12 +328,19 @@ image_format_features(VkFormat vk_format, if ((aspects & zs_aspects) == VK_IMAGE_ASPECT_STENCIL_BIT) return 0; - VkFormatFeatureFlags flags = - VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT | - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT | - VK_FORMAT_FEATURE_BLIT_SRC_BIT | - VK_FORMAT_FEATURE_TRANSFER_SRC_BIT | - VK_FORMAT_FEATURE_TRANSFER_DST_BIT; + if (v3dv_format->tex_type == TEXTURE_DATA_FORMAT_NO && + v3dv_format->rt_type == V3D_OUTPUT_IMAGE_FORMAT_NO) { + return 0; + } + + VkFormatFeatureFlags flags = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT | + VK_FORMAT_FEATURE_TRANSFER_DST_BIT; + + if (v3dv_format->tex_type != TEXTURE_DATA_FORMAT_NO) { + flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT | + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT | + VK_FORMAT_FEATURE_BLIT_SRC_BIT; + } if (v3dv_format->rt_type != V3D_OUTPUT_IMAGE_FORMAT_NO) { flags |= VK_FORMAT_FEATURE_BLIT_DST_BIT;