diff --git a/src/imagination/vulkan/pvr_formats.c b/src/imagination/vulkan/pvr_formats.c index 09414cb980d..b4000548a96 100644 --- a/src/imagination/vulkan/pvr_formats.c +++ b/src/imagination/vulkan/pvr_formats.c @@ -605,7 +605,8 @@ pvr_get_image_format_features2(const struct pvr_format *pvr_format, 0); flags |= VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT | - VK_FORMAT_FEATURE_2_BLIT_SRC_BIT; + VK_FORMAT_FEATURE_2_BLIT_SRC_BIT | + VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT; if (!vk_format_is_int(vk_format) && !vk_format_is_depth_or_stencil(vk_format) && @@ -615,7 +616,8 @@ pvr_get_image_format_features2(const struct pvr_format *pvr_format, } } else if (!vk_format_is_block_compressed(vk_format)) { flags |= VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT | - VK_FORMAT_FEATURE_2_BLIT_SRC_BIT; + VK_FORMAT_FEATURE_2_BLIT_SRC_BIT | + VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT; } } @@ -722,6 +724,8 @@ pvr_get_buffer_format_features2(const struct pvr_format *pvr_format) desc = vk_format_description(vk_format); + flags |= VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT; + if (desc->layout == UTIL_FORMAT_LAYOUT_PLAIN && desc->colorspace == UTIL_FORMAT_COLORSPACE_RGB) { flags |= VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT;