anv,vulkan: Move anv_image_expand_aspects to common code
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12023>
This commit is contained in:

committed by
Marge Bot

parent
25d4cffabf
commit
e45e4e3ba1
@@ -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;
|
||||
|
||||
|
@@ -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)
|
||||
|
@@ -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,
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user