Mesa (main): anv,vulkan: Move anv_image_expand_aspects to common code
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Aug 17 21:47:45 UTC 2021
Module: Mesa
Branch: main
Commit: e45e4e3ba1505d68f2bb2c6ac825095a28427e7a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e45e4e3ba1505d68f2bb2c6ac825095a28427e7a
Author: Jason Ekstrand <jason at jlekstrand.net>
Date: Wed Jul 21 23:26:24 2021 -0500
anv,vulkan: Move anv_image_expand_aspects to common code
Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12023>
---
src/intel/vulkan/anv_image.c | 2 +-
src/intel/vulkan/anv_private.h | 16 +---------------
src/intel/vulkan/genX_cmd_buffer.c | 2 +-
src/vulkan/util/vk_image.c | 16 ++++++++++++++++
src/vulkan/util/vk_image.h | 3 +++
5 files changed, 22 insertions(+), 17 deletions(-)
diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
index 1ccafdcaf33..7bd4bece096 100644
--- a/src/intel/vulkan/anv_image.c
+++ b/src/intel/vulkan/anv_image.c
@@ -2697,7 +2697,7 @@ anv_CreateImageView(VkDevice _device,
* VK_IMAGE_ASPECT_PLANE_2_BIT for an image of format
* VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM.
*/
- iview->aspects = anv_image_expand_aspects(image, range->aspectMask);
+ iview->aspects = vk_image_expand_aspect_mask(&image->vk, range->aspectMask);
iview->n_planes = anv_image_aspect_get_planes(iview->aspects);
iview->vk_format = pCreateInfo->format;
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index 67554327941..fd4a6f8f68d 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -3826,7 +3826,7 @@ anv_aspect_to_plane(VkImageAspectFlags all_aspects,
}
#define anv_foreach_image_aspect_bit(b, image, aspects) \
- u_foreach_bit(b, anv_image_expand_aspects(image, aspects))
+ u_foreach_bit(b, vk_image_expand_aspect_mask(&(image)->vk, aspects))
const struct anv_format *
anv_get_format(VkFormat format);
@@ -4346,20 +4346,6 @@ anv_get_levelCount(const struct anv_image *image,
image->vk.mip_levels - range->baseMipLevel : range->levelCount;
}
-static inline VkImageAspectFlags
-anv_image_expand_aspects(const struct anv_image *image,
- VkImageAspectFlags aspects)
-{
- /* If the underlying image has color plane aspects and
- * VK_IMAGE_ASPECT_COLOR_BIT has been requested, then return the aspects of
- * the underlying image. */
- if ((image->vk.aspects & VK_IMAGE_ASPECT_PLANES_BITS_ANV) != 0 &&
- aspects == VK_IMAGE_ASPECT_COLOR_BIT)
- return image->vk.aspects;
-
- return aspects;
-}
-
static inline bool
anv_image_aspects_compatible(VkImageAspectFlags aspects1,
VkImageAspectFlags aspects2)
diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c
index d084c2f62ef..58893c3327b 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -2459,7 +2459,7 @@ void genX(CmdPipelineBarrier)(
if (range->aspectMask & VK_IMAGE_ASPECT_ANY_COLOR_BIT_ANV) {
VkImageAspectFlags color_aspects =
- anv_image_expand_aspects(image, range->aspectMask);
+ vk_image_expand_aspect_mask(&image->vk, range->aspectMask);
anv_foreach_image_aspect_bit(aspect_bit, image, color_aspects) {
transition_color_buffer(cmd_buffer, image, 1UL << aspect_bit,
range->baseMipLevel,
diff --git a/src/vulkan/util/vk_image.c b/src/vulkan/util/vk_image.c
index f5c1212d89d..64349adf748 100644
--- a/src/vulkan/util/vk_image.c
+++ b/src/vulkan/util/vk_image.c
@@ -181,3 +181,19 @@ vk_image_usage(const struct vk_image *image,
return image->usage;
}
}
+
+VkImageAspectFlags
+vk_image_expand_aspect_mask(const struct vk_image *image,
+ VkImageAspectFlags aspect_mask)
+{
+ /* If the underlying image has color plane aspects and
+ * VK_IMAGE_ASPECT_COLOR_BIT has been requested, then return the aspects of
+ * the underlying image. */
+ if (!(image->aspects & (VK_IMAGE_ASPECT_PLANE_0_BIT |
+ VK_IMAGE_ASPECT_PLANE_1_BIT |
+ VK_IMAGE_ASPECT_PLANE_2_BIT)) &&
+ aspect_mask == VK_IMAGE_ASPECT_COLOR_BIT)
+ return image->aspects;
+
+ return aspect_mask;
+}
diff --git a/src/vulkan/util/vk_image.h b/src/vulkan/util/vk_image.h
index ae3a0e62c3e..c35b99b700d 100644
--- a/src/vulkan/util/vk_image.h
+++ b/src/vulkan/util/vk_image.h
@@ -77,6 +77,9 @@ void vk_image_set_format(struct vk_image *image, VkFormat format);
VkImageUsageFlags vk_image_usage(const struct vk_image *image,
VkImageAspectFlags aspect_mask);
+VkImageAspectFlags vk_image_expand_aspect_mask(const struct vk_image *image,
+ VkImageAspectFlags aspect_mask);
+
static inline VkExtent3D
vk_image_mip_level_extent(const struct vk_image *image,
uint32_t mip_level)
More information about the mesa-commit
mailing list