[Mesa-dev] [PATCH] anv: GetDeviceImageFormatProperties: fix transfer destination formats

Lionel Landwerlin lionel.g.landwerlin at intel.com
Wed Aug 3 10:53:07 UTC 2016


We let the user believe we support some transfer destination formats
which we don't. This can lead to crashes when actually trying to use
those formats for example on
dEQP-VK.api.copy_and_blit.image_to_image.* tests.

Allow formats we can render to as meta implements transfers using
attachments.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Cc: Jason Ekstrand <jason.ekstrand at intel.com>
---
 src/intel/vulkan/anv_formats.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c
index b26e48a..1a3b19d 100644
--- a/src/intel/vulkan/anv_formats.c
+++ b/src/intel/vulkan/anv_formats.c
@@ -514,18 +514,13 @@ VkResult anv_GetPhysicalDeviceImageFormatProperties(
       }
    }
 
-#if 0
    if (usage & VK_IMAGE_USAGE_TRANSFER_DST_BIT) {
-      if (anv_format_for_vk_format(format)->has_stencil) {
-         /* Not yet implemented because copying to a W-tiled surface is crazy
-          * hard.
-          */
-         anv_finishme("support VK_IMAGE_USAGE_TRANSFER_DST_BIT for "
-                      "stencil format");
+      /* Meta implements transfers by rendering to the attachment image. */
+      if (!(format_feature_flags & (VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT |
+                                    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT))) {
          goto unsupported;
       }
    }
-#endif
 
    if (usage & VK_IMAGE_USAGE_SAMPLED_BIT) {
       if (!(format_feature_flags & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) {
-- 
2.8.1



More information about the mesa-dev mailing list