From 9f5cc58919ef9b2e86eeccf38e947ec02ffa3ba3 Mon Sep 17 00:00:00 2001 From: Luigi Santivetti Date: Tue, 17 Feb 2026 15:35:55 +0000 Subject: [PATCH] pvr: allow pvr_get_copy_format to handle ycbcr formats Signed-off-by: Luigi Santivetti Reviewed-by: Frank Binns Part-of: --- src/imagination/vulkan/rogue/pvr_blit.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/imagination/vulkan/rogue/pvr_blit.c b/src/imagination/vulkan/rogue/pvr_blit.c index 9e7cc79ee54..485ccb54b98 100644 --- a/src/imagination/vulkan/rogue/pvr_blit.c +++ b/src/imagination/vulkan/rogue/pvr_blit.c @@ -464,8 +464,11 @@ void pvr_rogue_CmdBlitImage2(VkCommandBuffer commandBuffer, } } -static VkFormat pvr_get_copy_format(VkFormat format) +static VkFormat pvr_get_copy_format(VkFormat format, + VkImageAspectFlagBits aspect) { + format = vk_format_get_plane_aspect_format(format, aspect); + switch (format) { case VK_FORMAT_R8_SNORM: return VK_FORMAT_R8_SINT; @@ -1160,8 +1163,7 @@ pvr_copy_image_to_buffer_region(struct pvr_cmd_buffer *const cmd_buffer, { const VkImageAspectFlags aspect_mask = region->imageSubresource.aspectMask; - VkFormat src_format = pvr_get_copy_format( - vk_format_get_plane_aspect_format(image->vk.format, aspect_mask)); + VkFormat src_format = pvr_get_copy_format(image->vk.format, aspect_mask); VkFormat dst_format; /* From the Vulkan spec: