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_IMAGE_ASPECT_PLANE_2_BIT for an image of format
|
||||||
* VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM.
|
* 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->n_planes = anv_image_aspect_get_planes(iview->aspects);
|
||||||
iview->vk_format = pCreateInfo->format;
|
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) \
|
#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 *
|
const struct anv_format *
|
||||||
anv_get_format(VkFormat 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;
|
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
|
static inline bool
|
||||||
anv_image_aspects_compatible(VkImageAspectFlags aspects1,
|
anv_image_aspects_compatible(VkImageAspectFlags aspects1,
|
||||||
VkImageAspectFlags aspects2)
|
VkImageAspectFlags aspects2)
|
||||||
|
@@ -2459,7 +2459,7 @@ void genX(CmdPipelineBarrier)(
|
|||||||
|
|
||||||
if (range->aspectMask & VK_IMAGE_ASPECT_ANY_COLOR_BIT_ANV) {
|
if (range->aspectMask & VK_IMAGE_ASPECT_ANY_COLOR_BIT_ANV) {
|
||||||
VkImageAspectFlags color_aspects =
|
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) {
|
anv_foreach_image_aspect_bit(aspect_bit, image, color_aspects) {
|
||||||
transition_color_buffer(cmd_buffer, image, 1UL << aspect_bit,
|
transition_color_buffer(cmd_buffer, image, 1UL << aspect_bit,
|
||||||
range->baseMipLevel,
|
range->baseMipLevel,
|
||||||
|
@@ -181,3 +181,19 @@ vk_image_usage(const struct vk_image *image,
|
|||||||
return image->usage;
|
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,
|
VkImageUsageFlags vk_image_usage(const struct vk_image *image,
|
||||||
VkImageAspectFlags aspect_mask);
|
VkImageAspectFlags aspect_mask);
|
||||||
|
|
||||||
|
VkImageAspectFlags vk_image_expand_aspect_mask(const struct vk_image *image,
|
||||||
|
VkImageAspectFlags aspect_mask);
|
||||||
|
|
||||||
static inline VkExtent3D
|
static inline VkExtent3D
|
||||||
vk_image_mip_level_extent(const struct vk_image *image,
|
vk_image_mip_level_extent(const struct vk_image *image,
|
||||||
uint32_t mip_level)
|
uint32_t mip_level)
|
||||||
|
Reference in New Issue
Block a user