vk/image: Remove unneeded data from anv_buffer_view
authorChad Versace <chad.versace@intel.com>
Fri, 17 Jul 2015 21:48:23 +0000 (14:48 -0700)
committerChad Versace <chad.versace@intel.com>
Fri, 17 Jul 2015 21:48:23 +0000 (14:48 -0700)
This completes the FINISHME to trim unneeded data from anv_buffer_view.

A VkExtent3D doesn't make sense for a VkBufferView.
So remove the member anv_surface_view::extent, and push it up to the two
objects that actually need it, anv_image_view and anv_attachment_view.

src/vulkan/image.c
src/vulkan/meta.c
src/vulkan/private.h

index 340df8a5af1b20010eed6f49195b367b2214295b..4b37de54dde8ed92f47f66a0b79bd00e3300dca7 100644 (file)
@@ -372,7 +372,7 @@ anv_image_view_init(struct anv_image_view *iview,
    view->offset = image->offset + surface->offset;
    view->format = pCreateInfo->format;
 
-   view->extent = (VkExtent3D) {
+   iview->extent = (VkExtent3D) {
       .width = anv_minify(image->extent.width, range->baseMipLevel),
       .height = anv_minify(image->extent.height, range->baseMipLevel),
       .depth = anv_minify(image->extent.depth, range->baseMipLevel),
@@ -588,7 +588,7 @@ anv_color_attachment_view_init(struct anv_color_attachment_view *aview,
    view->offset = image->offset + surface->offset;
    view->format = pCreateInfo->format;
 
-   view->extent = (VkExtent3D) {
+   aview->base.extent = (VkExtent3D) {
       .width = anv_minify(image->extent.width, pCreateInfo->mipLevel),
       .height = anv_minify(image->extent.height, pCreateInfo->mipLevel),
       .depth = anv_minify(image->extent.depth, pCreateInfo->mipLevel),
index 8e2556b82181f4f86072d0c63dd4525ab14d6d2c..30809581ad60c6d856efa9b268129618685c245a 100644 (file)
@@ -543,8 +543,8 @@ meta_emit_blit(struct anv_cmd_buffer *cmd_buffer,
          dest_offset.y + dest_extent.height,
       },
       .tex_coord = {
-         (float)(src_offset.x + src_extent.width) / (float)src->view.extent.width,
-         (float)(src_offset.y + src_extent.height) / (float)src->view.extent.height,
+         (float)(src_offset.x + src_extent.width) / (float)src->extent.width,
+         (float)(src_offset.y + src_extent.height) / (float)src->extent.height,
       },
    };
 
@@ -554,8 +554,8 @@ meta_emit_blit(struct anv_cmd_buffer *cmd_buffer,
          dest_offset.y + dest_extent.height,
       },
       .tex_coord = {
-         (float)src_offset.x / (float)src->view.extent.width,
-         (float)(src_offset.y + src_extent.height) / (float)src->view.extent.height,
+         (float)src_offset.x / (float)src->extent.width,
+         (float)(src_offset.y + src_extent.height) / (float)src->extent.height,
       },
    };
 
@@ -565,8 +565,8 @@ meta_emit_blit(struct anv_cmd_buffer *cmd_buffer,
          dest_offset.y,
       },
       .tex_coord = {
-         (float)src_offset.x / (float)src->view.extent.width,
-         (float)src_offset.y / (float)src->view.extent.height,
+         (float)src_offset.x / (float)src->extent.width,
+         (float)src_offset.y / (float)src->extent.height,
       },
    };
 
@@ -622,8 +622,8 @@ meta_emit_blit(struct anv_cmd_buffer *cmd_buffer,
                .layout = VK_IMAGE_LAYOUT_GENERAL
             }
          },
-         .width = dest->view.extent.width,
-         .height = dest->view.extent.height,
+         .width = dest->base.extent.width,
+         .height = dest->base.extent.height,
          .layers = 1
       }, &fb);
 
@@ -1274,8 +1274,8 @@ void anv_CmdClearColorImage(
                         .layout = VK_IMAGE_LAYOUT_GENERAL
                      }
                   },
-                  .width = view.view.extent.width,
-                  .height = view.view.extent.height,
+                  .width = view.base.extent.width,
+                  .height = view.base.extent.height,
                   .layers = 1
                }, &fb);
 
@@ -1322,8 +1322,8 @@ void anv_CmdClearColorImage(
                   .renderArea = {
                      .offset = { 0, 0, },
                      .extent = {
-                        .width = view.view.extent.width,
-                        .height = view.view.extent.height,
+                        .width = view.base.extent.width,
+                        .height = view.base.extent.height,
                      },
                   },
                   .renderPass = pass,
index 16ddaefc57e2d3df5ebd86985b73ecfec6508713..ac64f294c2db54238a503ecc52341e6af34571e9 100644 (file)
@@ -889,17 +889,16 @@ struct anv_surface_view {
    struct anv_bo *bo;
    uint32_t offset; /**< VkBufferCreateInfo::offset */
    uint32_t range; /**< VkBufferCreateInfo::range */
-   VkExtent3D extent;
    VkFormat format; /**< VkBufferCreateInfo::format */
 };
 
 struct anv_buffer_view {
-   /* FINISHME: Trim unneeded data from this struct. */
    struct anv_surface_view view;
 };
 
 struct anv_image_view {
    struct anv_surface_view view;
+   VkExtent3D extent;
 };
 
 enum anv_attachment_view_type {
@@ -909,11 +908,11 @@ enum anv_attachment_view_type {
 
 struct anv_attachment_view {
    enum anv_attachment_view_type attachment_type;
+   VkExtent3D extent;
 };
 
 struct anv_color_attachment_view {
    struct anv_attachment_view base;
-
    struct anv_surface_view view;
 };