Mesa (master): anv: Refactor get_image_format_properties() - ASTC

Chad Versace chadversary at kemper.freedesktop.org
Fri Nov 10 00:03:57 UTC 2017


Module: Mesa
Branch: master
Commit: 096fc6915b580b496aa785d5d44499cdbc28137b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=096fc6915b580b496aa785d5d44499cdbc28137b

Author: Chad Versace <chadversary at chromium.org>
Date:   Thu Nov  2 18:26:23 2017 -0700

anv: Refactor get_image_format_properties() - ASTC

Teach it to calculate the format features for ASTC.

The goal is to incrementally fix get_image_format_properties() to return
a correct result.  Currently, it returns incorrect VkFormatFeatureFlags
which the caller must clean up.

v2: New commit message

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net> (v1)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

---

 src/intel/vulkan/anv_formats.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c
index 8c9f5a46d2..eaf6093a4f 100644
--- a/src/intel/vulkan/anv_formats.c
+++ b/src/intel/vulkan/anv_formats.c
@@ -497,6 +497,11 @@ get_image_format_properties(const struct gen_device_info *devinfo,
       return flags;
    }
 
+   /* ASTC textures must be in Y-tiled memory */
+   if (vk_tiling == VK_IMAGE_TILING_LINEAR &&
+       isl_format_get_layout(format.isl_format)->txc == ISL_TXC_ASTC)
+      return 0;
+
    if (isl_format_supports_sampling(devinfo, format.isl_format)) {
       flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT |
                VK_FORMAT_FEATURE_BLIT_SRC_BIT;
@@ -615,10 +620,6 @@ anv_physical_device_get_format_properties(struct anv_physical_device *physical_d
          tiled &= ~VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT &
                   ~VK_FORMAT_FEATURE_BLIT_DST_BIT;
       }
-
-      /* ASTC textures must be in Y-tiled memory */
-      if (isl_format_get_layout(linear_fmt.isl_format)->txc == ISL_TXC_ASTC)
-         linear = 0;
    }
 
    if (format && format->can_ycbcr) {




More information about the mesa-commit mailing list