radv: provide a helper for comparing an image extents.
authorDave Airlie <airlied@redhat.com>
Mon, 1 May 2017 23:40:36 +0000 (09:40 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 2 May 2017 19:59:52 +0000 (05:59 +1000)
This just makes it easier to do the follow in cleanups of the surface.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_meta_clear.c
src/amd/vulkan/radv_private.h

index 3e79cd8c1132730cc0a94a1faec8cbf341109759..d72f4c858da8c67f7d89c963cd3a53eeec6fe76f 100644 (file)
@@ -614,7 +614,7 @@ static bool depth_view_can_fast_clear(const struct radv_image_view *iview,
            iview->base_mip == 0 &&
            iview->base_layer == 0 &&
            radv_layout_can_expclear(iview->image, layout) &&
-           memcmp(&iview->extent, &iview->image->extent, sizeof(iview->extent)) == 0)
+           !radv_image_extent_compare(iview->image, &iview->extent))
                return true;
        return false;
 }
@@ -858,7 +858,7 @@ emit_fast_color_clear(struct radv_cmd_buffer *cmd_buffer,
        if (iview->image->surface.level[0].mode < RADEON_SURF_MODE_1D)
                goto fail;
 
-       if (memcmp(&iview->extent, &iview->image->extent, sizeof(iview->extent)))
+       if (!radv_image_extent_compare(iview->image, &iview->extent))
                goto fail;
 
        if (clear_rect->rect.offset.x || clear_rect->rect.offset.y ||
index 045bb647d695ac7c2b0c590c25a65d0ebdd7671b..48d0f443e16f358def2143789a54a28ef3e7f6a6 100644 (file)
@@ -1284,6 +1284,15 @@ radv_sanitize_image_offset(const VkImageType imageType,
        }
 }
 
+static inline bool
+radv_image_extent_compare(const struct radv_image *image,
+                         const VkExtent3D *extent)
+{
+       if (memcmp(extent, &image->extent, sizeof(*extent)))
+               return false;
+       return true;
+}
+
 struct radv_sampler {
        uint32_t state[4];
 };