From 5a11a2fb6cb461ff3a3c565e669b91aac8d66ef0 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Tue, 15 Mar 2022 09:44:27 +0100 Subject: [PATCH] v3dv: don't expose image load/store features for linear images MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Alejandro PiƱeiro Part-of: --- src/broadcom/vulkan/v3dv_formats.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/broadcom/vulkan/v3dv_formats.c b/src/broadcom/vulkan/v3dv_formats.c index e1dcd250a63..e6557cbd3a9 100644 --- a/src/broadcom/vulkan/v3dv_formats.c +++ b/src/broadcom/vulkan/v3dv_formats.c @@ -181,15 +181,17 @@ image_format_features(struct v3dv_physical_device *pdevice, vk_format_description(vk_format); assert(desc); - if (desc->layout == UTIL_FORMAT_LAYOUT_PLAIN && desc->is_array) { - flags |= VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT; - if (desc->nr_channels == 1 && vk_format_is_int(vk_format)) - flags |= VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT; - } else if (vk_format == VK_FORMAT_A2B10G10R10_UNORM_PACK32 || - vk_format == VK_FORMAT_A2B10G10R10_UINT_PACK32 || - vk_format == VK_FORMAT_B10G11R11_UFLOAT_PACK32) { - /* To comply with shaderStorageImageExtendedFormats */ - flags |= VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT; + if (tiling != VK_IMAGE_TILING_LINEAR) { + if (desc->layout == UTIL_FORMAT_LAYOUT_PLAIN && desc->is_array) { + flags |= VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT; + if (desc->nr_channels == 1 && vk_format_is_int(vk_format)) + flags |= VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT; + } else if (vk_format == VK_FORMAT_A2B10G10R10_UNORM_PACK32 || + vk_format == VK_FORMAT_A2B10G10R10_UINT_PACK32 || + vk_format == VK_FORMAT_B10G11R11_UFLOAT_PACK32) { + /* To comply with shaderStorageImageExtendedFormats */ + flags |= VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT; + } } if (flags) {