[Mesa-dev] [RFC PATCH 13/13] RFC: anv: Drop unneeded struct anv_image_create_info

Chad Versace chadversary at chromium.org
Mon Mar 6 20:40:22 UTC 2017


Now that anv_image_create() is gone, there is no need for struct
anv_image_create_info. The struct just adds an unused layer of
indirection.
---
 src/intel/vulkan/anv_image.c   | 38 +++++++++++---------------------------
 src/intel/vulkan/anv_private.h |  9 ---------
 2 files changed, 11 insertions(+), 36 deletions(-)

diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
index 998b0b43391..e5e93f702f6 100644
--- a/src/intel/vulkan/anv_image.c
+++ b/src/intel/vulkan/anv_image.c
@@ -106,7 +106,7 @@ get_surface(struct anv_image *image, VkImageAspectFlags aspect)
 }
 
 static isl_tiling_flags_t
-choose_isl_tiling_flags(const struct anv_image_create_info *anv_info,
+choose_isl_tiling_flags(const VkImageCreateInfo *base_info,
                         const VkImportImageDmaBufInfoMESAX *import_dma_buf_info,
                         const VkExportImageDmaBufInfoMESAX *export_dma_buf_info)
 {
@@ -122,15 +122,12 @@ choose_isl_tiling_flags(const struct anv_image_create_info *anv_info,
          uint64_t mod = export_dma_buf_info->pDrmFormatModifiers[i];
          flags |= 1 << isl_tiling_from_drm_format_mod(mod);
       }
-   } else if (anv_info->vk_info->tiling == VK_IMAGE_TILING_LINEAR) {
+   } else if (base_info->tiling == VK_IMAGE_TILING_LINEAR) {
       flags = ISL_TILING_LINEAR_BIT;
    } else {
       flags = ISL_TILING_ANY_MASK;
    }
 
-   if (anv_info->isl_tiling_flags)
-      flags &= anv_info->isl_tiling_flags;
-
    assert(flags != 0);
 
    return flags;
@@ -158,22 +155,6 @@ choose_isl_format(const struct anv_device *dev,
    }
 }
 
-static uint32_t
-choose_row_pitch(const struct anv_image_create_info *anv_info,
-                 const VkImportImageDmaBufPlaneInfoMESAX *plane_info)
-{
-   if (anv_info->stride != 0)
-      return anv_info->stride;
-
-   if (plane_info) {
-      assert(plane_info->rowPitch > 0);
-      return plane_info->rowPitch;
-   }
-
-   /* Let isl choose the pitch. */
-   return 0;
-}
-
 static void
 set_min_surface_offset(const struct anv_image *image, struct anv_surface *surf)
 {
@@ -318,14 +299,13 @@ make_aux_surface_maybe(const struct anv_device *dev,
  */
 static void
 make_main_surface(const struct anv_device *dev,
-                  const struct anv_image_create_info *anv_info,
+                  const VkImageCreateInfo *base_info,
                   const VkImportImageDmaBufInfoMESAX *import_dma_buf_info,
                   const VkExportImageDmaBufInfoMESAX *export_dma_buf_info,
                   VkImageAspectFlags aspect,
                   VkExternalMemoryHandleTypeFlagsKHX handle_types,
                   struct anv_image *image)
 {
-   const VkImageCreateInfo *base_info = anv_info->vk_info;
    bool ok UNUSED;
 
    static const enum isl_surf_dim vk_to_isl_surf_dim[] = {
@@ -339,8 +319,13 @@ make_main_surface(const struct anv_device *dev,
       plane_info = &import_dma_buf_info->pPlanes[0];
 
    const isl_tiling_flags_t tiling_flags =
-      choose_isl_tiling_flags(anv_info, import_dma_buf_info, export_dma_buf_info);
-   const uint32_t row_pitch = choose_row_pitch(anv_info, plane_info);
+      choose_isl_tiling_flags(base_info, import_dma_buf_info, export_dma_buf_info);
+
+   uint32_t row_pitch = 0;
+   if (plane_info) {
+      assert(plane_info->rowPitch > 0);
+      row_pitch = plane_info->rowPitch;
+   }
 
    struct anv_surface *anv_surf = get_surface(image, aspect);
 
@@ -386,7 +371,6 @@ anv_CreateImage(VkDevice _device,
                 VkImage *pImage)
 {
    ANV_FROM_HANDLE(anv_device, device, _device);
-   const struct anv_image_create_info anv_info = { .vk_info = base_info };
    const VkImportImageDmaBufInfoMESAX *import_dma_buf_info = NULL;
    const VkExportImageDmaBufInfoMESAX *export_dma_buf_info = NULL;
    VkExternalMemoryHandleTypeFlagsKHX handle_types = 0;
@@ -444,7 +428,7 @@ anv_CreateImage(VkDevice _device,
    uint32_t b;
    for_each_bit(b, image->aspects) {
       VkImageAspectFlagBits aspect = 1 << b;
-      make_main_surface(device, &anv_info, import_dma_buf_info,
+      make_main_surface(device, base_info, import_dma_buf_info,
                         export_dma_buf_info, aspect, handle_types, image);
       make_aux_surface_maybe(device, base_info, aspect, handle_types, image);
    }
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index 2f62ec50c5b..a5dd0f72de1 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -1860,15 +1860,6 @@ struct anv_image_view {
    struct brw_image_param storage_image_param;
 };
 
-struct anv_image_create_info {
-   const VkImageCreateInfo *vk_info;
-
-   /** An opt-in bitmask which filters an ISL-mapping of the Vulkan tiling. */
-   isl_tiling_flags_t isl_tiling_flags;
-
-   uint32_t stride;
-};
-
 const struct anv_surface *
 anv_image_get_surface_for_aspect_mask(const struct anv_image *image,
                                       VkImageAspectFlags aspect_mask);
-- 
2.12.0



More information about the mesa-dev mailing list