[Mesa-dev] [PATCH v2 3/6] anv: Report FORMAT_FEATURE_TRANSFER_SRC/DST_BIT_KHR

Jason Ekstrand jason at jlekstrand.net
Tue Jan 24 17:42:47 UTC 2017


As of VK_KHR_maintenance1, these are supposed to be reported for any
formats on which we support transfer operations.  For us, this is
anything that we can texture from.

Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

v2: Add the flags to buffer_format_properties as well.
---
 src/intel/vulkan/anv_formats.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c
index a5d783e..f4183f0 100644
--- a/src/intel/vulkan/anv_formats.c
+++ b/src/intel/vulkan/anv_formats.c
@@ -348,6 +348,11 @@ get_image_format_properties(const struct gen_device_info *devinfo,
    if (base == ISL_FORMAT_R32_SINT || base == ISL_FORMAT_R32_UINT)
       flags |= VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT;
 
+   if (flags) {
+      flags |= VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR |
+               VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR;
+   }
+
    return flags;
 }
 
@@ -372,6 +377,11 @@ get_buffer_format_properties(const struct gen_device_info *devinfo,
    if (format == ISL_FORMAT_R32_SINT || format == ISL_FORMAT_R32_UINT)
       flags |= VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT;
 
+   if (flags) {
+      flags |= VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR |
+               VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR;
+   }
+
    return flags;
 }
 
@@ -393,7 +403,9 @@ anv_physical_device_get_format_properties(struct anv_physical_device *physical_d
          tiled |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT;
 
       tiled |= VK_FORMAT_FEATURE_BLIT_SRC_BIT |
-               VK_FORMAT_FEATURE_BLIT_DST_BIT;
+               VK_FORMAT_FEATURE_BLIT_DST_BIT |
+               VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR |
+               VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR;
    } else {
       struct anv_format linear_fmt, tiled_fmt;
       linear_fmt = anv_get_format(&physical_device->info, format,
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list