diff --git a/src/broadcom/vulkan/v3dv_formats.c b/src/broadcom/vulkan/v3dv_formats.c index 167d0d28350..08c27e9f26a 100644 --- a/src/broadcom/vulkan/v3dv_formats.c +++ b/src/broadcom/vulkan/v3dv_formats.c @@ -475,9 +475,11 @@ buffer_format_features(VkFormat vk_format, const struct v3dv_format *v3dv_format if (desc->layout == UTIL_FORMAT_LAYOUT_PLAIN && desc->colorspace == UTIL_FORMAT_COLORSPACE_RGB && desc->is_array) { - flags |= VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT | - VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT | - VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT; + flags |= VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT; + if (v3dv_format->tex_type != TEXTURE_DATA_FORMAT_NO) { + flags |= VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT | + VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT; + } } else if (vk_format == VK_FORMAT_A2B10G10R10_UNORM_PACK32) { flags |= VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT | VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT;