radv: Expose transfer format features.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Fri, 27 Jan 2017 05:03:06 +0000 (00:03 -0500)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Mon, 30 Jan 2017 07:42:26 +0000 (08:42 +0100)
Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
src/amd/vulkan/radv_formats.c

index e147f94074c3618f321353a321b1dece607d14f0..f18ecee9d2af9bf05c249c5c22eb3172197c6e33 100644 (file)
@@ -570,6 +570,8 @@ radv_physical_device_get_format_properties(struct radv_physical_device *physical
                        tiled |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT;
                        tiled |= VK_FORMAT_FEATURE_BLIT_SRC_BIT |
                                 VK_FORMAT_FEATURE_BLIT_DST_BIT;
+                       tiled |= VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR |
+                                VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR;
                }
        } else {
                bool linear_sampling;
@@ -591,6 +593,15 @@ radv_physical_device_get_format_properties(struct radv_physical_device *physical
                                tiled |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT;
                        }
                }
+               if (util_is_power_of_two(vk_format_get_blocksize(format))) {
+                       tiled |= VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR |
+                                VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR;
+               }
+       }
+
+       if (util_is_power_of_two(vk_format_get_blocksize(format))) {
+               linear |= VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR |
+                         VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR;
        }
 
        if (format == VK_FORMAT_R32_UINT || format == VK_FORMAT_R32_SINT) {